This is an automated email from the ASF dual-hosted git repository.
zykkk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 355ac18363 [Fix](jdbc catalog) Pass conjuncts to JdbcScanNode and
FileScanNode before doing finalize. (#21998)
355ac18363 is described below
commit 355ac183636aa61a181967dc1c64c147b21763c7
Author: Jibing-Li <[email protected]>
AuthorDate: Sat Jul 22 14:08:44 2023 +0800
[Fix](jdbc catalog) Pass conjuncts to JdbcScanNode and FileScanNode before
doing finalize. (#21998)
JdbcScanNode need to use the conjuncts to generate sql in finalize
function. But the conjuncts have not passed to JdbcScanNode yet while calling
finalize. This pr is to pass the conjuncts to scan node before using it to
avoid scan the whole table.
---
.../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} | 26 ++++----
.../trees/plans/logical/LogicalFileScan.java | 6 ++
.../trees/plans/logical/LogicalJdbcScan.java | 30 +++++++--
.../trees/plans/physical/PhysicalJdbcScan.java | 24 +++++--
.../test_mysql_jdbc_catalog_nereids.out | 76 ++++++++++++----------
.../test_mysql_jdbc_catalog_nereids.groovy | 2 +
10 files changed, 125 insertions(+), 63 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 a407be03a8..0ae104ed5a 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
@@ -407,10 +407,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);
@@ -481,6 +478,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(
@@ -2313,4 +2311,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 18fdccb221..3fb3208e5e 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.PruneFileScanPartition;
import org.apache.doris.nereids.rules.rewrite.PruneOlapScanPartition;
import org.apache.doris.nereids.rules.rewrite.PruneOlapScanTablet;
import org.apache.doris.nereids.rules.rewrite.PullUpCteAnchor;
+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;
@@ -262,7 +263,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 3052408ac8..422c566a92 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
@@ -207,6 +207,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 99120c2b2e..9c2c651803 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
@@ -35,7 +35,8 @@ public class LogicalJdbcScanToPhysicalJdbcScan extends
OneImplementationRuleFact
jdbcScan.getTable(),
jdbcScan.getQualifier(),
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 57%
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 99120c2b2e..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,27 +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.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.getRelationId(),
- jdbcScan.getTable(),
- jdbcScan.getQualifier(),
- 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/LogicalFileScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java
index af5dcaa0f0..3d4da53a89 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java
@@ -31,6 +31,7 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.Sets;
import java.util.List;
+import java.util.Objects;
import java.util.Optional;
import java.util.Set;
@@ -98,4 +99,9 @@ public class LogicalFileScan extends LogicalCatalogRelation {
public Set<Expression> getConjuncts() {
return this.conjuncts;
}
+
+ @Override
+ public boolean equals(Object o) {
+ return super.equals(o) && Objects.equals(conjuncts, ((LogicalFileScan)
o).conjuncts);
+ }
}
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 6a3d7b28e5..c86bd0fb7d 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.Plan;
import org.apache.doris.nereids.trees.plans.PlanType;
import org.apache.doris.nereids.trees.plans.RelationId;
@@ -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 LogicalCatalogRelation {
+ private final Set<Expression> conjuncts;
+
/**
* Constructor for LogicalJdbcScan.
*/
public LogicalJdbcScan(RelationId 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(RelationId 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,17 +78,31 @@ public class LogicalJdbcScan extends LogicalCatalogRelation
{
@Override
public LogicalJdbcScan withGroupExpression(Optional<GroupExpression>
groupExpression) {
return new LogicalJdbcScan(relationId, table, qualifier,
groupExpression,
- Optional.of(getLogicalProperties()));
+ Optional.of(getLogicalProperties()), conjuncts);
+ }
+
+ public LogicalJdbcScan withConjuncts(Set<Expression> conjuncts) {
+ return new LogicalJdbcScan(relationId, table, qualifier,
groupExpression,
+ Optional.of(getLogicalProperties()), conjuncts);
}
@Override
public Plan withGroupExprLogicalPropChildren(Optional<GroupExpression>
groupExpression,
Optional<LogicalProperties> logicalProperties, List<Plan>
children) {
- return new LogicalJdbcScan(relationId, table, qualifier,
groupExpression, logicalProperties);
+ return new LogicalJdbcScan(relationId, table, qualifier,
groupExpression, logicalProperties, conjuncts);
}
@Override
public <R, C> R accept(PlanVisitor<R, C> visitor, C context) {
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 f5a68e45fb..0b81c5f44b 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
@@ -21,6 +21,7 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.nereids.memo.GroupExpression;
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.Plan;
import org.apache.doris.nereids.trees.plans.PlanType;
import org.apache.doris.nereids.trees.plans.RelationId;
@@ -28,20 +29,27 @@ 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.
*/
public class PhysicalJdbcScan extends PhysicalCatalogRelation {
+ private final Set<Expression> conjuncts;
+
/**
* Constructor for PhysicalJdbcScan.
*/
public PhysicalJdbcScan(RelationId id, TableIf table, List<String>
qualifier,
- Optional<GroupExpression> groupExpression, LogicalProperties
logicalProperties) {
+ Optional<GroupExpression> groupExpression, LogicalProperties
logicalProperties, Set<Expression> conjuncts) {
super(id, PlanType.PHYSICAL_JDBC_SCAN, table, qualifier,
groupExpression, logicalProperties);
+ this.conjuncts = ImmutableSet.copyOf(Objects.requireNonNull(conjuncts,
"conjuncts should not be null"));
}
/**
@@ -49,9 +57,11 @@ public class PhysicalJdbcScan extends
PhysicalCatalogRelation {
*/
public PhysicalJdbcScan(RelationId id, TableIf table, List<String>
qualifier,
Optional<GroupExpression> groupExpression,
- LogicalProperties logicalProperties, PhysicalProperties
physicalProperties, Statistics statistics) {
+ LogicalProperties logicalProperties, PhysicalProperties
physicalProperties, Statistics statistics,
+ Set<Expression> conjuncts) {
super(id, PlanType.PHYSICAL_JDBC_SCAN, table, qualifier,
groupExpression,
logicalProperties, physicalProperties, statistics);
+ this.conjuncts = ImmutableSet.copyOf(Objects.requireNonNull(conjuncts,
"conjuncts should not be null"));
}
@Override
@@ -70,19 +80,23 @@ public class PhysicalJdbcScan extends
PhysicalCatalogRelation {
@Override
public PhysicalJdbcScan withGroupExpression(Optional<GroupExpression>
groupExpression) {
- return new PhysicalJdbcScan(relationId, table, qualifier,
groupExpression, getLogicalProperties());
+ return new PhysicalJdbcScan(relationId, table, qualifier,
groupExpression, getLogicalProperties(), conjuncts);
}
@Override
public Plan withGroupExprLogicalPropChildren(Optional<GroupExpression>
groupExpression,
Optional<LogicalProperties> logicalProperties, List<Plan>
children) {
- return new PhysicalJdbcScan(relationId, table, qualifier,
groupExpression, logicalProperties.get());
+ return new PhysicalJdbcScan(relationId, table, qualifier,
groupExpression, logicalProperties.get(), conjuncts);
}
@Override
public PhysicalJdbcScan withPhysicalPropertiesAndStats(PhysicalProperties
physicalProperties,
Statistics
statistics) {
return new PhysicalJdbcScan(relationId, table, qualifier,
groupExpression,
- getLogicalProperties(), physicalProperties, statistics);
+ 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]