This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch rc/2.0.6 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 5854babbcbeb3c71e38cbe61752f5dc460f889ec Author: Caideyipi <[email protected]> AuthorDate: Fri Nov 7 15:19:33 2025 +0800 Solved the compilation problem --- .../it/schema/IoTDBAlterEncodingCompressorIT.java | 10 ------- .../treemodel/manual/IoTDBPipeInclusionIT.java | 16 +++++----- .../receiver/protocol/IoTDBConfigNodeReceiver.java | 11 ------- ...eConfigPhysicalPlanTreePatternParseVisitor.java | 2 +- .../schema/AlterEncodingCompressorProcedure.java | 14 +++++---- .../queryengine/plan/analyze/AnalyzeVisitor.java | 2 +- .../metadata/AlterEncodingCompressorStatement.java | 34 ++++++++++++++++++++++ 7 files changed, 51 insertions(+), 38 deletions(-) diff --git a/integration-test/src/test/java/org/apache/iotdb/db/it/schema/IoTDBAlterEncodingCompressorIT.java b/integration-test/src/test/java/org/apache/iotdb/db/it/schema/IoTDBAlterEncodingCompressorIT.java index 7c9495d16eb..9328808f60e 100644 --- a/integration-test/src/test/java/org/apache/iotdb/db/it/schema/IoTDBAlterEncodingCompressorIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/db/it/schema/IoTDBAlterEncodingCompressorIT.java @@ -156,16 +156,6 @@ public class IoTDBAlterEncodingCompressorIT extends AbstractSchemaIT { e.getMessage()); } - try { - statement.execute( - "alter timeSeries root.vehicle.wind.a, root.__audit.** set STORAGE_PROPERTIES encoding=PLAIN, compressor=LZMA2"); - fail(); - } catch (final SQLException e) { - Assert.assertEquals( - "803: 'AUDIT' permission is needed to alter the encoding and compressor of database root.__audit", - e.getMessage()); - } - try { statement.execute( "alter timeSeries if permitted root.vehicle.**, root.__audit.** set STORAGE_PROPERTIES encoding=GORILLA, compressor=GZIP"); diff --git a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeInclusionIT.java b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeInclusionIT.java index c4b42553912..47ab3ca764d 100644 --- a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeInclusionIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeInclusionIT.java @@ -77,13 +77,12 @@ public class IoTDBPipeInclusionIT extends AbstractPipeDualTreeModelManualIT { if (!TestUtils.tryExecuteNonQueriesWithRetry( senderEnv, Arrays.asList( - // TODO: add database creation after the database auto creating on receiver can be - // banned + "create database root.ln", "create timeSeries root.ln.wf01.wt01.status with datatype=BOOLEAN,encoding=PLAIN", "ALTER timeSeries root.ln.wf01.wt01.status ADD TAGS tag3=v3", "ALTER timeSeries root.ln.wf01.wt01.status ADD ATTRIBUTES attr4=v4"), null)) { - return; + return; } TestUtils.assertDataEventuallyOnEnv( @@ -95,10 +94,10 @@ public class IoTDBPipeInclusionIT extends AbstractPipeDualTreeModelManualIT { if (!TestUtils.tryExecuteNonQueriesWithRetry( senderEnv, - Arrays.asList( - "ALTER timeSeries root.** set STORAGE_PROPERTIES compressor=ZSTD", - "insert into root.ln.wf01.wt01(time, status) values(now(), false)", - "flush"), + Arrays.asList( + "ALTER timeSeries root.** set STORAGE_PROPERTIES compressor=ZSTD", + "insert into root.ln.wf01.wt01(time, status) values(now(), false)", + "flush"), null)) { return; } @@ -150,8 +149,7 @@ public class IoTDBPipeInclusionIT extends AbstractPipeDualTreeModelManualIT { if (!TestUtils.tryExecuteNonQueriesWithRetry( senderEnv, Arrays.asList( - // TODO: add database creation after the database auto creating on receiver can be - // banned + "create timeseries root.ln", "create timeseries root.ln.wf01.wt01.status with datatype=BOOLEAN,encoding=PLAIN", "ALTER timeseries root.ln.wf01.wt01.status ADD TAGS tag3=v3", "ALTER timeseries root.ln.wf01.wt01.status ADD ATTRIBUTES attr4=v4"), diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/receiver/protocol/IoTDBConfigNodeReceiver.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/receiver/protocol/IoTDBConfigNodeReceiver.java index d746ceb76a3..8a143aa83e0 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/receiver/protocol/IoTDBConfigNodeReceiver.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/receiver/protocol/IoTDBConfigNodeReceiver.java @@ -37,7 +37,6 @@ import org.apache.iotdb.commons.pipe.sink.payload.thrift.request.PipeTransferCom import org.apache.iotdb.commons.pipe.sink.payload.thrift.request.PipeTransferFileSealReqV1; import org.apache.iotdb.commons.pipe.sink.payload.thrift.request.PipeTransferFileSealReqV2; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.commons.schema.table.Audit; import org.apache.iotdb.commons.schema.table.TreeViewSchema; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; @@ -345,13 +344,6 @@ public class IoTDBConfigNodeReceiver extends IoTDBFileReceiver { .getStatus(); case PipeAlterEncodingCompressor: // Judge here in the future - if (configManager - .checkUserPrivileges(username, new PrivilegeUnion(PrivilegeType.AUDIT)) - .getStatus() - .getCode() - != TSStatusCode.SUCCESS_STATUS.getStatusCode()) { - ((PipeAlterEncodingCompressorPlan) plan).setMayAlterAudit(false); - } if (skipIfNoPrivileges.get()) { final PathPatternTree pathPatternTree = PathPatternTree.deserialize( @@ -359,9 +351,6 @@ public class IoTDBConfigNodeReceiver extends IoTDBFileReceiver { configManager .fetchAuthizedPatternTree(username, PrivilegeType.WRITE_SCHEMA.ordinal()) .getPathPatternTree())); - if (((PipeAlterEncodingCompressorPlan) plan).isMayAlterAudit()) { - pathPatternTree.appendPathPattern(Audit.TREE_MODEL_AUDIT_DATABASE_PATH_PATTERN, true); - } ((PipeAlterEncodingCompressorPlan) plan) .setPatternTreeBytes( PathPatternTreeUtils.intersectWithFullPathPrefixTree( diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/source/PipeConfigPhysicalPlanTreePatternParseVisitor.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/source/PipeConfigPhysicalPlanTreePatternParseVisitor.java index 8aa0ae42dab..c0e394d5a93 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/source/PipeConfigPhysicalPlanTreePatternParseVisitor.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/source/PipeConfigPhysicalPlanTreePatternParseVisitor.java @@ -254,7 +254,7 @@ public class PipeConfigPhysicalPlanTreePatternParseVisitor @Override public Optional<ConfigPhysicalPlan> visitPipeAlterEncodingCompressor( final PipeAlterEncodingCompressorPlan pipeAlterEncodingCompressorPlan, - final UnionIoTDBTreePattern pattern) { + final IoTDBTreePattern pattern) { try { final PathPatternTree intersectedTree = pattern.getIntersection( diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/AlterEncodingCompressorProcedure.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/AlterEncodingCompressorProcedure.java index e0f75722c9d..31f1a4f40eb 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/AlterEncodingCompressorProcedure.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/AlterEncodingCompressorProcedure.java @@ -69,7 +69,9 @@ public class AlterEncodingCompressorProcedure private boolean ifExists; private byte encoding; private byte compressor; - private boolean mayAlterAudit; + + // Reserved for potential upgrading + private boolean mayAlterAudit = false; private transient ByteBuffer patternTreeBytes; private transient String requestMessage; @@ -149,7 +151,7 @@ public class AlterEncodingCompressorProcedure private boolean alterEncodingCompressorInSchemaRegion(final ConfigNodeProcedureEnv env) { final Map<TConsensusGroupId, TRegionReplicaSet> relatedSchemaRegionGroup = - env.getConfigManager().getRelatedSchemaRegionGroup(patternTree, mayAlterAudit); + env.getConfigManager().getRelatedSchemaRegionGroup(patternTree); if (relatedSchemaRegionGroup.isEmpty()) { if (!ifExists) { @@ -167,7 +169,7 @@ public class AlterEncodingCompressorProcedure final DataNodeTSStatusTaskExecutor<TAlterEncodingCompressorReq> alterEncodingCompressorTask = new DataNodeTSStatusTaskExecutor<TAlterEncodingCompressorReq>( env, - env.getConfigManager().getRelatedSchemaRegionGroup(patternTree, mayAlterAudit), + env.getConfigManager().getRelatedSchemaRegionGroup(patternTree), false, CnToDnAsyncRequestType.ALTER_ENCODING_COMPRESSOR, ((dataNodeLocation, consensusGroupIdList) -> @@ -237,9 +239,9 @@ public class AlterEncodingCompressorProcedure isGeneratedByPipe ? new PipeEnrichedPlan( new PipeAlterEncodingCompressorPlan( - patternTreeBytes, encoding, compressor, mayAlterAudit)) + patternTreeBytes, encoding, compressor, false)) : new PipeAlterEncodingCompressorPlan( - patternTreeBytes, encoding, compressor, mayAlterAudit)); + patternTreeBytes, encoding, compressor, false)); } catch (final ConsensusException e) { LOGGER.warn(ClusterManager.CONSENSUS_WRITE_ERROR, e); result = new TSStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR.getStatusCode()); @@ -285,7 +287,7 @@ public class AlterEncodingCompressorProcedure ReadWriteIOUtils.write(ifExists, stream); ReadWriteIOUtils.write(encoding, stream); ReadWriteIOUtils.write(compressor, stream); - ReadWriteIOUtils.write(mayAlterAudit, stream); + ReadWriteIOUtils.write(false, stream); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java index 5b7f653425c..fb4580a28ca 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java @@ -3172,7 +3172,7 @@ public class AnalyzeVisitor extends StatementVisitor<Analysis, MPPQueryContext> } @Override - public Analysis visitShowStorageGroup( + public Analysis visitShowDatabase( ShowDatabaseStatement showDatabaseStatement, MPPQueryContext context) { Analysis analysis = new Analysis(); analysis.setRealStatement(showDatabaseStatement); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/AlterEncodingCompressorStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/AlterEncodingCompressorStatement.java index a8dd88841a4..39fcdfba376 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/AlterEncodingCompressorStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/AlterEncodingCompressorStatement.java @@ -19,13 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.statement.metadata; +import org.apache.iotdb.common.rpc.thrift.TSStatus; +import org.apache.iotdb.commons.auth.AuthException; +import org.apache.iotdb.commons.auth.entity.PrivilegeType; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.path.PathPatternTreeUtils; +import org.apache.iotdb.commons.utils.StatusUtils; +import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.queryengine.plan.analyze.QueryType; import org.apache.iotdb.db.queryengine.plan.statement.IConfigStatement; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; import org.apache.iotdb.db.queryengine.plan.statement.StatementVisitor; +import org.apache.iotdb.rpc.TSStatusCode; import org.apache.tsfile.file.metadata.enums.CompressionType; import org.apache.tsfile.file.metadata.enums.TSEncoding; @@ -33,6 +40,8 @@ import org.apache.tsfile.file.metadata.enums.TSEncoding; import java.util.List; import java.util.Objects; +import static org.apache.iotdb.db.auth.AuthorityChecker.getAuthorizedPathTree; + public class AlterEncodingCompressorStatement extends Statement implements IConfigStatement { private PathPatternTree patternTree; @@ -40,6 +49,8 @@ public class AlterEncodingCompressorStatement extends Statement implements IConf private final CompressionType compressor; private final boolean ifExists; private final boolean ifPermitted; + + // Reserved for upgrading private boolean withAudit = false; public AlterEncodingCompressorStatement( @@ -109,6 +120,29 @@ public class AlterEncodingCompressorStatement extends Statement implements IConf && Objects.equals(this.ifPermitted, that.ifPermitted); } + @Override + public TSStatus checkPermissionBeforeProcess(String userName) { + if (AuthorityChecker.SUPER_USER.equals(userName)) { + return new TSStatus(TSStatusCode.SUCCESS_STATUS.getStatusCode()); + } + if (ifPermitted) { + try { + final PathPatternTree authTree = + getAuthorizedPathTree(userName, PrivilegeType.WRITE_SCHEMA); + setPatternTree( + PathPatternTreeUtils.intersectWithFullPathPrefixTree(getPatternTree(), authTree)); + return StatusUtils.OK; + } catch (final AuthException e) { + return new TSStatus(e.getCode().getStatusCode()); + } + } + return AuthorityChecker.getTSStatus( + AuthorityChecker.checkFullPathOrPatternListPermission( + userName, getPaths(), PrivilegeType.WRITE_SCHEMA), + getPaths(), + PrivilegeType.WRITE_SCHEMA); + } + @Override public int hashCode() { return Objects.hash(patternTree, encoding, compressor, ifExists, ifPermitted);
