From 21baddd1394c26682e7e825b54539cd14a3f0969 Mon Sep 17 00:00:00 2001 From: "zhengfang.sun" Date: Wed, 19 Aug 2020 13:04:26 +0800 Subject: [PATCH] set schemaName for table meta when init tableMeta (#2057) --- .../java/com/actiontech/dble/meta/ProxyMetaManager.java | 1 + src/main/java/com/actiontech/dble/meta/TableMeta.java | 5 +++++ .../dble/meta/table/AbstractSchemaMetaHandler.java | 4 ++-- .../dble/meta/table/AbstractTableMetaHandler.java | 4 ++-- .../dble/meta/table/DefaultNodeTablesMetaHandler.java | 2 +- .../java/com/actiontech/dble/meta/table/MetaHelper.java | 7 ++++--- 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/actiontech/dble/meta/ProxyMetaManager.java b/src/main/java/com/actiontech/dble/meta/ProxyMetaManager.java index 612725939..0c0629018 100644 --- a/src/main/java/com/actiontech/dble/meta/ProxyMetaManager.java +++ b/src/main/java/com/actiontech/dble/meta/ProxyMetaManager.java @@ -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()); diff --git a/src/main/java/com/actiontech/dble/meta/TableMeta.java b/src/main/java/com/actiontech/dble/meta/TableMeta.java index 4c84c4772..90d427267 100644 --- a/src/main/java/com/actiontech/dble/meta/TableMeta.java +++ b/src/main/java/com/actiontech/dble/meta/TableMeta.java @@ -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; } diff --git a/src/main/java/com/actiontech/dble/meta/table/AbstractSchemaMetaHandler.java b/src/main/java/com/actiontech/dble/meta/table/AbstractSchemaMetaHandler.java index 250fe9264..eb1de0070 100644 --- a/src/main/java/com/actiontech/dble/meta/table/AbstractSchemaMetaHandler.java +++ b/src/main/java/com/actiontech/dble/meta/table/AbstractSchemaMetaHandler.java @@ -169,7 +169,7 @@ public abstract class AbstractSchemaMetaHandler { // for example: autoIncrement number Set 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); } } diff --git a/src/main/java/com/actiontech/dble/meta/table/AbstractTableMetaHandler.java b/src/main/java/com/actiontech/dble/meta/table/AbstractTableMetaHandler.java index b257284b5..47e70dde6 100644 --- a/src/main/java/com/actiontech/dble/meta/table/AbstractTableMetaHandler.java +++ b/src/main/java/com/actiontech/dble/meta/table/AbstractTableMetaHandler.java @@ -145,7 +145,7 @@ public abstract class AbstractTableMetaHandler { // for example: autoIncrement number Set 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; } diff --git a/src/main/java/com/actiontech/dble/meta/table/DefaultNodeTablesMetaHandler.java b/src/main/java/com/actiontech/dble/meta/table/DefaultNodeTablesMetaHandler.java index 11a2d7f4d..535b9ad6e 100644 --- a/src/main/java/com/actiontech/dble/meta/table/DefaultNodeTablesMetaHandler.java +++ b/src/main/java/com/actiontech/dble/meta/table/DefaultNodeTablesMetaHandler.java @@ -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); } } diff --git a/src/main/java/com/actiontech/dble/meta/table/MetaHelper.java b/src/main/java/com/actiontech/dble/meta/table/MetaHelper.java index d9fb3ed20..ba6d21e09 100644 --- a/src/main/java/com/actiontech/dble/meta/table/MetaHelper.java +++ b/src/main/java/com/actiontech/dble/meta/table/MetaHelper.java @@ -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 columns = new ArrayList<>(createStatement.getTableElementList().size());