This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new 2bb882bab2 [Fix](jdbc catalog) Pass conjuncts to JdbcScanNode and
FileScanNode before doing finalize. (#21998) (#22260)
2bb882bab2 is described below
commit 2bb882bab2f2c91b5595f6636a3cee38532e0583
Author: Jibing-Li <[email protected]>
AuthorDate: Wed Jul 26 20:09:26 2023 +0800
[Fix](jdbc catalog) Pass conjuncts to JdbcScanNode and FileScanNode before
doing finalize. (#21998) (#22260)
This is a cherry pick of master commit:
#21998
---
.../glue/translator/PhysicalPlanTranslator.java | 16 +++--
.../doris/nereids/jobs/executor/Rewriter.java | 4 +-
.../org/apache/doris/nereids/rules/RuleType.java | 1 +
.../LogicalJdbcScanToPhysicalJdbcScan.java | 3 +-
.../PushConjunctsIntoJdbcScan.java} | 28 ++++----
.../trees/plans/logical/LogicalJdbcScan.java | 29 +++++++--
.../trees/plans/physical/PhysicalJdbcScan.java | 36 ++++++----
.../test_mysql_jdbc_catalog_nereids.out | 76 ++++++++++++----------
.../test_mysql_jdbc_catalog_nereids.groovy | 2 +
9 files changed, 123 insertions(+), 72 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
index e98890f4f1..725c2ef2cb 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
@@ -398,10 +398,7 @@ public class PhysicalPlanTranslator extends
DefaultPlanVisitor<PlanFragment, Pla
} else {
throw new RuntimeException("do not support table type " +
table.getType());
}
- // TODO: should not translate conjunct here. need a new attr in
FileScanNode to save push down conjuncts.
- fileScan.getConjuncts().stream()
- .map(e -> ExpressionTranslator.translate(e, context))
- .forEach(scanNode::addConjunct);
+
scanNode.addConjuncts(translateToLegacyConjuncts(fileScan.getConjuncts()));
TableName tableName = new TableName(null, "", "");
TableRef ref = new TableRef(tableName, null, null);
BaseTableRef tableRef = new BaseTableRef(ref, table, tableName);
@@ -472,6 +469,7 @@ public class PhysicalPlanTranslator extends
DefaultPlanVisitor<PlanFragment, Pla
TupleDescriptor tupleDescriptor = generateTupleDesc(slots, table,
context);
JdbcScanNode jdbcScanNode = new JdbcScanNode(context.nextPlanNodeId(),
tupleDescriptor,
table instanceof JdbcExternalTable);
+
jdbcScanNode.addConjuncts(translateToLegacyConjuncts(jdbcScan.getConjuncts()));
Utils.execWithUncheckedException(jdbcScanNode::init);
context.addScanNode(jdbcScanNode);
context.getRuntimeTranslator().ifPresent(
@@ -2293,4 +2291,14 @@ public class PhysicalPlanTranslator extends
DefaultPlanVisitor<PlanFragment, Pla
return true;
}
+
+ private List<Expr> translateToLegacyConjuncts(Set<Expression> conjuncts) {
+ List<Expr> outputExprs = Lists.newArrayList();
+ if (conjuncts != null) {
+ conjuncts.stream()
+ .map(e -> ExpressionTranslator.translate(e, context))
+ .forEach(outputExprs::add);
+ }
+ return outputExprs;
+ }
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java
index 80094100e4..ce3d8b35db 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java
@@ -74,6 +74,7 @@ import org.apache.doris.nereids.rules.rewrite.NormalizeSort;
import org.apache.doris.nereids.rules.rewrite.PruneFileScanPartition;
import org.apache.doris.nereids.rules.rewrite.PruneOlapScanPartition;
import org.apache.doris.nereids.rules.rewrite.PruneOlapScanTablet;
+import org.apache.doris.nereids.rules.rewrite.PushConjunctsIntoJdbcScan;
import org.apache.doris.nereids.rules.rewrite.PushFilterInsideJoin;
import org.apache.doris.nereids.rules.rewrite.PushProjectIntoOneRowRelation;
import org.apache.doris.nereids.rules.rewrite.PushProjectThroughUnion;
@@ -256,7 +257,8 @@ public class Rewriter extends AbstractBatchJobExecutor {
// PhysicalLimits with gather exchange
new SplitLimit(),
new PruneOlapScanPartition(),
- new PruneFileScanPartition()
+ new PruneFileScanPartition(),
+ new PushConjunctsIntoJdbcScan()
)
),
topic("MV optimization",
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java
index 03aa1cf3e4..c3a6012b02 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java
@@ -204,6 +204,7 @@ public enum RuleType {
MATERIALIZED_INDEX_FILTER_PROJECT_SCAN(RuleTypeClass.REWRITE),
OLAP_SCAN_PARTITION_PRUNE(RuleTypeClass.REWRITE),
FILE_SCAN_PARTITION_PRUNE(RuleTypeClass.REWRITE),
+ PUSH_CONJUNCTS_INTO_JDBC_SCAN(RuleTypeClass.REWRITE),
OLAP_SCAN_TABLET_PRUNE(RuleTypeClass.REWRITE),
PUSH_AGGREGATE_TO_OLAP_SCAN(RuleTypeClass.REWRITE),
EXTRACT_SINGLE_TABLE_EXPRESSION_FROM_DISJUNCTION(RuleTypeClass.REWRITE),
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalJdbcScanToPhysicalJdbcScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalJdbcScanToPhysicalJdbcScan.java
index 3bff1699ba..6172229525 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalJdbcScanToPhysicalJdbcScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalJdbcScanToPhysicalJdbcScan.java
@@ -37,7 +37,8 @@ public class LogicalJdbcScanToPhysicalJdbcScan extends
OneImplementationRuleFact
jdbcScan.getQualifier(),
DistributionSpecAny.INSTANCE,
Optional.empty(),
- jdbcScan.getLogicalProperties())
+ jdbcScan.getLogicalProperties(),
+ jdbcScan.getConjuncts())
).toRule(RuleType.LOGICAL_JDBC_SCAN_TO_PHYSICAL_JDBC_SCAN_RULE);
}
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalJdbcScanToPhysicalJdbcScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushConjunctsIntoJdbcScan.java
similarity index 55%
copy from
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalJdbcScanToPhysicalJdbcScan.java
copy to
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushConjunctsIntoJdbcScan.java
index 3bff1699ba..21d723f956 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalJdbcScanToPhysicalJdbcScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushConjunctsIntoJdbcScan.java
@@ -15,29 +15,25 @@
// specific language governing permissions and limitations
// under the License.
-package org.apache.doris.nereids.rules.implementation;
+package org.apache.doris.nereids.rules.rewrite;
-import org.apache.doris.nereids.properties.DistributionSpecAny;
import org.apache.doris.nereids.rules.Rule;
import org.apache.doris.nereids.rules.RuleType;
-import org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcScan;
-
-import java.util.Optional;
+import org.apache.doris.nereids.trees.plans.logical.LogicalFilter;
+import org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan;
/**
- * Implementation rule that convert logical JdbcScan to physical JdbcScan.
+ * Rewrite jdbc plan to set the conjuncts.
*/
-public class LogicalJdbcScanToPhysicalJdbcScan extends
OneImplementationRuleFactory {
+public class PushConjunctsIntoJdbcScan extends OneRewriteRuleFactory {
+
@Override
public Rule build() {
- return logicalJdbcScan().then(jdbcScan ->
- new PhysicalJdbcScan(
- jdbcScan.getId(),
- jdbcScan.getTable(),
- jdbcScan.getQualifier(),
- DistributionSpecAny.INSTANCE,
- Optional.empty(),
- jdbcScan.getLogicalProperties())
- ).toRule(RuleType.LOGICAL_JDBC_SCAN_TO_PHYSICAL_JDBC_SCAN_RULE);
+ return logicalFilter(logicalJdbcScan()).thenApply(ctx -> {
+ LogicalFilter<LogicalJdbcScan> filter = ctx.root;
+ LogicalJdbcScan scan = filter.child();
+ LogicalJdbcScan rewrittenScan =
scan.withConjuncts(filter.getConjuncts());
+ return new LogicalFilter<>(filter.getConjuncts(), rewrittenScan);
+ }).toRule(RuleType.PUSH_CONJUNCTS_INTO_JDBC_SCAN);
}
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJdbcScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJdbcScan.java
index ee12dc521a..358712c094 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJdbcScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJdbcScan.java
@@ -22,6 +22,7 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.external.ExternalTable;
import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
+import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.PlanType;
@@ -29,27 +30,34 @@ import
org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableSet;
import java.util.List;
+import java.util.Objects;
import java.util.Optional;
+import java.util.Set;
/**
* Logical scan for external jdbc catalog and jdbc table.
*/
public class LogicalJdbcScan extends LogicalRelation {
+ private final Set<Expression> conjuncts;
+
/**
* Constructor for LogicalJdbcScan.
*/
public LogicalJdbcScan(ObjectId id, TableIf table, List<String> qualifier,
Optional<GroupExpression> groupExpression,
- Optional<LogicalProperties> logicalProperties) {
+ Optional<LogicalProperties> logicalProperties,
+ Set<Expression> conjuncts) {
super(id, PlanType.LOGICAL_JDBC_SCAN, table, qualifier,
groupExpression, logicalProperties);
+ this.conjuncts = ImmutableSet.copyOf(Objects.requireNonNull(conjuncts,
"conjuncts should not be null"));
}
public LogicalJdbcScan(ObjectId id, TableIf table, List<String> qualifier)
{
- this(id, table, qualifier, Optional.empty(), Optional.empty());
+ this(id, table, qualifier, Optional.empty(), Optional.empty(),
ImmutableSet.of());
}
@Override
@@ -70,13 +78,18 @@ public class LogicalJdbcScan extends LogicalRelation {
@Override
public LogicalJdbcScan withGroupExpression(Optional<GroupExpression>
groupExpression) {
return new LogicalJdbcScan(id, table, qualifier, groupExpression,
- Optional.of(getLogicalProperties()));
+ Optional.of(getLogicalProperties()), conjuncts);
+ }
+
+ public LogicalJdbcScan withConjuncts(Set<Expression> conjuncts) {
+ return new LogicalJdbcScan(id, table, qualifier, groupExpression,
+ Optional.of(getLogicalProperties()), conjuncts);
}
@Override
public Plan withGroupExprLogicalPropChildren(Optional<GroupExpression>
groupExpression,
Optional<LogicalProperties> logicalProperties, List<Plan>
children) {
- return new LogicalJdbcScan(id, table, qualifier, groupExpression,
logicalProperties);
+ return new LogicalJdbcScan(id, table, qualifier, groupExpression,
logicalProperties, conjuncts);
}
@Override
@@ -84,4 +97,12 @@ public class LogicalJdbcScan extends LogicalRelation {
return visitor.visitLogicalJdbcScan(this, context);
}
+ @Override
+ public boolean equals(Object o) {
+ return super.equals(o) && Objects.equals(conjuncts, ((LogicalJdbcScan)
o).conjuncts);
+ }
+
+ public Set<Expression> getConjuncts() {
+ return this.conjuncts;
+ }
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalJdbcScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalJdbcScan.java
index dd98dd7452..ed17dd05d9 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalJdbcScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalJdbcScan.java
@@ -22,6 +22,7 @@ import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.DistributionSpec;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.properties.PhysicalProperties;
+import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.PlanType;
@@ -29,9 +30,12 @@ import
org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
import org.apache.doris.statistics.Statistics;
+import com.google.common.collect.ImmutableSet;
+
import java.util.List;
import java.util.Objects;
import java.util.Optional;
+import java.util.Set;
/**
* Physical jdbc scan for external catalog.
@@ -40,29 +44,31 @@ public class PhysicalJdbcScan extends PhysicalRelation {
private final TableIf table;
private final DistributionSpec distributionSpec;
+ private final Set<Expression> conjuncts;
/**
* Constructor for PhysicalJdbcScan.
*/
- public PhysicalJdbcScan(ObjectId id, TableIf table, List<String> qualifier,
- DistributionSpec distributionSpec,
Optional<GroupExpression> groupExpression,
- LogicalProperties logicalProperties) {
+ public PhysicalJdbcScan(ObjectId id, TableIf table, List<String>
qualifier, DistributionSpec distributionSpec,
+ Optional<GroupExpression> groupExpression, LogicalProperties
logicalProperties, Set<Expression> conjuncts) {
super(id, PlanType.PHYSICAL_JDBC_SCAN, qualifier, groupExpression,
logicalProperties);
this.table = table;
this.distributionSpec = distributionSpec;
+ this.conjuncts = ImmutableSet.copyOf(Objects.requireNonNull(conjuncts,
"conjuncts should not be null"));
}
/**
* Constructor for PhysicalJdbcScan.
*/
public PhysicalJdbcScan(ObjectId id, TableIf table, List<String> qualifier,
- DistributionSpec distributionSpec,
Optional<GroupExpression> groupExpression,
- LogicalProperties logicalProperties,
PhysicalProperties physicalProperties,
- Statistics statistics) {
- super(id, PlanType.PHYSICAL_JDBC_SCAN, qualifier, groupExpression,
logicalProperties,
- physicalProperties, statistics);
+ DistributionSpec distributionSpec, Optional<GroupExpression>
groupExpression,
+ LogicalProperties logicalProperties, PhysicalProperties
physicalProperties, Statistics statistics,
+ Set<Expression> conjuncts) {
+ super(id, PlanType.PHYSICAL_JDBC_SCAN, qualifier, groupExpression,
+ logicalProperties, physicalProperties, statistics);
this.table = table;
this.distributionSpec = distributionSpec;
+ this.conjuncts = ImmutableSet.copyOf(Objects.requireNonNull(conjuncts,
"conjuncts should not be null"));
}
@Override
@@ -98,13 +104,15 @@ public class PhysicalJdbcScan extends PhysicalRelation {
@Override
public PhysicalJdbcScan withGroupExpression(Optional<GroupExpression>
groupExpression) {
- return new PhysicalJdbcScan(id, table, qualifier, distributionSpec,
groupExpression, getLogicalProperties());
+ return new PhysicalJdbcScan(id, table, qualifier, distributionSpec,
+ groupExpression, getLogicalProperties(), conjuncts);
}
@Override
public Plan withGroupExprLogicalPropChildren(Optional<GroupExpression>
groupExpression,
Optional<LogicalProperties> logicalProperties, List<Plan>
children) {
- return new PhysicalJdbcScan(id, table, qualifier, distributionSpec,
groupExpression, logicalProperties.get());
+ return new PhysicalJdbcScan(id, table, qualifier, distributionSpec,
+ groupExpression, logicalProperties.get(), conjuncts);
}
@Override
@@ -115,7 +123,11 @@ public class PhysicalJdbcScan extends PhysicalRelation {
@Override
public PhysicalJdbcScan withPhysicalPropertiesAndStats(PhysicalProperties
physicalProperties,
Statistics
statistics) {
- return new PhysicalJdbcScan(id, table, qualifier, distributionSpec,
groupExpression, getLogicalProperties(),
- physicalProperties, statistics);
+ return new PhysicalJdbcScan(id, table, qualifier, distributionSpec,
groupExpression,
+ getLogicalProperties(), physicalProperties, statistics,
conjuncts);
+ }
+
+ public Set<Expression> getConjuncts() {
+ return this.conjuncts;
}
}
diff --git
a/regression-test/data/jdbc_catalog_p0/test_mysql_jdbc_catalog_nereids.out
b/regression-test/data/jdbc_catalog_p0/test_mysql_jdbc_catalog_nereids.out
index 78eb61a46b..c1cfae034c 100644
--- a/regression-test/data/jdbc_catalog_p0/test_mysql_jdbc_catalog_nereids.out
+++ b/regression-test/data/jdbc_catalog_p0/test_mysql_jdbc_catalog_nereids.out
@@ -1,4 +1,30 @@
-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !ex_tb0_explain --
+PLAN FRAGMENT 0
+ OUTPUT EXPRS:
+ id[#0]
+ PARTITION: UNPARTITIONED
+
+ VRESULT SINK
+
+ 1:VEXCHANGE
+ offset: 0
+
+PLAN FRAGMENT 1
+
+ PARTITION: RANDOM
+
+ STREAM DATA SINK
+ EXCHANGE ID: 01
+ UNPARTITIONED
+
+ 0:VJdbcScanNode
+ TABLE: `doris_test`.`ex_tb0`
+ QUERY: SELECT `id` FROM `doris_test`.`ex_tb0` WHERE (`id`[#0] = 111)
+
+-- !ex_tb0_where --
+111
+
-- !ex_tb0 --
111 abc
112 abd
@@ -157,52 +183,46 @@ bca 2022-11-02 2022-11-02 8012 vivo
123456789012345678901234567890123.12345
12345678901234567890123456789012.12345
1234567890123456789012345678901234.12345
123456789012345678901234567890123.12345
123456789012345678901234567890123456789012345678901234567890.12345
123456789012345678901234567890123456789012345678901234567890.12345
-- !information_schema --
-ADMINISTRABLE_ROLE_AUTHORIZATIONS
-APPLICABLE_ROLES
CHARACTER_SETS
-CHECK_CONSTRAINTS
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
-COLUMNS_EXTENSIONS
COLUMN_PRIVILEGES
-COLUMN_STATISTICS
-ENABLED_ROLES
ENGINES
EVENTS
FILES
+GLOBAL_STATUS
+GLOBAL_VARIABLES
INNODB_BUFFER_PAGE
INNODB_BUFFER_PAGE_LRU
INNODB_BUFFER_POOL_STATS
-INNODB_CACHED_INDEXES
INNODB_CMP
INNODB_CMPMEM
INNODB_CMPMEM_RESET
INNODB_CMP_PER_INDEX
INNODB_CMP_PER_INDEX_RESET
INNODB_CMP_RESET
-INNODB_COLUMNS
-INNODB_DATAFILES
-INNODB_FIELDS
-INNODB_FOREIGN
-INNODB_FOREIGN_COLS
INNODB_FT_BEING_DELETED
INNODB_FT_CONFIG
INNODB_FT_DEFAULT_STOPWORD
INNODB_FT_DELETED
INNODB_FT_INDEX_CACHE
INNODB_FT_INDEX_TABLE
-INNODB_INDEXES
+INNODB_LOCKS
+INNODB_LOCK_WAITS
INNODB_METRICS
-INNODB_SESSION_TEMP_TABLESPACES
-INNODB_TABLES
-INNODB_TABLESPACES
-INNODB_TABLESPACES_BRIEF
-INNODB_TABLESTATS
+INNODB_SYS_COLUMNS
+INNODB_SYS_DATAFILES
+INNODB_SYS_FIELDS
+INNODB_SYS_FOREIGN
+INNODB_SYS_FOREIGN_COLS
+INNODB_SYS_INDEXES
+INNODB_SYS_TABLES
+INNODB_SYS_TABLESPACES
+INNODB_SYS_TABLESTATS
+INNODB_SYS_VIRTUAL
INNODB_TEMP_TABLE_INFO
INNODB_TRX
-INNODB_VIRTUAL
-KEYWORDS
KEY_COLUMN_USAGE
OPTIMIZER_TRACE
PARAMETERS
@@ -211,31 +231,19 @@ PLUGINS
PROCESSLIST
PROFILING
REFERENTIAL_CONSTRAINTS
-RESOURCE_GROUPS
-ROLE_COLUMN_GRANTS
-ROLE_ROUTINE_GRANTS
-ROLE_TABLE_GRANTS
ROUTINES
SCHEMATA
-SCHEMATA_EXTENSIONS
SCHEMA_PRIVILEGES
+SESSION_STATUS
+SESSION_VARIABLES
STATISTICS
-ST_GEOMETRY_COLUMNS
-ST_SPATIAL_REFERENCE_SYSTEMS
-ST_UNITS_OF_MEASURE
TABLES
TABLESPACES
-TABLESPACES_EXTENSIONS
-TABLES_EXTENSIONS
TABLE_CONSTRAINTS
-TABLE_CONSTRAINTS_EXTENSIONS
TABLE_PRIVILEGES
TRIGGERS
-USER_ATTRIBUTES
USER_PRIVILEGES
VIEWS
-VIEW_ROUTINE_USAGE
-VIEW_TABLE_USAGE
-- !test_insert1 --
doris1 18
diff --git
a/regression-test/suites/jdbc_catalog_p0/test_mysql_jdbc_catalog_nereids.groovy
b/regression-test/suites/jdbc_catalog_p0/test_mysql_jdbc_catalog_nereids.groovy
index a258f4d4f6..396c5bb7b9 100644
---
a/regression-test/suites/jdbc_catalog_p0/test_mysql_jdbc_catalog_nereids.groovy
+++
b/regression-test/suites/jdbc_catalog_p0/test_mysql_jdbc_catalog_nereids.groovy
@@ -74,6 +74,8 @@ suite("test_mysql_jdbc_catalog_nereids", "p0") {
sql """switch ${catalog_name}"""
sql """ use ${ex_db_name}"""
+ qt_ex_tb0_explain """explain select id from ${ex_tb0} where id =
111;"""
+ qt_ex_tb0_where """select id from ${ex_tb0} where id = 111;"""
order_qt_ex_tb0 """ select id, name from ${ex_tb0} order by id; """
sql """ insert into internal.${internal_db_name}.${inDorisTable}
select id, name from ${ex_tb0}; """
order_qt_in_tb """ select id, name from
internal.${internal_db_name}.${inDorisTable} order by id; """
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]