@@ -624,8 +624,9 @@ private <T> T execute(String tableName, TableExecuteCallback<T> callback, ObServ
624624 if (odpMode ) {
625625 obPair = new ObPair <Long , ObTableParam >(0L , new ObTableParam (odpTable ));
626626 } else {
627- obPair = getTable (tableName , callback .getRowKey (), needRefreshTableEntry ,
628- tableEntryRefreshIntervalWait , route );
627+ obPair = getTable (tableName , callback .getRowKey (),
628+ needRefreshTableEntry , tableEntryRefreshIntervalWait ,
629+ needFetchAllRouteInfo , route );
629630 }
630631 T t = callback .execute (obPair );
631632 resetExecuteContinuousFailureCount (tableName );
@@ -787,12 +788,13 @@ private <T> T executeMutation(String tableName, MutationExecuteCallback<T> callb
787788 } else {
788789 if (null != callback .getRowKey ()) {
789790 // using row key
790- obPair = getTable (tableName , callback .getRowKey (), needRefreshTableEntry ,
791- tableEntryRefreshIntervalWait , route );
791+ obPair = getTable (tableName , callback .getRowKey (),
792+ needRefreshTableEntry , tableEntryRefreshIntervalWait ,
793+ needFetchAllRouteInfo , route );
792794 } else if (null != callback .getKeyRanges ()) {
793795 // using scan range
794- obPair = getTable (tableName , new ObTableQuery (), callback . getKeyRanges (),
795- needRefreshTableEntry , tableEntryRefreshIntervalWait , route );
796+ obPair = getTable (tableName , new ObTableQuery (),
797+ callback . getKeyRanges () );
796798 } else {
797799 throw new ObTableException ("rowkey and scan range are null in mutation" );
798800 }
@@ -1548,8 +1550,9 @@ private ReplicaLocation getPartitionLocation(TableEntry tableEntry, long partId,
15481550 * @return ObPair of partId and table
15491551 * @throws Exception exception
15501552 */
1551- public ObPair <Long , ObTableParam > getTable (String tableName , Object [] rowKey , boolean refresh ,
1552- boolean waitForRefresh ) throws Exception {
1553+ public ObPair <Long , ObTableParam > getTable (String tableName , Object [] rowKey ,
1554+ boolean refresh , boolean waitForRefresh )
1555+ throws Exception {
15531556 ObServerRoute route = getRoute (false );
15541557 return getTable (tableName , rowKey , refresh , waitForRefresh , route );
15551558 }
@@ -1567,7 +1570,17 @@ public ObPair<Long, ObTableParam> getTable(String tableName, Object[] rowKey, bo
15671570 public ObPair <Long , ObTableParam > getTable (String tableName , Object [] rowKey , boolean refresh ,
15681571 boolean waitForRefresh , ObServerRoute route )
15691572 throws Exception {
1570- TableEntry tableEntry = getOrRefreshTableEntry (tableName , refresh , waitForRefresh , false );
1573+ return getTable (tableName , rowKey , refresh , waitForRefresh , false , route );
1574+ }
1575+
1576+ private ObPair <Long , ObTableParam > getTable (String tableName , Object [] rowKey ,
1577+ boolean refresh ,
1578+ boolean waitForRefresh ,
1579+ boolean needFetchAll ,
1580+ ObServerRoute route )
1581+ throws Exception {
1582+ TableEntry tableEntry = getOrRefreshTableEntry (tableName , refresh , waitForRefresh ,
1583+ needFetchAll );
15711584 Row row = new Row ();
15721585 if (tableEntry .isPartitionTable ()
15731586 && tableEntry .getPartitionInfo ().getLevel () != ObPartitionLevel .LEVEL_ZERO ) {
@@ -1599,14 +1612,10 @@ public ObPair<Long, ObTableParam> getTable(String tableName, Object[] rowKey, bo
15991612 * For mutation (queryWithFilter)
16001613 * @param tableName table want to get
16011614 * @param keyRanges key
1602- * @param refresh whether to refresh
1603- * @param waitForRefresh whether wait for refresh
1604- * @param route ObServer route
16051615 * @return ObPair of partId and table
16061616 * @throws Exception exception
16071617 */
1608- public ObPair <Long , ObTableParam > getTable (String tableName , ObTableQuery query , List <ObNewRange > keyRanges , boolean refresh ,
1609- boolean waitForRefresh , ObServerRoute route )
1618+ public ObPair <Long , ObTableParam > getTable (String tableName , ObTableQuery query , List <ObNewRange > keyRanges )
16101619 throws Exception {
16111620 Map <Long , ObTableParam > partIdMapObTable = new HashMap <Long , ObTableParam >();
16121621 for (ObNewRange rang : keyRanges ) {
@@ -1655,9 +1664,12 @@ public ObPair<Long, ObTableParam> getTable(String tableName, ObTableQuery query,
16551664 * @return ObPair of partId and table
16561665 * @throws Exception exception
16571666 */
1658- public ObPair <Long , ObTableParam > getTable (String tableName , Row rowKey , boolean refresh ,
1659- boolean waitForRefresh ) throws Exception {
1660- return getTable (tableName , rowKey , refresh , waitForRefresh , getRoute (false ));
1667+ public ObPair <Long , ObTableParam > getTable (String tableName , Row rowKey ,
1668+ boolean refresh ,
1669+ boolean waitForRefresh )
1670+ throws Exception {
1671+ return getTable (tableName , rowKey , refresh , waitForRefresh , false ,
1672+ getRoute (false ));
16611673 }
16621674
16631675 /**
@@ -1666,16 +1678,21 @@ public ObPair<Long, ObTableParam> getTable(String tableName, Row rowKey, boolean
16661678 * @param rowKey row key with column names
16671679 * @param refresh whether to refresh
16681680 * @param waitForRefresh whether wait for refresh
1681+ * @param needFetchAll whether to fetch all
16691682 * @param route ObServer route
16701683 * @return ObPair of partId and table
16711684 * @throws Exception exception
16721685 */
1673- public ObPair <Long , ObTableParam > getTable (String tableName , Row rowKey , boolean refresh ,
1674- boolean waitForRefresh , ObServerRoute route )
1675- throws Exception {
1676- TableEntry tableEntry = getOrRefreshTableEntry (tableName , refresh , waitForRefresh , false );
1677- long partId ;
1678- partId = getPartition (tableEntry , rowKey ); // partition id in 3.x, origin partId in 4.x, logicId
1686+ private ObPair <Long , ObTableParam > getTable (String tableName ,
1687+ Row rowKey ,
1688+ boolean refresh ,
1689+ boolean waitForRefresh ,
1690+ boolean needFetchAll ,
1691+ ObServerRoute route )
1692+ throws Exception {
1693+ TableEntry tableEntry = getOrRefreshTableEntry (tableName , refresh , waitForRefresh ,
1694+ needFetchAll );
1695+ long partId = getPartition (tableEntry , rowKey ); // partition id in 3.x, origin partId in 4.x, logicId
16791696
16801697 return getTableInternal (tableName , tableEntry , partId , waitForRefresh , route );
16811698 }
0 commit comments