Skip to content

Commit 7c80906

Browse files
committed
Fix auto-create table
1 parent cf00d07 commit 7c80906

File tree

12 files changed

+34
-17
lines changed

12 files changed

+34
-17
lines changed

iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/CreateTableProcedure.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ protected void checkTableExistence(final ConfigNodeProcedureEnv env) {
129129
&& schema.getTTL() != Long.MAX_VALUE) {
130130
table.addProp(TsTable.TTL_PROPERTY, String.valueOf(schema.getTTL()));
131131
}
132+
if (!table.getPropValue(TsTable.ALLOW_ALTER_NAME_PROPERTY).isPresent()) {
133+
table.addProp(TsTable.ALLOW_ALTER_NAME_PROPERTY, String.valueOf(TsTable.ALLOW_ALTER_NAME_DEFAULT));
134+
}
132135
setNextState(CreateTableState.PRE_CREATE);
133136
}
134137
} catch (final MetadataException | DatabaseNotExistsException e) {

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ClusterPartitionFetcher.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ private SchemaPartition getOrCreateSchemaPartition(
348348
final List<TSeriesPartitionSlot> partitionSlots =
349349
Objects.nonNull(deviceIDs)
350350
? deviceIDs.stream()
351-
.map(deviceID -> CommonUtils.getSeriesPartitionKey(deviceID, database))
351+
.map(deviceID -> CommonUtils.getSeriesPartitionKey(deviceID, database, false))
352352
.map(partitionExecutor::getSeriesPartitionSlot)
353353
.distinct()
354354
.collect(Collectors.toList())
@@ -471,7 +471,8 @@ private TDataPartitionReq constructDataPartitionReq(
471471
seriesSlotTimePartitionMap
472472
.computeIfAbsent(
473473
partitionExecutor.getSeriesPartitionSlot(
474-
CommonUtils.getSeriesPartitionKey(queryParam.getDeviceID(), databaseName)),
474+
CommonUtils.getSeriesPartitionKey(
475+
queryParam.getDeviceID(), databaseName, false)),
475476
k ->
476477
new ComplexTimeSlotList(
477478
queryParam.isNeedLeftAll(), queryParam.isNeedRightAll()))
@@ -509,7 +510,7 @@ private TDataPartitionReq constructDataPartitionReqForQuery(
509510
}
510511
deviceToTimePartitionMap.putIfAbsent(
511512
partitionExecutor.getSeriesPartitionSlot(
512-
CommonUtils.getSeriesPartitionKey(queryParam.getDeviceID(), databaseName)),
513+
CommonUtils.getSeriesPartitionKey(queryParam.getDeviceID(), databaseName, false)),
513514
sharedTTimeSlotList);
514515
}
515516
partitionSlotsMap.put(databaseName, deviceToTimePartitionMap);

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/partition/PartitionCache.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -709,7 +709,7 @@ public SchemaPartition getSchemaPartition(
709709
for (final IDeviceID device : entry.getValue()) {
710710
final TSeriesPartitionSlot seriesPartitionSlot =
711711
partitionExecutor.getSeriesPartitionSlot(
712-
CommonUtils.getSeriesPartitionKey(device, databaseName));
712+
CommonUtils.getSeriesPartitionKey(device, databaseName, true));
713713
if (!map.containsKey(seriesPartitionSlot)) {
714714
// if one device not find, then return cache miss.
715715
if (logger.isDebugEnabled()) {
@@ -878,7 +878,7 @@ public DataPartition getDataPartition(
878878
if (null != param.getDeviceID()) {
879879
seriesPartitionSlot =
880880
partitionExecutor.getSeriesPartitionSlot(
881-
CommonUtils.getSeriesPartitionKey(param.getDeviceID(), databaseName));
881+
CommonUtils.getSeriesPartitionKey(param.getDeviceID(), databaseName, true));
882882
} else {
883883
return null;
884884
}

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,8 @@ private Pair<String, TsTable> parseTable4CreateTableOrView(
578578

579579
Map<String, String> properties = convertPropertiesToMap(node.getProperties(), false);
580580
// new tables' names can be altered by default
581-
properties.putIfAbsent(ALLOW_ALTER_NAME_PROPERTY, "true");
581+
properties.putIfAbsent(
582+
ALLOW_ALTER_NAME_PROPERTY, String.valueOf(TsTable.ALLOW_ALTER_NAME_DEFAULT));
582583
table.setProps(properties);
583584
if (Objects.nonNull(node.getComment())) {
584585
table.addProp(TsTable.COMMENT_KEY, node.getComment());

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1445,7 +1445,7 @@ private List<TRegionReplicaSet> getDeviceReplicaSets(
14451445
Map<Integer, List<TRegionReplicaSet>> slot2ReplicasMap =
14461446
cache.computeIfAbsent(db, k -> new HashMap<>());
14471447

1448-
SeriesPartitionKey seriesPartitionKey = CommonUtils.getSeriesPartitionKey(deviceID, db);
1448+
SeriesPartitionKey seriesPartitionKey = CommonUtils.getSeriesPartitionKey(deviceID, db, true);
14491449
TSeriesPartitionSlot tSeriesPartitionSlot =
14501450
dataPartition.calculateDeviceGroupId(seriesPartitionKey);
14511451

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertRowsNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ public List<WritePlanNode> splitByPartition(IAnalysis analysis) {
172172
// each row may belong to different database, pass null for auto-detection
173173
SeriesPartitionKey seriesPartitionKey =
174174
CommonUtils.getSeriesPartitionKey(
175-
insertRowNode.getDeviceID(), analysis.getDatabaseName());
175+
insertRowNode.getDeviceID(), analysis.getDatabaseName(), true);
176176
TRegionReplicaSet dataRegionReplicaSet =
177177
analysis
178178
.getDataPartitionInfo()

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertTabletNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ protected Map<TRegionReplicaSet, List<Integer>> splitByReplicaSet(
210210
final IDeviceID deviceID = entry.getKey();
211211
final PartitionSplitInfo splitInfo = entry.getValue();
212212
SeriesPartitionKey seriesPartitionKey =
213-
CommonUtils.getSeriesPartitionKey(deviceID, analysis.getDatabaseName());
213+
CommonUtils.getSeriesPartitionKey(deviceID, analysis.getDatabaseName(), true);
214214
final List<TRegionReplicaSet> replicaSets =
215215
analysis
216216
.getDataPartitionInfo()

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1309,7 +1309,7 @@ private List<TRegionReplicaSet> getDeviceReplicaSets(
13091309

13101310
// given seriesPartitionSlot has already been calculated
13111311
SeriesPartitionKey seriesPartitionKey =
1312-
CommonUtils.getSeriesPartitionKey(deviceId, databaseName);
1312+
CommonUtils.getSeriesPartitionKey(deviceId, databaseName, true);
13131313
final TSeriesPartitionSlot seriesPartitionSlot =
13141314
dataPartition.calculateDeviceGroupId(seriesPartitionKey);
13151315
List<TRegionReplicaSet> regionReplicaSets =
@@ -1791,7 +1791,7 @@ public List<PlanNode> visitTableDeviceFetch(
17911791
final List<Object[]> deviceIDArray = node.getDeviceIdList();
17921792
for (int i = 0; i < node.getPartitionKeyList().size(); ++i) {
17931793
SeriesPartitionKey seriesPartitionKey =
1794-
CommonUtils.getSeriesPartitionKey(partitionKeyList.get(i), database);
1794+
CommonUtils.getSeriesPartitionKey(partitionKeyList.get(i), database, true);
17951795
final TRegionReplicaSet regionReplicaSet =
17961796
databaseMap.get(schemaPartition.calculateDeviceGroupId(seriesPartitionKey));
17971797
if (Objects.nonNull(regionReplicaSet)) {

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/CreateOrUpdateTableDeviceNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ public List<WritePlanNode> splitByPartition(final IAnalysis analysis) {
263263
for (int i = 0; i < partitionKeyList.size(); i++) {
264264
// Use the string literal of deviceId as the partition key
265265
SeriesPartitionKey seriesPartitionKey =
266-
CommonUtils.getSeriesPartitionKey(partitionKeyList.get(i), database);
266+
CommonUtils.getSeriesPartitionKey(partitionKeyList.get(i), database, true);
267267
final TRegionReplicaSet regionReplicaSet =
268268
analysis.getSchemaPartitionInfo().getSchemaRegionReplicaSet(database, seriesPartitionKey);
269269
splitMap.computeIfAbsent(regionReplicaSet, k -> new ArrayList<>()).add(i);

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/load/LoadTsFileScheduler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -851,7 +851,7 @@ public List<TRegionReplicaSet> queryDataPartition(
851851
// (database != null) means this file will be loaded into table-model
852852
{
853853
SeriesPartitionKey seriesPartitionKey =
854-
CommonUtils.getSeriesPartitionKey(pair.left, database);
854+
CommonUtils.getSeriesPartitionKey(pair.left, database, false);
855855
return database != null
856856
? dataPartition.getDataRegionReplicaSetForWriting(
857857
seriesPartitionKey, pair.right, database)

0 commit comments

Comments
 (0)