Skip to content

Commit adbb2c7

Browse files
authored
fix print log when index name is wrong (#410)
1 parent 50e3417 commit adbb2c7

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

src/main/java/com/alipay/oceanbase/rpc/location/LocationUtil.java

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@
4343
import java.sql.*;
4444
import java.text.MessageFormat;
4545
import java.util.*;
46+
import java.util.regex.Matcher;
47+
import java.util.regex.Pattern;
4648

4749
import static com.alipay.oceanbase.rpc.location.model.partition.ObPartitionKey.MAX_PARTITION_ELEMENT;
4850
import static com.alipay.oceanbase.rpc.location.model.partition.ObPartitionKey.MIN_PARTITION_ELEMENT;
@@ -1234,6 +1236,18 @@ public static Long getTableIdFromRemote(ObServerAddr obServerAddr, ObUserAuth sy
12341236
return tableId;
12351237
}
12361238

1239+
private static String getActualIndexName(String indexTableName) {
1240+
String actualIndexName = null;
1241+
if (indexTableName != null && indexTableName.startsWith("__idx_")) {
1242+
Pattern pattern = Pattern.compile("^__idx_\\d+_(.+)$");
1243+
Matcher matcher = pattern.matcher(indexTableName);
1244+
if (matcher.matches()) {
1245+
actualIndexName = matcher.group(1);
1246+
}
1247+
}
1248+
return actualIndexName == null ? indexTableName == null ? "" : indexTableName : actualIndexName;
1249+
}
1250+
12371251
public static ObIndexInfo getIndexInfoFromRemote(ObServerAddr obServerAddr, ObUserAuth sysUA,
12381252
long connectTimeout, long socketTimeout,
12391253
String indexTableName)
@@ -1254,22 +1268,22 @@ public static ObIndexInfo getIndexInfoFromRemote(ObServerAddr obServerAddr, ObUs
12541268
indexInfo.setIndexTableId(rs.getLong("table_id"));
12551269
indexInfo.setIndexType(ObIndexType.valueOf(rs.getInt("index_type")));
12561270
} else {
1257-
throw new ObTableEntryRefreshException("index is not exist");
1271+
throw new ObTableEntryRefreshException("[-5224][OB_WRONG_NAME_FOR_INDEX] index name is wrong");
12581272
}
12591273
} catch (SQLException e) {
12601274
// cannot execute sql, maybe some of the observers have been killed
1261-
RUNTIME.error(LCD.convert("01-00010"), indexTableName, e.getMessage());
1275+
RUNTIME.error(LCD.convert("01-00010"), getActualIndexName(indexTableName), e.getMessage());
12621276
throw new ObTableEntryRefreshException("fail to get index info from remote", e, true);
12631277
} catch (Exception e) {
12641278
if (e instanceof ObTableEntryRefreshException) {
12651279
throw new ObTableEntryRefreshException(format(
1266-
"fail to get index info from remote, indexTableName: %s, error message: %s",
1267-
indexTableName, e.getMessage()), e,
1280+
"fail to get index info from remote, indexName: %s, error message: %s",
1281+
getActualIndexName(indexTableName), e.getMessage()), e,
12681282
((ObTableEntryRefreshException) e).isConnectInactive());
12691283
} else {
12701284
throw new ObTableEntryRefreshException(format(
1271-
"fail to get index info from remote, indexTableName: %s, error message: %s",
1272-
indexTableName, e.getMessage()), e);
1285+
"fail to get index info from remote, indexName: %s, error message: %s",
1286+
getActualIndexName(indexTableName), e.getMessage()), e);
12731287
}
12741288
} finally {
12751289
try {

0 commit comments

Comments
 (0)