@@ -2048,7 +2048,7 @@ public List<ObPair<Long, ObTableParam>> getTables(String tableName, ObTableQuery
20482048 boolean refresh , boolean waitForRefresh )
20492049 throws Exception {
20502050 return getTables (tableName , query , start , startInclusive , end , endInclusive , refresh ,
2051- waitForRefresh , getRoute (false ));
2051+ waitForRefresh , false , getRoute (false ));
20522052 }
20532053
20542054 /**
@@ -2071,8 +2071,16 @@ public List<ObPair<Long, ObTableParam>> getTables(String tableName, ObTableQuery
20712071 boolean refresh , boolean waitForRefresh ,
20722072 ObServerRoute route ) throws Exception {
20732073
2074+ return getTables (tableName , query , start , startInclusive , end , endInclusive , refresh , waitForRefresh , false , route );
2075+ }
2076+
2077+ private List <ObPair <Long , ObTableParam >> getTables (String tableName , ObTableQuery query ,
2078+ Object [] start , boolean startInclusive ,
2079+ Object [] end , boolean endInclusive ,
2080+ boolean refresh , boolean waitForRefresh ,
2081+ boolean needFetchAll , ObServerRoute route ) throws Exception {
20742082 // 1. get TableEntry information
2075- TableEntry tableEntry = getOrRefreshTableEntry (tableName , refresh , waitForRefresh , false );
2083+ TableEntry tableEntry = getOrRefreshTableEntry (tableName , refresh , waitForRefresh , needFetchAll );
20762084
20772085 List <String > scanRangeColumns = query .getScanRangeColumns ();
20782086 if (scanRangeColumns == null || scanRangeColumns .isEmpty ()) {
@@ -2092,16 +2100,16 @@ public List<ObPair<Long, ObTableParam>> getTables(String tableName, ObTableQuery
20922100 // ensure the format of column names and values if the current table is a table with partition
20932101 if (tableEntry .isPartitionTable ()) {
20942102 if ((scanRangeColumns == null || scanRangeColumns .isEmpty ()) && start .length == 1
2095- && start [0 ] instanceof ObObj && ((ObObj ) start [0 ]).isMinObj () && end .length == 1
2096- && end [0 ] instanceof ObObj && ((ObObj ) end [0 ]).isMaxObj ()) {
2103+ && start [0 ] instanceof ObObj && ((ObObj ) start [0 ]).isMinObj () && end .length == 1
2104+ && end [0 ] instanceof ObObj && ((ObObj ) end [0 ]).isMaxObj ()) {
20972105 // for getPartition to query all partitions
20982106 scanRangeColumns = new ArrayList <String >(Collections .nCopies (start .length ,
2099- "partition" ));
2107+ "partition" ));
21002108 }
21012109 // scanRangeColumn may be longer than start/end in prefix scanning situation
21022110 if (scanRangeColumns == null || scanRangeColumns .size () < start .length ) {
21032111 throw new IllegalArgumentException (
2104- "length of key and scan range columns do not match, please use addRowKeyElement or set scan range columns" );
2112+ "length of key and scan range columns do not match, please use addRowKeyElement or set scan range columns" );
21052113 }
21062114 for (int i = 0 ; i < start .length ; i ++) {
21072115 startRow .add (scanRangeColumns .get (i ), start [i ]);
@@ -2110,7 +2118,7 @@ public List<ObPair<Long, ObTableParam>> getTables(String tableName, ObTableQuery
21102118 }
21112119
21122120 List <ObPair <Long , ReplicaLocation >> partIdWithReplicaList = getPartitionReplica (tableEntry ,
2113- startRow , startInclusive , endRow , endInclusive , route );
2121+ startRow , startInclusive , endRow , endInclusive , route );
21142122
21152123 // obTableParams -> List<Pair<logicId, obTableParams>>
21162124 List <ObPair <Long , ObTableParam >> obTableParams = new ArrayList <ObPair <Long , ObTableParam >>();
@@ -2122,9 +2130,9 @@ public List<ObPair<Long, ObTableParam>> getTables(String tableName, ObTableQuery
21222130 boolean addrExpired = addr .isExpired (serverAddressCachingTimeout );
21232131 if (addrExpired || obTable == null ) {
21242132 logger
2125- .warn (
2126- "server address {} is expired={} or can not get ob table. So that will sync refresh metadata" ,
2127- addr , addrExpired );
2133+ .warn (
2134+ "server address {} is expired={} or can not get ob table. So that will sync refresh metadata" ,
2135+ addr , addrExpired );
21282136 syncRefreshMetadata ();
21292137 tableEntry = getOrRefreshTableEntry (tableName , true , waitForRefresh , false );
21302138 replica = getPartitionLocation (tableEntry , partId , route );
@@ -2142,7 +2150,7 @@ public List<ObPair<Long, ObTableParam>> getTables(String tableName, ObTableQuery
21422150 if (ObGlobal .obVsnMajor () >= 4 ) {
21432151 long partIdx = tableEntry .getPartIdx (partId );
21442152 partId = tableEntry .isPartitionTable () ? tableEntry .getPartitionInfo ()
2145- .getPartTabletIdMap ().get (partIdx ) : partId ;
2153+ .getPartTabletIdMap ().get (partIdx ) : partId ;
21462154 param .setLsId (tableEntry .getPartitionEntry ().getLsId (partId ));
21472155 }
21482156
@@ -3127,11 +3135,11 @@ private List<Partition> getAllPartitionInternal(String tableName, boolean refres
31273135 if (refresh ) {
31283136 // List<ObPair<logic partId, obTableParam>>
31293137 allTables = getTables (tableName , new ObTableQuery (), new Object []{ ObObj .getMin () }, true ,
3130- new Object []{ ObObj .getMax () }, true , true , true , getRoute (false ));
3138+ new Object []{ ObObj .getMax () }, true , true , true , true , getRoute (false ));
31313139 } else {
31323140 // List<ObPair<logic partId, obTableParam>>
31333141 allTables = getTables (tableName , new ObTableQuery (), new Object []{ ObObj .getMin () }, true ,
3134- new Object []{ ObObj .getMax () }, true , false , false , getRoute (false ));
3142+ new Object []{ ObObj .getMax () }, true , false , false , false , getRoute (false ));
31353143 }
31363144 for (ObPair <Long , ObTableParam > table : allTables ) {
31373145 ObTableParam tableParam = table .getRight ();
0 commit comments