@@ -168,27 +168,19 @@ public class LocationUtil {
168168 + " WHERE C.tenant_name = ? "
169169 + ") AS right_table ON left_table.tablet__id = right_table.tablet_id;" ;
170170
171- private static final String PROXY_LOCATION_SQL_PARTITION_BY_TABLETID_V4 = "SELECT /*+READ_CONSISTENCY(WEAK)*/ "
172- + " A.tablet_id as tablet_id, "
173- + " A.svr_ip as svr_ip, "
174- + " A.sql_port as sql_port, "
175- + " A.table_id as table_id, "
176- + " A.role as role, "
177- + " A.replica_num as replica_num, "
178- + " A.part_num as part_num, "
179- + " (SELECT B.svr_port FROM oceanbase.__all_server B WHERE A.svr_ip = B.svr_ip AND A.sql_port = B.inner_port) as svr_port, "
180- + " (SELECT B.status FROM oceanbase.__all_server B WHERE A.svr_ip = B.svr_ip AND A.sql_port = B.inner_port) as status, "
181- + " (SELECT B.stop_time FROM oceanbase.__all_server B WHERE A.svr_ip = B.svr_ip AND A.sql_port = B.inner_port) as stop_time, "
182- + " A.spare1 as replica_type, "
183- + " (SELECT D.ls_id FROM oceanbase.__all_virtual_tablet_to_ls D WHERE A.tablet_id = D.tablet_id AND D.tenant_id = "
184- + " (SELECT C.tenant_id FROM oceanbase.DBA_OB_TENANTS C WHERE C.tenant_name = ?)) as ls_id "
185- + "FROM "
186- + " oceanbase.__all_virtual_proxy_schema A "
187- + "WHERE "
188- + " A.tablet_id = ? "
189- + " AND A.tenant_name = ? "
190- + " AND A.database_name = ? "
191- + " AND A.table_name = ?;" ;
171+ private static final String PROXY_LOCATION_SQL_PARTITION_BY_TABLETID_V4 = "SELECT /*+READ_CONSISTENCY(WEAK)*/ * FROM ( "
172+ + " SELECT A.tablet_id as tablet__id, A.svr_ip as svr_ip, A.sql_port as sql_port, A.table_id as table_id, "
173+ + " A.role as role, A.replica_num as replica_num, A.part_num as part_num, B.svr_port as svr_port, B.status as status, "
174+ + " B.stop_time as stop_time, A.spare1 as replica_type "
175+ + " FROM oceanbase.__all_virtual_proxy_schema A "
176+ + " INNER JOIN oceanbase.__all_server B ON A.svr_ip = B.svr_ip AND A.sql_port = B.inner_port "
177+ + " WHERE A.tablet_id = ? AND A.tenant_name = ? AND A.database_name = ? AND A.table_name = ?) AS left_table "
178+ + "LEFT JOIN ("
179+ + " SELECT D.ls_id, D.tablet_id "
180+ + " FROM oceanbase.__all_virtual_tablet_to_ls D "
181+ + " INNER JOIN oceanbase.DBA_OB_TENANTS C ON D.tenant_id = C.tenant_id "
182+ + " WHERE C.tenant_name = ? "
183+ + ") AS right_table ON left_table.tablet__id = right_table.tablet_id;" ;
192184
193185 private static final String PROXY_FIRST_PARTITION_SQL_V4 = "SELECT /*+READ_CONSISTENCY(WEAK)*/ part_id, part_name, tablet_id, high_bound_val, sub_part_num "
194186 + "FROM oceanbase.__all_virtual_proxy_partition "
@@ -865,11 +857,11 @@ public static TableEntry getTableEntryLocationFromRemote(Connection connection,
865857 String sql = genLocationSQLByTabletId ();
866858 try {
867859 ps = connection .prepareStatement (sql );
868- ps .setString (1 , key . getTenantName () );
869- ps .setLong (2 , tabletId );
870- ps .setString (3 , key .getTenantName ());
871- ps .setString (4 , key .getDatabaseName ());
872- ps .setString (5 , key .getTableName ());
860+ ps .setLong (1 , tabletId );
861+ ps .setString (2 , key . getTenantName () );
862+ ps .setString (3 , key .getDatabaseName ());
863+ ps .setString (4 , key .getTableName ());
864+ ps .setString (5 , key .getTenantName ());
873865 rs = ps .executeQuery ();
874866 getPartitionLocationFromResultSetByTablet (tableEntry , rs , partitionEntry , tabletId );
875867 } catch (Exception e ) {
0 commit comments