|
97 | 97 | import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; |
98 | 98 | import org.apache.iotdb.db.queryengine.plan.statement.crud.LoadTsFileStatement; |
99 | 99 | import org.apache.iotdb.db.queryengine.plan.statement.pipe.PipeEnrichedStatement; |
| 100 | +import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; |
100 | 101 | import org.apache.iotdb.db.storageengine.load.active.ActiveLoadUtil; |
101 | 102 | import org.apache.iotdb.db.storageengine.rescon.disk.FolderManager; |
102 | 103 | import org.apache.iotdb.db.storageengine.rescon.disk.strategy.DirectoryStrategyType; |
|
126 | 127 | import java.util.Objects; |
127 | 128 | import java.util.Optional; |
128 | 129 | import java.util.Set; |
129 | | -import java.util.concurrent.ConcurrentHashMap; |
130 | 130 | import java.util.concurrent.ExecutionException; |
131 | 131 | import java.util.concurrent.atomic.AtomicLong; |
132 | 132 | import java.util.concurrent.atomic.AtomicReference; |
@@ -174,8 +174,6 @@ public class IoTDBDataNodeReceiver extends IoTDBFileReceiver { |
174 | 174 |
|
175 | 175 | private final PipeTransferSliceReqHandler sliceReqHandler = new PipeTransferSliceReqHandler(); |
176 | 176 |
|
177 | | - private static final Set<String> ALREADY_CREATED_TABLE_MODEL_DATABASES = |
178 | | - ConcurrentHashMap.newKeySet(); |
179 | 177 | private final SqlParser tableSqlParser = new SqlParser(); |
180 | 178 |
|
181 | 179 | private static final SessionManager SESSION_MANAGER = SessionManager.getInstance(); |
@@ -581,7 +579,7 @@ private TSStatus loadTsFileSync(final String dataBaseName, final String fileAbso |
581 | 579 | statement.setDeleteAfterLoad(true); |
582 | 580 | statement.setConvertOnTypeMismatch(true); |
583 | 581 | statement.setVerifySchema(validateTsFile.get()); |
584 | | - statement.setAutoCreateDatabase(false); |
| 582 | + statement.setAutoCreateDatabase(true); |
585 | 583 | statement.setDatabase(dataBaseName); |
586 | 584 |
|
587 | 585 | return executeStatementAndClassifyExceptions(statement); |
@@ -966,8 +964,6 @@ private TSStatus executeStatementForTableModel( |
966 | 964 | IoTDBDescriptor.getInstance().getConfig().getQueryTimeoutThreshold()) |
967 | 965 | .status; |
968 | 966 | } catch (final Exception e) { |
969 | | - ALREADY_CREATED_TABLE_MODEL_DATABASES.remove(databaseName); |
970 | | - |
971 | 967 | final Throwable rootCause = getRootCause(e); |
972 | 968 | if (rootCause.getMessage() != null |
973 | 969 | && rootCause |
@@ -997,7 +993,7 @@ private TSStatus executeStatementForTableModel( |
997 | 993 | } |
998 | 994 |
|
999 | 995 | private void autoCreateDatabaseIfNecessary(final String database) { |
1000 | | - if (ALREADY_CREATED_TABLE_MODEL_DATABASES.contains(database) |
| 996 | + if (DataNodeTableCache.getInstance().isDatabaseExist(database) |
1001 | 997 | || !IoTDBDescriptor.getInstance().getConfig().isAutoCreateSchemaEnabled()) { |
1002 | 998 | return; |
1003 | 999 | } |
@@ -1026,8 +1022,6 @@ private void autoCreateDatabaseIfNecessary(final String database) { |
1026 | 1022 | } |
1027 | 1023 | throw new PipeException("Auto create database failed because: " + e.getMessage()); |
1028 | 1024 | } |
1029 | | - |
1030 | | - ALREADY_CREATED_TABLE_MODEL_DATABASES.add(database); |
1031 | 1025 | } |
1032 | 1026 |
|
1033 | 1027 | private TSStatus executeStatementForTreeModel(final Statement statement) { |
|
0 commit comments