set schemaName for table meta when init tableMeta (#2057)

This commit is contained in:
zhengfang.sun
2020-08-19 13:04:26 +08:00
committed by GitHub
parent b6df74f45c
commit 21baddd139
6 changed files with 15 additions and 8 deletions
@@ -198,6 +198,7 @@ public class ProxyMetaManager {
public void addTable(String schema, TableMeta tm) {
String tbName = tm.getTableName();
tm.setSchemaName(schema);
SchemaMeta schemaMeta = catalogs.get(schema);
if (schemaMeta != null) {
tm.setId(tableIndex.incrementAndGet());
@@ -16,6 +16,7 @@ public final class TableMeta {
public TableMeta(TableMeta origin, long newVersion) {
tableName = origin.getTableName();
this.schemaName = origin.getSchemaName();
columns = origin.getColumns();
createSql = origin.getCreateSql();
version = newVersion;
@@ -31,6 +32,10 @@ public final class TableMeta {
return schemaName;
}
public void setSchemaName(String schemaName) {
this.schemaName = schemaName;
}
public int getId() {
return id;
}
@@ -169,7 +169,7 @@ public abstract class AbstractSchemaMetaHandler {
// for example: autoIncrement number
Set<TableMeta> tableMetas = new HashSet<>();
for (String sql : tableStruct.keySet()) {
TableMeta tableMeta = MetaHelper.initTableMeta(tableName, sql, version);
TableMeta tableMeta = MetaHelper.initTableMeta(tableName, sql, version, schema);
tableMetas.add(tableMeta);
}
String tableId = schema + "." + tableName;
@@ -193,7 +193,7 @@ public abstract class AbstractSchemaMetaHandler {
AlertUtil.alertSelfResolve(AlarmCode.TABLE_LACK, Alert.AlertLevel.WARN, AlertUtil.genSingleLabel("TABLE", tableDetailId),
ToResolveContainer.TABLE_LACK, tableId);
}
TableMeta tableMeta = MetaHelper.initTableMeta(tableName, tableStruct.keySet().iterator().next(), version);
TableMeta tableMeta = MetaHelper.initTableMeta(tableName, tableStruct.keySet().iterator().next(), version, schema);
handleSingleMetaData(tableMeta);
}
}
@@ -145,7 +145,7 @@ public abstract class AbstractTableMetaHandler {
// for example: autoIncrement number
Set<TableMeta> tableMetas = new HashSet<>();
for (String sql : shardingNodeTableStructureSQLMap.keySet()) {
tableMeta = MetaHelper.initTableMeta(tableName, sql, version);
tableMeta = MetaHelper.initTableMeta(tableName, sql, version, schema);
tableMetas.add(tableMeta);
}
String tableId = schema + "." + tableName;
@@ -162,7 +162,7 @@ public abstract class AbstractTableMetaHandler {
AlertUtil.alertSelfResolve(AlarmCode.TABLE_NOT_CONSISTENT_IN_SHARDINGS, Alert.AlertLevel.WARN, AlertUtil.genSingleLabel("TABLE", tableId),
ToResolveContainer.TABLE_NOT_CONSISTENT_IN_SHARDINGS, tableId);
}
tableMeta = MetaHelper.initTableMeta(tableName, shardingNodeTableStructureSQLMap.keySet().iterator().next(), version);
tableMeta = MetaHelper.initTableMeta(tableName, shardingNodeTableStructureSQLMap.keySet().iterator().next(), version, schema);
}
return tableMeta;
}
@@ -25,7 +25,7 @@ public class DefaultNodeTablesMetaHandler extends GetTableMetaHandler {
ViewMeta viewMeta = MetaHelper.initViewMeta(schema, createSQL, System.currentTimeMillis(), schemaMetaHandler.getTmManager());
schemaMetaHandler.handleViewMeta(viewMeta);
} else {
TableMeta tableMeta = MetaHelper.initTableMeta(table, createSQL, System.currentTimeMillis());
TableMeta tableMeta = MetaHelper.initTableMeta(table, createSQL, System.currentTimeMillis(), schema);
schemaMetaHandler.handleSingleMetaData(tableMeta);
}
}
@@ -47,7 +47,7 @@ final class MetaHelper {
return meta;
}
static TableMeta initTableMeta(String table, String sql, long timeStamp) {
static TableMeta initTableMeta(String table, String sql, long timeStamp, String schema) {
if (sql == null) {
return null;
}
@@ -55,7 +55,7 @@ final class MetaHelper {
try {
SQLStatementParser parser = new DbleCreateTableParser(sql);
SQLCreateTableStatement createStatement = parser.parseCreateTable();
return MetaHelper.initTableMeta(table, createStatement, timeStamp);
return MetaHelper.initTableMeta(table, createStatement, timeStamp, schema);
} catch (Exception e) {
LOGGER.warn("sql[" + sql + "] parser error:", e);
AlertUtil.alertSelf(AlarmCode.GET_TABLE_META_FAIL, Alert.AlertLevel.WARN, "sql[" + sql + "] parser error:" + e.getMessage(), null);
@@ -63,10 +63,11 @@ final class MetaHelper {
}
}
private static TableMeta initTableMeta(String table, SQLCreateTableStatement createStatement, long timeStamp) {
private static TableMeta initTableMeta(String table, SQLCreateTableStatement createStatement, long timeStamp, String schema) {
TableMeta tableMeta = new TableMeta();
tableMeta.setTableName(table);
tableMeta.setVersion(timeStamp);
tableMeta.setSchemaName(schema);
tableMeta.setCreateSql(createStatement.toString());
List<ColumnMeta> columns = new ArrayList<>(createStatement.getTableElementList().size());