@@ -94,16 +94,23 @@ public void setConfigServerInfo(ConfigServerInfo configServerInfo) {
9494 * */
9595 public TableEntry getTableEntry (String tableName ) throws Exception {
9696 TableEntry tableEntry ;
97- if (tableClient .isOdpMode ()) {
98- tableEntry = odpTableLocations .getTableEntry (tableName );
99- if (tableEntry == null ) {
100- tableEntry = refreshODPMeta (tableName , false );
101- }
102- } else {
103- tableEntry = tableLocations .getTableEntry (tableName );
104- if (tableEntry == null ) {
105- tableEntry = refreshMeta (tableName );
106- }
97+ tableEntry = tableLocations .getTableEntry (tableName );
98+ if (tableEntry == null ) {
99+ tableEntry = refreshMeta (tableName );
100+ }
101+ return tableEntry ;
102+ }
103+
104+ /**
105+ * get ODP tableEntry by tableName,
106+ * this methods will guarantee the tableEntry is not null
107+ * only support by ODP version after 4.3.2
108+ * */
109+ public TableEntry getOdpTableEntry (String tableName ) throws Exception {
110+ TableEntry tableEntry ;
111+ tableEntry = odpTableLocations .getTableEntry (tableName );
112+ if (tableEntry == null ) {
113+ tableEntry = refreshODPMeta (tableName , false );
107114 }
108115 return tableEntry ;
109116 }
@@ -631,6 +638,16 @@ public ObTableParam getTableParam(String tableName, Row rowkey) throws Exception
631638 return getTableParamWithRoute (tableName , rowkey , route );
632639 }
633640
641+ public ObTableParam getOdpTableParam (String tableName , Row rowkey ) throws Exception {
642+ TableEntry odpTableEntry = getOdpTableEntry (tableName );
643+ if (odpTableEntry == null ) {
644+ logger .error ("tableEntry is null, tableName: {}" , tableName );
645+ throw new ObTableEntryRefreshException ("tableEntry is null, tableName: " + tableName );
646+ }
647+ long partId = getPartId (odpTableEntry , rowkey );
648+ return getODPTableInternal (odpTableEntry , partId );
649+ }
650+
634651 public ObTableParam getTableParamWithRoute (String tableName , Row rowkey , ObServerRoute route )
635652 throws Exception {
636653 TableEntry tableEntry = getTableEntry (tableName );
@@ -639,11 +656,7 @@ public ObTableParam getTableParamWithRoute(String tableName, Row rowkey, ObServe
639656 throw new ObTableEntryRefreshException ("tableEntry is null, tableName: " + tableName );
640657 }
641658 long partId = getPartId (tableEntry , rowkey );
642- if (tableClient .isOdpMode ()) {
643- return getODPTableInternal (tableEntry , partId );
644- } else {
645- return getTableInternal (tableName , tableEntry , partId , route );
646- }
659+ return getTableInternal (tableName , tableEntry , partId , route );
647660 }
648661
649662 /**
@@ -665,11 +678,7 @@ public List<ObTableParam> getTableParams(String tableName, List<Row> rowkeys) th
665678 for (Row rowkey : rowkeys ) {
666679 long partId = getPartId (tableEntry , rowkey );
667680 ObTableParam param = null ;
668- if (tableClient .isOdpMode ()) {
669- param = getODPTableInternal (tableEntry , partId );
670- } else {
671- param = getTableInternal (tableName , tableEntry , partId , route );
672- }
681+ param = getTableInternal (tableName , tableEntry , partId , route );
673682 params .add (param );
674683 }
675684 return params ;
@@ -728,11 +737,13 @@ private ObPartitionLocationInfo getOrRefreshPartitionInfo(TableEntry tableEntry,
728737 public ObTableParam getTableWithPartId (String tableName , long partId , ObServerRoute route )
729738 throws Exception {
730739 TableEntry tableEntry = getTableEntry (tableName );
731- if (tableClient .isOdpMode ()) {
732- return getODPTableInternal (tableEntry , partId );
733- } else {
734- return getTableInternal (tableName , tableEntry , partId , route );
735- }
740+ return getTableInternal (tableName , tableEntry , partId , route );
741+ }
742+
743+ public ObTableParam getOdpTableWithPartId (String tableName , long partId , ObServerRoute route )
744+ throws Exception {
745+ TableEntry tableEntry = getOdpTableEntry (tableName );
746+ return getODPTableInternal (tableEntry , partId );
736747 }
737748
738749 /**
@@ -977,15 +988,18 @@ public ObTableParam getTableParam(String tableName, List<String> scanRangeColumn
977988 public List <ObTableParam > getTableParams (String tableName , ObTableQuery query , Object [] start ,
978989 boolean startInclusive , Object [] end ,
979990 boolean endInclusive ) throws Exception {
980-
981- if (tableClient .isOdpMode ()) {
982- return getODPTablesInternal (tableName , query .getScanRangeColumns (), start ,
983- startInclusive , end , endInclusive );
984- }
985991 return getTablesInternal (tableName , query .getScanRangeColumns (), start , startInclusive ,
986992 end , endInclusive , tableClient .getRoute (false ));
987993 }
988994
995+ public List <ObTableParam > getOdpTableParams (String tableName , ObTableQuery query , Object [] start ,
996+ boolean startInclusive , Object [] end ,
997+ boolean endInclusive ) throws Exception {
998+
999+ return getODPTablesInternal (tableName , query .getScanRangeColumns (), start ,
1000+ startInclusive , end , endInclusive );
1001+ }
1002+
9891003 private List <ObTableParam > getTablesInternal (String tableName , List <String > scanRangeColumns ,
9901004 Object [] start , boolean startInclusive ,
9911005 Object [] end , boolean endInclusive ,
@@ -1083,7 +1097,7 @@ public List<ObTableParam> getODPTablesInternal(String tableName, List<String> sc
10831097 throw new IllegalArgumentException ("length of start key and end key is not equal" );
10841098 }
10851099 List <ObTableParam > obTableParams = new ArrayList <ObTableParam >();
1086- TableEntry odpTableEntry = getTableEntry (tableName );
1100+ TableEntry odpTableEntry = getOdpTableEntry (tableName );
10871101
10881102 if (scanRangeColumns == null || scanRangeColumns .isEmpty ()) {
10891103 Map <String , Integer > tableEntryRowKeyElement = tableClient .getRowKeyElement (tableName );
0 commit comments