This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push: new 514184ee12b [fix](audit_loader) fix that old external audit loader plugin not work because of incompatibility with new audit plugin (#40565) (#41400) 514184ee12b is described below commit 514184ee12b6de71d515921445a1bbe8b935e03d Author: Mingyu Chen <morning...@163.com> AuthorDate: Sat Sep 28 08:38:14 2024 +0800 [fix](audit_loader) fix that old external audit loader plugin not work because of incompatibility with new audit plugin (#40565) (#41400) bp #40565 Co-authored-by: caiconghui <55968745+caicong...@users.noreply.github.com> Co-authored-by: caiconghui1 <caicongh...@jd.com> --- .../src/main/java/org/apache/doris/catalog/InternalSchema.java | 4 ++-- .../org/apache/doris/catalog/InternalSchemaInitializer.java | 10 +++++----- .../main/java/org/apache/doris/load/StreamLoadRecordMgr.java | 4 ++-- .../main/java/org/apache/doris/load/loadv2/BulkLoadJob.java | 2 +- .../java/org/apache/doris/plugin/{audit => }/AuditEvent.java | 2 +- .../src/main/java/org/apache/doris/plugin/AuditPlugin.java | 2 -- .../src/main/java/org/apache/doris/plugin/PluginMgr.java | 4 ++-- .../plugin/audit/{AuditLoaderPlugin.java => AuditLoader.java} | 9 +++++---- .../java/org/apache/doris/plugin/audit/AuditLogBuilder.java | 5 +++-- .../java/org/apache/doris/plugin/audit/AuditStreamLoader.java | 2 +- .../java/org/apache/doris/plugin/audit/LoadAuditEvent.java | 2 ++ .../org/apache/doris/plugin/audit/StreamLoadAuditEvent.java | 2 ++ .../src/main/java/org/apache/doris/qe/AuditEventProcessor.java | 2 +- .../src/main/java/org/apache/doris/qe/AuditLogHelper.java | 4 ++-- .../src/main/java/org/apache/doris/qe/ConnectContext.java | 2 +- .../resource/workloadschedpolicy/WorkloadRuntimeStatusMgr.java | 2 +- .../java/org/apache/doris/alter/InternalSchemaAlterTest.java | 6 +++--- .../test/java/org/apache/doris/qe/AuditEventProcessorTest.java | 4 ++-- 18 files changed, 36 insertions(+), 32 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/InternalSchema.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/InternalSchema.java index 5a4934ec2a4..3e10b961ba5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/InternalSchema.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/InternalSchema.java @@ -20,7 +20,7 @@ package org.apache.doris.catalog; import org.apache.doris.analysis.ColumnDef; import org.apache.doris.analysis.TypeDef; import org.apache.doris.common.UserException; -import org.apache.doris.plugin.audit.AuditLoaderPlugin; +import org.apache.doris.plugin.audit.AuditLoader; import org.apache.doris.statistics.StatisticConstants; import com.google.common.collect.Lists; @@ -99,7 +99,7 @@ public class InternalSchema { schema = COL_STATS_SCHEMA; } else if (tblName.equals(StatisticConstants.HISTOGRAM_TBL_NAME)) { schema = HISTO_STATS_SCHEMA; - } else if (tblName.equals(AuditLoaderPlugin.AUDIT_LOG_TABLE)) { + } else if (tblName.equals(AuditLoader.AUDIT_LOG_TABLE)) { schema = AUDIT_SCHEMA; } else { throw new UserException("Unknown internal table name: " + tblName); diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/InternalSchemaInitializer.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/InternalSchemaInitializer.java index 6e4e9a96f45..ed42d66a440 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/InternalSchemaInitializer.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/InternalSchemaInitializer.java @@ -37,7 +37,7 @@ import org.apache.doris.common.UserException; import org.apache.doris.common.util.PropertyAnalyzer; import org.apache.doris.datasource.InternalCatalog; import org.apache.doris.ha.FrontendNodeType; -import org.apache.doris.plugin.audit.AuditLoaderPlugin; +import org.apache.doris.plugin.audit.AuditLoader; import org.apache.doris.statistics.StatisticConstants; import org.apache.doris.statistics.util.StatisticsUtil; @@ -92,7 +92,7 @@ public class InternalSchemaInitializer extends Thread { Database database = op.get(); modifyTblReplicaCount(database, StatisticConstants.STATISTIC_TBL_NAME); modifyTblReplicaCount(database, StatisticConstants.HISTOGRAM_TBL_NAME); - modifyTblReplicaCount(database, AuditLoaderPlugin.AUDIT_LOG_TABLE); + modifyTblReplicaCount(database, AuditLoader.AUDIT_LOG_TABLE); } @VisibleForTesting @@ -223,7 +223,7 @@ public class InternalSchemaInitializer extends Thread { private static CreateTableStmt buildAuditTblStmt() throws UserException { TableName tableName = new TableName("", - FeConstants.INTERNAL_DB_NAME, AuditLoaderPlugin.AUDIT_LOG_TABLE); + FeConstants.INTERNAL_DB_NAME, AuditLoader.AUDIT_LOG_TABLE); String engineName = "olap"; ArrayList<String> dupKeys = Lists.newArrayList("query_id", "time", "client_ip"); @@ -246,7 +246,7 @@ public class InternalSchemaInitializer extends Thread { } }; CreateTableStmt createTableStmt = new CreateTableStmt(true, false, - tableName, InternalSchema.getCopiedSchema(AuditLoaderPlugin.AUDIT_LOG_TABLE), + tableName, InternalSchema.getCopiedSchema(AuditLoader.AUDIT_LOG_TABLE), engineName, keysDesc, partitionDesc, distributionDesc, properties, null, "Doris internal audit table, DO NOT MODIFY IT", null); StatisticsUtil.analyze(createTableStmt); @@ -288,7 +288,7 @@ public class InternalSchemaInitializer extends Thread { } // 3. check audit table - optionalStatsTbl = db.getTable(AuditLoaderPlugin.AUDIT_LOG_TABLE); + optionalStatsTbl = db.getTable(AuditLoader.AUDIT_LOG_TABLE); if (!optionalStatsTbl.isPresent()) { return false; } diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadRecordMgr.java b/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadRecordMgr.java index cd504528998..a499e3c2467 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadRecordMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadRecordMgr.java @@ -29,8 +29,8 @@ import org.apache.doris.common.util.TimeUtils; import org.apache.doris.datasource.InternalCatalog; import org.apache.doris.mysql.privilege.PrivPredicate; import org.apache.doris.persist.gson.GsonUtils; -import org.apache.doris.plugin.audit.AuditEvent; -import org.apache.doris.plugin.audit.AuditEvent.EventType; +import org.apache.doris.plugin.AuditEvent; +import org.apache.doris.plugin.AuditEvent.EventType; import org.apache.doris.plugin.audit.StreamLoadAuditEvent; import org.apache.doris.qe.ConnectContext; import org.apache.doris.system.Backend; diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java index 8b2773ab261..42509a9062f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java +++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java @@ -44,7 +44,7 @@ import org.apache.doris.load.BrokerFileGroup; import org.apache.doris.load.BrokerFileGroupAggInfo; import org.apache.doris.load.EtlJobType; import org.apache.doris.load.FailMsg; -import org.apache.doris.plugin.audit.AuditEvent; +import org.apache.doris.plugin.AuditEvent; import org.apache.doris.plugin.audit.LoadAuditEvent; import org.apache.doris.qe.ConnectContext; import org.apache.doris.qe.OriginStatement; diff --git a/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditEvent.java b/fe/fe-core/src/main/java/org/apache/doris/plugin/AuditEvent.java similarity index 99% rename from fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditEvent.java rename to fe/fe-core/src/main/java/org/apache/doris/plugin/AuditEvent.java index c8915966725..9e5fc6ec528 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditEvent.java +++ b/fe/fe-core/src/main/java/org/apache/doris/plugin/AuditEvent.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.apache.doris.plugin.audit; +package org.apache.doris.plugin; import java.lang.annotation.Retention; diff --git a/fe/fe-core/src/main/java/org/apache/doris/plugin/AuditPlugin.java b/fe/fe-core/src/main/java/org/apache/doris/plugin/AuditPlugin.java index 55962a3dd10..d9c9ec84697 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/plugin/AuditPlugin.java +++ b/fe/fe-core/src/main/java/org/apache/doris/plugin/AuditPlugin.java @@ -17,8 +17,6 @@ package org.apache.doris.plugin; -import org.apache.doris.plugin.audit.AuditEvent; - /** * Audit plugin interface describe. */ diff --git a/fe/fe-core/src/main/java/org/apache/doris/plugin/PluginMgr.java b/fe/fe-core/src/main/java/org/apache/doris/plugin/PluginMgr.java index 7fddf54e1ee..ea69b247e66 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/plugin/PluginMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/plugin/PluginMgr.java @@ -27,7 +27,7 @@ import org.apache.doris.common.util.PrintableMap; import org.apache.doris.nereids.parser.Dialect; import org.apache.doris.plugin.PluginInfo.PluginType; import org.apache.doris.plugin.PluginLoader.PluginStatus; -import org.apache.doris.plugin.audit.AuditLoaderPlugin; +import org.apache.doris.plugin.audit.AuditLoader; import org.apache.doris.plugin.audit.AuditLogBuilder; import org.apache.doris.plugin.dialect.HttpDialectConverterPlugin; @@ -113,7 +113,7 @@ public class PluginMgr implements Writable { } // AuditLoader: log audit log to internal table - AuditLoaderPlugin auditLoaderPlugin = new AuditLoaderPlugin(); + AuditLoader auditLoaderPlugin = new AuditLoader(); if (!registerBuiltinPlugin(auditLoaderPlugin.getPluginInfo(), auditLoaderPlugin)) { LOG.warn("failed to register audit log builder"); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditLoaderPlugin.java b/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditLoader.java similarity index 98% rename from fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditLoaderPlugin.java rename to fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditLoader.java index f5096d9a8f6..0aef1a93dba 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditLoaderPlugin.java +++ b/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditLoader.java @@ -20,6 +20,7 @@ package org.apache.doris.plugin.audit; import org.apache.doris.catalog.Env; import org.apache.doris.common.util.DigitalVersion; import org.apache.doris.common.util.TimeUtils; +import org.apache.doris.plugin.AuditEvent; import org.apache.doris.plugin.AuditPlugin; import org.apache.doris.plugin.Plugin; import org.apache.doris.plugin.PluginContext; @@ -47,8 +48,8 @@ import java.util.concurrent.TimeUnit; /* * This plugin will load audit log to specified doris table at specified interval */ -public class AuditLoaderPlugin extends Plugin implements AuditPlugin { - private static final Logger LOG = LogManager.getLogger(AuditLoaderPlugin.class); +public class AuditLoader extends Plugin implements AuditPlugin { + private static final Logger LOG = LogManager.getLogger(AuditLoader.class); public static final String AUDIT_LOG_TABLE = "audit_log"; @@ -70,10 +71,10 @@ public class AuditLoaderPlugin extends Plugin implements AuditPlugin { private final PluginInfo pluginInfo; - public AuditLoaderPlugin() { + public AuditLoader() { pluginInfo = new PluginInfo(PluginMgr.BUILTIN_PLUGIN_PREFIX + "AuditLoader", PluginType.AUDIT, "builtin audit loader, to load audit log to internal table", DigitalVersion.fromString("2.1.0"), - DigitalVersion.fromString("1.8.31"), AuditLoaderPlugin.class.getName(), null, null); + DigitalVersion.fromString("1.8.31"), AuditLoader.class.getName(), null, null); } public PluginInfo getPluginInfo() { diff --git a/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditLogBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditLogBuilder.java index 210081b101c..8d9e2c9d96e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditLogBuilder.java +++ b/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditLogBuilder.java @@ -20,13 +20,14 @@ package org.apache.doris.plugin.audit; import org.apache.doris.common.AuditLog; import org.apache.doris.common.Config; import org.apache.doris.common.util.DigitalVersion; +import org.apache.doris.plugin.AuditEvent; +import org.apache.doris.plugin.AuditEvent.AuditField; +import org.apache.doris.plugin.AuditEvent.EventType; import org.apache.doris.plugin.AuditPlugin; import org.apache.doris.plugin.Plugin; import org.apache.doris.plugin.PluginInfo; import org.apache.doris.plugin.PluginInfo.PluginType; import org.apache.doris.plugin.PluginMgr; -import org.apache.doris.plugin.audit.AuditEvent.AuditField; -import org.apache.doris.plugin.audit.AuditEvent.EventType; import com.google.common.collect.Maps; import com.google.common.collect.Sets; diff --git a/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditStreamLoader.java b/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditStreamLoader.java index b29b3dfbe3b..6d071dafda7 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditStreamLoader.java +++ b/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/AuditStreamLoader.java @@ -46,7 +46,7 @@ public class AuditStreamLoader { public AuditStreamLoader() { this.hostPort = "127.0.0.1:" + Config.http_port; this.db = FeConstants.INTERNAL_DB_NAME; - this.auditLogTbl = AuditLoaderPlugin.AUDIT_LOG_TABLE; + this.auditLogTbl = AuditLoader.AUDIT_LOG_TABLE; this.auditLogLoadUrlStr = String.format(loadUrlPattern, hostPort, db, auditLogTbl); // currently, FE identity is FE's IP, so we replace the "." in IP to make it suitable for label this.feIdentity = hostPort.replaceAll("\\.", "_").replaceAll(":", "_"); diff --git a/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/LoadAuditEvent.java b/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/LoadAuditEvent.java index eb3e098bf41..e9e948df43f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/LoadAuditEvent.java +++ b/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/LoadAuditEvent.java @@ -17,6 +17,8 @@ package org.apache.doris.plugin.audit; +import org.apache.doris.plugin.AuditEvent; + public class LoadAuditEvent extends AuditEvent { @AuditField(value = "JobId") diff --git a/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/StreamLoadAuditEvent.java b/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/StreamLoadAuditEvent.java index 8733a59656c..4a20901673a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/StreamLoadAuditEvent.java +++ b/fe/fe-core/src/main/java/org/apache/doris/plugin/audit/StreamLoadAuditEvent.java @@ -17,6 +17,8 @@ package org.apache.doris.plugin.audit; +import org.apache.doris.plugin.AuditEvent; + public class StreamLoadAuditEvent extends AuditEvent { @AuditField(value = "Label") diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/AuditEventProcessor.java b/fe/fe-core/src/main/java/org/apache/doris/qe/AuditEventProcessor.java index e2c45ae39ae..42625301df1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/AuditEventProcessor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/AuditEventProcessor.java @@ -17,11 +17,11 @@ package org.apache.doris.qe; +import org.apache.doris.plugin.AuditEvent; import org.apache.doris.plugin.AuditPlugin; import org.apache.doris.plugin.Plugin; import org.apache.doris.plugin.PluginInfo.PluginType; import org.apache.doris.plugin.PluginMgr; -import org.apache.doris.plugin.audit.AuditEvent; import com.google.common.collect.Queues; import org.apache.logging.log4j.LogManager; diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java b/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java index 508fcc0f33a..ed532a83303 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java @@ -27,8 +27,8 @@ import org.apache.doris.common.util.DebugUtil; import org.apache.doris.datasource.CatalogIf; import org.apache.doris.datasource.InternalCatalog; import org.apache.doris.metric.MetricRepo; -import org.apache.doris.plugin.audit.AuditEvent.AuditEventBuilder; -import org.apache.doris.plugin.audit.AuditEvent.EventType; +import org.apache.doris.plugin.AuditEvent.AuditEventBuilder; +import org.apache.doris.plugin.AuditEvent.EventType; import org.apache.doris.qe.QueryState.MysqlStateType; import org.apache.doris.service.FrontendOptions; diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java index b4a388f4b4e..ba53c14e1dc 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java @@ -53,7 +53,7 @@ import org.apache.doris.nereids.stats.StatsErrorEstimator; import org.apache.doris.nereids.trees.expressions.literal.Literal; import org.apache.doris.plsql.Exec; import org.apache.doris.plsql.executor.PlSqlOperation; -import org.apache.doris.plugin.audit.AuditEvent.AuditEventBuilder; +import org.apache.doris.plugin.AuditEvent.AuditEventBuilder; import org.apache.doris.proto.Types; import org.apache.doris.resource.Tag; import org.apache.doris.service.arrowflight.results.FlightSqlChannel; diff --git a/fe/fe-core/src/main/java/org/apache/doris/resource/workloadschedpolicy/WorkloadRuntimeStatusMgr.java b/fe/fe-core/src/main/java/org/apache/doris/resource/workloadschedpolicy/WorkloadRuntimeStatusMgr.java index f3ad56a33cb..e27cb4e0df2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/resource/workloadschedpolicy/WorkloadRuntimeStatusMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/resource/workloadschedpolicy/WorkloadRuntimeStatusMgr.java @@ -21,7 +21,7 @@ import org.apache.doris.catalog.Env; import org.apache.doris.common.Config; import org.apache.doris.common.Pair; import org.apache.doris.common.util.MasterDaemon; -import org.apache.doris.plugin.audit.AuditEvent; +import org.apache.doris.plugin.AuditEvent; import org.apache.doris.thrift.TQueryStatistics; import org.apache.doris.thrift.TReportWorkloadRuntimeStatusParams; diff --git a/fe/fe-core/src/test/java/org/apache/doris/alter/InternalSchemaAlterTest.java b/fe/fe-core/src/test/java/org/apache/doris/alter/InternalSchemaAlterTest.java index 2898e3a1c35..b9568c67b55 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/alter/InternalSchemaAlterTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/alter/InternalSchemaAlterTest.java @@ -26,7 +26,7 @@ import org.apache.doris.catalog.PartitionInfo; import org.apache.doris.common.AnalysisException; import org.apache.doris.common.Config; import org.apache.doris.common.FeConstants; -import org.apache.doris.plugin.audit.AuditLoaderPlugin; +import org.apache.doris.plugin.audit.AuditLoader; import org.apache.doris.statistics.StatisticConstants; import org.apache.doris.utframe.TestWithFeService; @@ -54,11 +54,11 @@ public class InternalSchemaAlterTest extends TestWithFeService { .getInternalCatalog().getDbNullable(FeConstants.INTERNAL_DB_NAME); InternalSchemaInitializer.modifyTblReplicaCount(db, StatisticConstants.STATISTIC_TBL_NAME); InternalSchemaInitializer.modifyTblReplicaCount(db, StatisticConstants.HISTOGRAM_TBL_NAME); - InternalSchemaInitializer.modifyTblReplicaCount(db, AuditLoaderPlugin.AUDIT_LOG_TABLE); + InternalSchemaInitializer.modifyTblReplicaCount(db, AuditLoader.AUDIT_LOG_TABLE); checkReplicationNum(db, StatisticConstants.STATISTIC_TBL_NAME); checkReplicationNum(db, StatisticConstants.HISTOGRAM_TBL_NAME); - checkReplicationNum(db, AuditLoaderPlugin.AUDIT_LOG_TABLE); + checkReplicationNum(db, AuditLoader.AUDIT_LOG_TABLE); } private void checkReplicationNum(Database db, String tblName) throws AnalysisException { diff --git a/fe/fe-core/src/test/java/org/apache/doris/qe/AuditEventProcessorTest.java b/fe/fe-core/src/test/java/org/apache/doris/qe/AuditEventProcessorTest.java index 26c51fb66db..1b5752f79f4 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/qe/AuditEventProcessorTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/qe/AuditEventProcessorTest.java @@ -19,9 +19,9 @@ package org.apache.doris.qe; import org.apache.doris.catalog.Env; import org.apache.doris.common.util.DigitalVersion; +import org.apache.doris.plugin.AuditEvent; +import org.apache.doris.plugin.AuditEvent.EventType; import org.apache.doris.plugin.PluginInfo; -import org.apache.doris.plugin.audit.AuditEvent; -import org.apache.doris.plugin.audit.AuditEvent.EventType; import org.apache.doris.plugin.audit.AuditLogBuilder; import org.apache.doris.utframe.UtFrameUtils; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org