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]

Reply via email to