This is an automated email from the ASF dual-hosted git repository.
jt2594838 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new eea7e65c74d Refactor: Renamed the remaining id columns to tag (#17582)
eea7e65c74d is described below
commit eea7e65c74d5e0ff8672a61dd1126f8cf686c4cc
Author: Caideyipi <[email protected]>
AuthorDate: Sat May 9 18:57:05 2026 +0800
Refactor: Renamed the remaining id columns to tag (#17582)
---
iotdb-client/client-cpp/src/main/Session.cpp | 16 +++++------
iotdb-client/client-cpp/src/main/Session.h | 10 +++----
.../schema/source/DevicePredicateHandler.java | 6 ++--
.../schema/source/TableDeviceFetchSource.java | 8 +++---
.../db/queryengine/plan/analyze/AnalyzeUtils.java | 32 +++++++++++-----------
.../schema/CheckSchemaPredicateVisitor.java | 6 ++--
.../ConvertSchemaPredicateToFilterVisitor.java | 30 ++++++++++----------
.../schema/ExtractPredicateColumnNameVisitor.java | 2 +-
.../metadata/fetcher/SchemaPredicateUtil.java | 16 +++++------
.../metadata/fetcher/TableDeviceSchemaFetcher.java | 10 +++----
.../plan/relational/planner/RelationPlanner.java | 4 +--
.../planner/node/DeviceTableScanNode.java | 2 +-
.../relational/planner/node/TableScanNode.java | 2 +-
.../PushAggregationIntoTableScan.java | 4 +--
14 files changed, 74 insertions(+), 74 deletions(-)
diff --git a/iotdb-client/client-cpp/src/main/Session.cpp
b/iotdb-client/client-cpp/src/main/Session.cpp
index 5e175f581b9..b6f6afad0fa 100644
--- a/iotdb-client/client-cpp/src/main/Session.cpp
+++ b/iotdb-client/client-cpp/src/main/Session.cpp
@@ -263,14 +263,14 @@ void Tablet::setAligned(bool isAligned) {
}
std::shared_ptr<storage::IDeviceID> Tablet::getDeviceID(int row) {
- std::vector<std::string> id_array(idColumnIndexes.size() + 1);
- size_t idArrayIdx = 0;
- id_array[idArrayIdx++] = this->deviceId;
- for (auto idColumnIndex : idColumnIndexes) {
- void* strPtr = getValue(idColumnIndex, row, TSDataType::TEXT);
- id_array[idArrayIdx++] = *static_cast<std::string*>(strPtr);
- }
- return std::make_shared<storage::StringArrayDeviceID>(id_array);
+ std::vector<std::string> deviceIdSegments(tagColumnIndexes.size() + 1);
+ size_t deviceIdSegmentIndex = 0;
+ deviceIdSegments[deviceIdSegmentIndex++] = this->deviceId;
+ for (auto tagColumnIndex : tagColumnIndexes) {
+ void* strPtr = getValue(tagColumnIndex, row, TSDataType::TEXT);
+ deviceIdSegments[deviceIdSegmentIndex++] =
*static_cast<std::string*>(strPtr);
+ }
+ return std::make_shared<storage::StringArrayDeviceID>(deviceIdSegments);
}
string SessionUtils::getTime(const Tablet& tablet) {
diff --git a/iotdb-client/client-cpp/src/main/Session.h
b/iotdb-client/client-cpp/src/main/Session.h
index 0ae279f795c..cedfaeba196 100644
--- a/iotdb-client/client-cpp/src/main/Session.h
+++ b/iotdb-client/client-cpp/src/main/Session.h
@@ -135,7 +135,7 @@ public:
size_t rowSize; //the number of rows to include in this tablet
size_t maxRowNumber; // the maximum number of rows for this tablet
bool isAligned; // whether this tablet store data of aligned timeseries
or not
- std::vector<int> idColumnIndexes;
+ std::vector<int> tagColumnIndexes;
Tablet() = default;
@@ -183,10 +183,10 @@ public:
// create value columns
values.resize(schemas.size());
createColumns();
- // init idColumnIndexs
+ // init tagColumnIndexes
for (size_t i = 0; i < this->columnTypes.size(); i++) {
if (this->columnTypes[i] == ColumnCategory::TAG) {
- idColumnIndexes.push_back(i);
+ tagColumnIndexes.push_back(i);
}
}
// create bitMaps
@@ -205,7 +205,7 @@ public:
: deviceId(other.deviceId), schemas(other.schemas),
schemaNameIndex(other.schemaNameIndex),
columnTypes(other.columnTypes), timestamps(other.timestamps),
maxRowNumber(other.maxRowNumber), bitMaps(other.bitMaps),
rowSize(other.rowSize),
- isAligned(other.isAligned), idColumnIndexes(other.idColumnIndexes) {
+ isAligned(other.isAligned), tagColumnIndexes(other.tagColumnIndexes) {
values.resize(other.values.size());
for (size_t i = 0; i < other.values.size(); ++i) {
if (!other.values[i])
@@ -226,7 +226,7 @@ public:
maxRowNumber = other.maxRowNumber;
rowSize = other.rowSize;
isAligned = other.isAligned;
- idColumnIndexes = other.idColumnIndexes;
+ tagColumnIndexes = other.tagColumnIndexes;
bitMaps = other.bitMaps;
values.resize(other.values.size());
for (size_t i = 0; i < other.values.size(); ++i) {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DevicePredicateHandler.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DevicePredicateHandler.java
index ecbcbba8586..db7d0a2b374 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DevicePredicateHandler.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DevicePredicateHandler.java
@@ -47,7 +47,7 @@ public abstract class DevicePredicateHandler implements
AutoCloseable {
protected final ColumnTransformer filterOutputTransformer;
private final List<TSDataType> inputDataTypes;
private final List<TsTableColumnSchema> columnSchemaList;
- private final int idIndex;
+ private final int tagIndex;
// Batch logic
protected static final int DEFAULT_MAX_TS_BLOCK_LINE_NUMBER =
@@ -72,7 +72,7 @@ public abstract class DevicePredicateHandler implements
AutoCloseable {
columnSchemaList.stream()
.map(TsTableColumnSchema::getDataType)
.collect(Collectors.toList());
- this.idIndex =
+ this.tagIndex =
PathUtils.isTableModelDatabase(database)
? 3
: DataNodeTreeViewSchemaUtils.getPatternNodes(table).length;
@@ -100,7 +100,7 @@ public abstract class DevicePredicateHandler implements
AutoCloseable {
deviceSchemaBatch.forEach(
deviceSchemaInfo ->
transformToTableDeviceTsBlockColumns(
- deviceSchemaInfo, builder, columnSchemaList, idIndex));
+ deviceSchemaInfo, builder, columnSchemaList, tagIndex));
curBlock = builder.build();
if (withoutFilter()) {
return;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/TableDeviceFetchSource.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/TableDeviceFetchSource.java
index 1c62a6443dd..23dceb26061 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/TableDeviceFetchSource.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/TableDeviceFetchSource.java
@@ -81,21 +81,21 @@ public class TableDeviceFetchSource implements
ISchemaSource<IDeviceSchemaInfo>
final IDeviceSchemaInfo schemaInfo, final TsBlockBuilder builder, final
String database) {
builder.getTimeColumnBuilder().writeLong(0L);
int resultIndex = 0;
- int idIndex = 0;
+ int tagIndex = 0;
final String[] pathNodes = schemaInfo.getRawNodes();
final TsTable table =
DataNodeTableCache.getInstance().getTable(this.database, tableName);
TsTableColumnSchema columnSchema;
for (final ColumnHeader columnHeader : columnHeaderList) {
columnSchema = table.getColumnSchema(columnHeader.getColumnName());
if (columnSchema.getColumnCategory().equals(TsTableColumnCategory.TAG)) {
- if (pathNodes.length <= idIndex + 3 || pathNodes[idIndex + 3] == null)
{
+ if (pathNodes.length <= tagIndex + 3 || pathNodes[tagIndex + 3] ==
null) {
builder.getColumnBuilder(resultIndex).appendNull();
} else {
builder
.getColumnBuilder(resultIndex)
- .writeBinary(new Binary(pathNodes[idIndex + 3],
TSFileConfig.STRING_CHARSET));
+ .writeBinary(new Binary(pathNodes[tagIndex + 3],
TSFileConfig.STRING_CHARSET));
}
- idIndex++;
+ tagIndex++;
} else if
(columnSchema.getColumnCategory().equals(TsTableColumnCategory.ATTRIBUTE)) {
if
(Objects.isNull(schemaInfo.getAttributeValue(columnHeader.getColumnName()))) {
builder.getColumnBuilder(resultIndex).appendNull();
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java
index 2005d4fdeb7..32bfbea0329 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java
@@ -436,23 +436,23 @@ public class AnalyzeUtils {
Queue<Expression> expressionQueue = new LinkedList<>();
expressionQueue.add(expression);
DeletionPredicate predicate = new DeletionPredicate(table.getTableName());
- IDPredicate idPredicate = null;
+ IDPredicate tagPredicate = null;
TimeRange timeRange = new TimeRange(Long.MIN_VALUE, Long.MAX_VALUE, true);
while (!expressionQueue.isEmpty()) {
Expression currExp = expressionQueue.remove();
if (currExp instanceof LogicalExpression) {
parseAndPredicate(((LogicalExpression) currExp), expressionQueue);
} else if (currExp instanceof ComparisonExpression) {
- idPredicate =
- parseComparison(((ComparisonExpression) currExp), timeRange,
idPredicate, table);
+ tagPredicate =
+ parseComparison(((ComparisonExpression) currExp), timeRange,
tagPredicate, table);
} else if (currExp instanceof IsNullPredicate) {
- idPredicate = parseIsNull((IsNullPredicate) currExp, idPredicate,
table);
+ tagPredicate = parseIsNull((IsNullPredicate) currExp, tagPredicate,
table);
} else {
throw new SemanticException("Unsupported expression: " + currExp + "
in " + expression);
}
}
- if (idPredicate != null) {
- predicate.setIdPredicate(idPredicate);
+ if (tagPredicate != null) {
+ predicate.setIdPredicate(tagPredicate);
}
if (timeRange.getStartTime() > timeRange.getEndTime()) {
throw new SemanticException(
@@ -479,14 +479,14 @@ public class AnalyzeUtils {
throw new SemanticException("Left hand expression is not an identifier:
" + leftHandExp);
}
String columnName = ((Identifier) leftHandExp).getValue();
- int idColumnOrdinal = table.getTagColumnOrdinal(columnName);
- if (idColumnOrdinal == -1) {
+ int tagColumnOrdinal = table.getTagColumnOrdinal(columnName);
+ if (tagColumnOrdinal == -1) {
throw new SemanticException(
"The column '" + columnName + "' does not exist or is not a tag
column");
}
// the first segment is the table name, so + 1
- IDPredicate newPredicate = new SegmentExactMatch(null, idColumnOrdinal +
1);
+ IDPredicate newPredicate = new SegmentExactMatch(null, tagColumnOrdinal +
1);
return combinePredicates(oldPredicate, newPredicate);
}
@@ -548,20 +548,20 @@ public class AnalyzeUtils {
return oldPredicate;
}
- // id predicate
+ // tag predicate
String columnName = identifier.getValue();
- int idColumnOrdinal = table.getTagColumnOrdinal(columnName);
- if (idColumnOrdinal == -1) {
+ int tagColumnOrdinal = table.getTagColumnOrdinal(columnName);
+ if (tagColumnOrdinal == -1) {
throw new SemanticException(
"The column '" + columnName + "' does not exist or is not a tag
column");
}
- IDPredicate newPredicate = getIdPredicate(comparisonExpression, right,
idColumnOrdinal);
+ IDPredicate newPredicate = getTagPredicate(comparisonExpression, right,
tagColumnOrdinal);
return combinePredicates(oldPredicate, newPredicate);
}
- private static IDPredicate getIdPredicate(
- ComparisonExpression comparisonExpression, Expression right, int
idColumnOrdinal) {
+ private static IDPredicate getTagPredicate(
+ ComparisonExpression comparisonExpression, Expression right, int
tagColumnOrdinal) {
if (comparisonExpression.getOperator() !=
ComparisonExpression.Operator.EQUAL) {
throw new SemanticException("The operator of tag predicate must be '='
for " + right);
}
@@ -577,7 +577,7 @@ public class AnalyzeUtils {
"The right hand value of tag predicate must be a string: " + right);
}
// the first segment is the table name, so + 1
- return new SegmentExactMatch(rightHandValue, idColumnOrdinal + 1);
+ return new SegmentExactMatch(rightHandValue, tagColumnOrdinal + 1);
}
public interface DataPartitionQueryFunc {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/CheckSchemaPredicateVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/CheckSchemaPredicateVisitor.java
index c503e7e176b..020e9a8a021 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/CheckSchemaPredicateVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/CheckSchemaPredicateVisitor.java
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
import java.util.Objects;
-// Return whether input expression can not be bounded to a single ID
+// Return whether the input expression can not be bounded by tag-only
predicates.
public class CheckSchemaPredicateVisitor
implements AstVisitor<Boolean, CheckSchemaPredicateVisitor.Context> {
@@ -57,7 +57,7 @@ public class CheckSchemaPredicateVisitor
if (node.getOperator().equals(LogicalExpression.Operator.AND)) {
if (System.currentTimeMillis() - lastLogTime >= LOG_INTERVAL_MS) {
LOGGER.info(
- "And expression encountered during id determined checking, will be
classified into fuzzy expression. Sql: {}",
+ "And expression encountered during tag-determined checking, will
be classified into fuzzy expression. Sql: {}",
context.queryContext.getSql());
lastLogTime = System.currentTimeMillis();
}
@@ -75,7 +75,7 @@ public class CheckSchemaPredicateVisitor
if
(node.getValue().getExpressionType().equals(TableExpressionType.LOGICAL_EXPRESSION))
{
if (System.currentTimeMillis() - lastLogTime >= LOG_INTERVAL_MS) {
LOGGER.info(
- "Logical expression type encountered in not expression child
during id determined checking, will be classified into fuzzy expression. Sql:
{}",
+ "Logical expression type encountered in not expression child
during tag-determined checking, will be classified into fuzzy expression. Sql:
{}",
context.queryContext.getSql());
lastLogTime = System.currentTimeMillis();
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ConvertSchemaPredicateToFilterVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ConvertSchemaPredicateToFilterVisitor.java
index c07f281f9b5..78227941a52 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ConvertSchemaPredicateToFilterVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ConvertSchemaPredicateToFilterVisitor.java
@@ -68,7 +68,7 @@ import static
org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate
/**
* The {@link ConvertSchemaPredicateToFilterVisitor} will convert a predicate
to {@link
* SchemaFilter}. For the predicates which can not be converted, this will
return {@code null}.
- * However, for IdDeterminedPredicate, this visitor shall never return {@code
null}.
+ * However, for tag-determined predicates, this visitor shall never return
{@code null}.
*/
public class ConvertSchemaPredicateToFilterVisitor
extends PredicateVisitor<SchemaFilter,
ConvertSchemaPredicateToFilterVisitor.Context> {
@@ -84,7 +84,7 @@ public class ConvertSchemaPredicateToFilterVisitor
}
}
- return wrapIdOrAttributeFilter(
+ return wrapTagOrAttributeFilter(
new InFilter(
values.stream()
.map(value -> ((StringLiteral) value).getValue())
@@ -95,14 +95,14 @@ public class ConvertSchemaPredicateToFilterVisitor
@Override
public SchemaFilter visitIsNullPredicate(final IsNullPredicate node, final
Context context) {
- return wrapIdOrAttributeFilter(
+ return wrapTagOrAttributeFilter(
new PreciseFilter((String) null), ((SymbolReference)
node.getValue()).getName(), context);
}
@Override
public SchemaFilter visitIsNotNullPredicate(
final IsNotNullPredicate node, final Context context) {
- return wrapIdOrAttributeFilter(
+ return wrapTagOrAttributeFilter(
new NotFilter(new PreciseFilter((String) null)),
((SymbolReference) node.getValue()).getName(),
context);
@@ -111,12 +111,12 @@ public class ConvertSchemaPredicateToFilterVisitor
@Override
public @Nullable SchemaFilter visitLikePredicate(
final LikePredicate node, final Context context) {
- // TODO: Support stringLiteral like id/attr?
+ // TODO: Support stringLiteral like tag/attr?
if (!(node.getValue() instanceof SymbolReference)
|| !(node.getPattern() instanceof StringLiteral)) {
return null;
}
- return wrapIdOrAttributeFilter(
+ return wrapTagOrAttributeFilter(
new LikeFilter(
(((StringLiteral) node.getPattern()).getValue()),
node.getEscape().isPresent()
@@ -174,7 +174,7 @@ public class ConvertSchemaPredicateToFilterVisitor
return null;
}
- return wrapIdOrAttributeFilter(
+ return wrapTagOrAttributeFilter(
node.getOperator() == ComparisonExpression.Operator.EQUAL
? new PreciseFilter(value)
: new ComparisonFilter(
@@ -236,35 +236,35 @@ public class ConvertSchemaPredicateToFilterVisitor
return visitExpression(node, context);
}
- private SchemaFilter wrapIdOrAttributeFilter(
+ private SchemaFilter wrapTagOrAttributeFilter(
final SchemaFilter filter, final String columnName, final Context
context) {
return context
.table
.getColumnSchema(columnName)
.getColumnCategory()
.equals(TsTableColumnCategory.TAG)
- ? new TagFilter(filter, context.idColumnIndexMap.get(columnName))
+ ? new TagFilter(filter, context.tagColumnIndexMap.get(columnName))
: new AttributeFilter(filter, columnName);
}
public static class Context {
private final TsTable table;
- private final Map<String, Integer> idColumnIndexMap;
+ private final Map<String, Integer> tagColumnIndexMap;
public Context(final TsTable table) {
this.table = table;
- this.idColumnIndexMap = getIdColumnIndex(table);
+ this.tagColumnIndexMap = getTagColumnIndex(table);
}
- private Map<String, Integer> getIdColumnIndex(final TsTable table) {
+ private Map<String, Integer> getTagColumnIndex(final TsTable table) {
Map<String, Integer> map = new HashMap<>();
List<TsTableColumnSchema> columnSchemaList = table.getColumnList();
- int idIndex = 0;
+ int tagIndex = 0;
for (TsTableColumnSchema columnSchema : columnSchemaList) {
if
(columnSchema.getColumnCategory().equals(TsTableColumnCategory.TAG)) {
- map.put(columnSchema.getColumnName(), idIndex);
- idIndex++;
+ map.put(columnSchema.getColumnName(), tagIndex);
+ tagIndex++;
}
}
return map;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ExtractPredicateColumnNameVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ExtractPredicateColumnNameVisitor.java
index 31369dd721f..99d19e6bf30 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ExtractPredicateColumnNameVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ExtractPredicateColumnNameVisitor.java
@@ -41,7 +41,7 @@ public class ExtractPredicateColumnNameVisitor extends
PredicateVisitor<String,
@Override
public String visitExpression(final Expression expression, final Void
context) {
// TODO: implement schema function filter and parse some function call and
arithmetic filters
- // into id determined filter
+ // into a tag-determined filter
return null;
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/SchemaPredicateUtil.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/SchemaPredicateUtil.java
index 6eb90d0fa94..0037e2f1ac9 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/SchemaPredicateUtil.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/SchemaPredicateUtil.java
@@ -51,8 +51,8 @@ public class SchemaPredicateUtil {
private SchemaPredicateUtil() {}
- // pair.left is Expressions only contain ID columns
- // pair.right is Expressions contain at least one ATTRIBUTE column
+ // pair.left is expressions that only contain tag columns
+ // pair.right is expressions that contain at least one attribute column
static Pair<List<Expression>, List<Expression>>
separateTagDeterminedPredicate(
final List<Expression> expressionList,
final TsTable table,
@@ -71,7 +71,7 @@ public class SchemaPredicateUtil {
final BetweenPredicate predicate = (BetweenPredicate) expression;
// Separate the between predicate to simplify the logic and to handle
cases like '2' between
- // id1 and attr2 / id1 between '2' and attr1
+ // tag1 and attr2 / tag1 between '2' and attr1
separateExpression(
new ComparisonExpression(
ComparisonExpression.Operator.LESS_THAN_OR_EQUAL,
@@ -114,7 +114,7 @@ public class SchemaPredicateUtil {
// return or concat filter list, inner which all filter is and concat
// e.g. (a OR b) AND (c OR d) -> (a AND c) OR (a AND d) OR (b AND c) OR (b
AND d)
// if input is empty, then return [[]]
- static List<Map<Integer, List<SchemaFilter>>>
convertDeviceIdPredicateToOrConcatList(
+ static List<Map<Integer, List<SchemaFilter>>>
convertTagPredicateToOrConcatList(
final List<Expression> schemaFilterList,
final TsTable table,
final AtomicBoolean mayContainDuplicateDevice) {
@@ -181,7 +181,7 @@ public class SchemaPredicateUtil {
final int index = ((TagFilter) currentFilter).getIndex();
final SchemaFilter childFilter = currentFilter.getChild();
- // Compress the not filters and put them after idFilter,
+ // Compress the not filters and put them after the tag filter,
// to simplify the logics in schema regions
if (isNotFilter) {
currentFilter.setChild(new NotFilter(childFilter));
@@ -223,10 +223,10 @@ public class SchemaPredicateUtil {
final List<Map<Integer, List<SchemaFilter>>> index2FilterMapList,
final TsTable tableInstance) {
final List<Integer> selectedExpressionCases = new ArrayList<>();
- final int idCount = tableInstance.getTagNum();
+ final int tagCount = tableInstance.getTagNum();
for (int i = 0; i < index2FilterMapList.size(); i++) {
final Map<Integer, List<SchemaFilter>> filterMap =
index2FilterMapList.get(i);
- if (filterMap.size() == idCount
+ if (filterMap.size() == tagCount
&& filterMap.values().stream()
.allMatch(
filterList ->
@@ -242,7 +242,7 @@ public class SchemaPredicateUtil {
}
// compact and-concat expression list to one expression
- static Expression compactDeviceIdFuzzyPredicate(final List<Expression>
expressionList) {
+ static Expression compactTagFuzzyPredicate(final List<Expression>
expressionList) {
if (expressionList.isEmpty()) {
return null;
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaFetcher.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaFetcher.java
index eaf1a85158e..9bf402f2b99 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaFetcher.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaFetcher.java
@@ -250,19 +250,19 @@ public class TableDeviceSchemaFetcher {
final List<Expression> tagFuzzyPredicateList = separatedExpression.right;
// and-concat
final Expression compactedTagFuzzyPredicate =
-
SchemaPredicateUtil.compactDeviceIdFuzzyPredicate(tagFuzzyPredicateList);
+ SchemaPredicateUtil.compactTagFuzzyPredicate(tagFuzzyPredicateList);
// Each element represents one batch of possible devices
// expressions inner each element are and-concat representing conditions
of different column
final List<Map<Integer, List<SchemaFilter>>> index2FilterMapList =
- SchemaPredicateUtil.convertDeviceIdPredicateToOrConcatList(
+ SchemaPredicateUtil.convertTagPredicateToOrConcatList(
tagDeterminedPredicateList, tableInstance,
mayContainDuplicateDevice);
- // If List<Expression> in idPredicateList contains all id columns
comparison which can use
- // SchemaCache, we store its index.
+ // If a predicate branch contains comparisons for all tag columns and can
use SchemaCache, we
+ // store its index.
final List<Integer> tagSingleMatchIndexList =
SchemaPredicateUtil.extractTagSingleMatchExpressionCases(
index2FilterMapList, tableInstance);
- // Store missing cache index in idSingleMatchIndexList
+ // Store branches that miss the cache in tagSingleMatchPredicateNotInCache
final List<Integer> tagSingleMatchPredicateNotInCache = new ArrayList<>();
final boolean isExactDeviceQuery = tagSingleMatchIndexList.size() ==
index2FilterMapList.size();
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java
index 06039bcee5d..9b8aaca846f 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java
@@ -355,7 +355,7 @@ public class RelationPlanner implements
AstVisitor<RelationPlan, Void> {
// on the basis of that the order of fields is same with the column
category order of segments
// in DeviceEntry
final Map<Symbol, Integer> tagAndAttributeIndexMap = new HashMap<>();
- int idIndex = 0;
+ int tagIndex = 0;
for (final Field field : fields) {
final TsTableColumnCategory category = field.getColumnCategory();
final Symbol symbol = symbolAllocator.newSymbol(field);
@@ -365,7 +365,7 @@ public class RelationPlanner implements
AstVisitor<RelationPlan, Void> {
new ColumnSchema(
field.getName().orElse(null), field.getType(), field.isHidden(),
category));
if (category == TsTableColumnCategory.TAG) {
- tagAndAttributeIndexMap.put(symbol, idIndex++);
+ tagAndAttributeIndexMap.put(symbol, tagIndex++);
}
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/DeviceTableScanNode.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/DeviceTableScanNode.java
index 3a522c8af61..a672caebfef 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/DeviceTableScanNode.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/DeviceTableScanNode.java
@@ -49,7 +49,7 @@ public class DeviceTableScanNode extends TableScanNode {
protected List<DeviceEntry> deviceEntries;
- // Indicates the respective index order of ID and Attribute columns in
DeviceEntry.
+ // Indicates the respective index order of tag and attribute columns in
DeviceEntry.
// For example, for DeviceEntry
`table1.tag1.tag2.attribute1.attribute2.s1.s2`, the content of
// `tagAndAttributeIndexMap` will
// be `tag1: 0, tag2: 1, attribute1: 0, attribute2: 1`.
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableScanNode.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableScanNode.java
index 79ed9dd09f7..1bc50ee179b 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableScanNode.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableScanNode.java
@@ -129,7 +129,7 @@ public abstract class TableScanNode extends SourceNode {
return
outputSymbols.stream().map(Symbol::getName).collect(Collectors.toList());
}
- public List<Symbol> getIdColumnsInTableStore(Metadata metadata, SessionInfo
session) {
+ public List<Symbol> getTagColumnsInTableStore(Metadata metadata, SessionInfo
session) {
return Objects.requireNonNull(
metadata.getTableSchema(session, qualifiedObjectName).orElse(null))
.getColumns()
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java
index 99a3aca6c5a..0b52844179c 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java
@@ -190,8 +190,8 @@ public class PushAggregationIntoTableScan implements
PlanOptimizer {
return PushDownLevel.NOOP;
} else if (singleDeviceEntry
|| ImmutableSet.copyOf(groupingKeys)
- .containsAll(tableScanNode.getIdColumnsInTableStore(metadata,
session))) {
- // If all ID columns appear in groupingKeys and no Measurement column
appears, we can push
+ .containsAll(tableScanNode.getTagColumnsInTableStore(metadata,
session))) {
+ // If all tag columns appear in groupingKeys and no Measurement column
appears, we can push
// down completely.
return PushDownLevel.COMPLETE;
} else {