@@ -2047,7 +2047,7 @@ public List<ObPair<Long, ObTableParam>> getTables(String tableName, ObTableQuery
20472047 boolean refresh , boolean waitForRefresh )
20482048 throws Exception {
20492049 return getTables (tableName , query , start , startInclusive , end , endInclusive , refresh ,
2050- waitForRefresh , getRoute (false ));
2050+ waitForRefresh , false , getRoute (false ));
20512051 }
20522052
20532053 /**
@@ -2070,8 +2070,16 @@ public List<ObPair<Long, ObTableParam>> getTables(String tableName, ObTableQuery
20702070 boolean refresh , boolean waitForRefresh ,
20712071 ObServerRoute route ) throws Exception {
20722072
2073+ return getTables (tableName , query , start , startInclusive , end , endInclusive , refresh , waitForRefresh , false , route );
2074+ }
2075+
2076+ private List <ObPair <Long , ObTableParam >> getTables (String tableName , ObTableQuery query ,
2077+ Object [] start , boolean startInclusive ,
2078+ Object [] end , boolean endInclusive ,
2079+ boolean refresh , boolean waitForRefresh ,
2080+ boolean needFetchAll , ObServerRoute route ) throws Exception {
20732081 // 1. get TableEntry information
2074- TableEntry tableEntry = getOrRefreshTableEntry (tableName , refresh , waitForRefresh , false );
2082+ TableEntry tableEntry = getOrRefreshTableEntry (tableName , refresh , waitForRefresh , needFetchAll );
20752083
20762084 List <String > scanRangeColumns = query .getScanRangeColumns ();
20772085 if (scanRangeColumns == null || scanRangeColumns .isEmpty ()) {
@@ -2091,16 +2099,16 @@ public List<ObPair<Long, ObTableParam>> getTables(String tableName, ObTableQuery
20912099 // ensure the format of column names and values if the current table is a table with partition
20922100 if (tableEntry .isPartitionTable ()) {
20932101 if ((scanRangeColumns == null || scanRangeColumns .isEmpty ()) && start .length == 1
2094- && start [0 ] instanceof ObObj && ((ObObj ) start [0 ]).isMinObj () && end .length == 1
2095- && end [0 ] instanceof ObObj && ((ObObj ) end [0 ]).isMaxObj ()) {
2102+ && start [0 ] instanceof ObObj && ((ObObj ) start [0 ]).isMinObj () && end .length == 1
2103+ && end [0 ] instanceof ObObj && ((ObObj ) end [0 ]).isMaxObj ()) {
20962104 // for getPartition to query all partitions
20972105 scanRangeColumns = new ArrayList <String >(Collections .nCopies (start .length ,
2098- "partition" ));
2106+ "partition" ));
20992107 }
21002108 // scanRangeColumn may be longer than start/end in prefix scanning situation
21012109 if (scanRangeColumns == null || scanRangeColumns .size () < start .length ) {
21022110 throw new IllegalArgumentException (
2103- "length of key and scan range columns do not match, please use addRowKeyElement or set scan range columns" );
2111+ "length of key and scan range columns do not match, please use addRowKeyElement or set scan range columns" );
21042112 }
21052113 for (int i = 0 ; i < start .length ; i ++) {
21062114 startRow .add (scanRangeColumns .get (i ), start [i ]);
@@ -2109,7 +2117,7 @@ public List<ObPair<Long, ObTableParam>> getTables(String tableName, ObTableQuery
21092117 }
21102118
21112119 List <ObPair <Long , ReplicaLocation >> partIdWithReplicaList = getPartitionReplica (tableEntry ,
2112- startRow , startInclusive , endRow , endInclusive , route );
2120+ startRow , startInclusive , endRow , endInclusive , route );
21132121
21142122 // obTableParams -> List<Pair<logicId, obTableParams>>
21152123 List <ObPair <Long , ObTableParam >> obTableParams = new ArrayList <ObPair <Long , ObTableParam >>();
@@ -2121,9 +2129,9 @@ public List<ObPair<Long, ObTableParam>> getTables(String tableName, ObTableQuery
21212129 boolean addrExpired = addr .isExpired (serverAddressCachingTimeout );
21222130 if (addrExpired || obTable == null ) {
21232131 logger
2124- .warn (
2125- "server address {} is expired={} or can not get ob table. So that will sync refresh metadata" ,
2126- addr , addrExpired );
2132+ .warn (
2133+ "server address {} is expired={} or can not get ob table. So that will sync refresh metadata" ,
2134+ addr , addrExpired );
21272135 syncRefreshMetadata ();
21282136 tableEntry = getOrRefreshTableEntry (tableName , true , waitForRefresh , false );
21292137 replica = getPartitionLocation (tableEntry , partId , route );
@@ -2141,7 +2149,7 @@ public List<ObPair<Long, ObTableParam>> getTables(String tableName, ObTableQuery
21412149 if (ObGlobal .obVsnMajor () >= 4 ) {
21422150 long partIdx = tableEntry .getPartIdx (partId );
21432151 partId = tableEntry .isPartitionTable () ? tableEntry .getPartitionInfo ()
2144- .getPartTabletIdMap ().get (partIdx ) : partId ;
2152+ .getPartTabletIdMap ().get (partIdx ) : partId ;
21452153 param .setLsId (tableEntry .getPartitionEntry ().getLsId (partId ));
21462154 }
21472155
@@ -3081,11 +3089,11 @@ private List<Partition> getAllPartitionInternal(String tableName, boolean refres
30813089 if (refresh ) {
30823090 // List<ObPair<logic partId, obTableParam>>
30833091 allTables = getTables (tableName , new ObTableQuery (), new Object []{ ObObj .getMin () }, true ,
3084- new Object []{ ObObj .getMax () }, true , true , true , getRoute (false ));
3092+ new Object []{ ObObj .getMax () }, true , true , true , true , getRoute (false ));
30853093 } else {
30863094 // List<ObPair<logic partId, obTableParam>>
30873095 allTables = getTables (tableName , new ObTableQuery (), new Object []{ ObObj .getMin () }, true ,
3088- new Object []{ ObObj .getMax () }, true , false , false , getRoute (false ));
3096+ new Object []{ ObObj .getMax () }, true , false , false , false , getRoute (false ));
30893097 }
30903098 for (ObPair <Long , ObTableParam > table : allTables ) {
30913099 ObTableParam tableParam = table .getRight ();
0 commit comments