This is an automated email from the ASF dual-hosted git repository.

englefly 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 0d008b5a433 [feat](nereids)disable join reorder if column stats is 
invalid #41790 (branch-2.1) (#42902)
0d008b5a433 is described below

commit 0d008b5a433d77ee03d54868bf8f5e86cc688c39
Author: minghong <engle...@gmail.com>
AuthorDate: Wed Oct 30 23:47:03 2024 +0800

    [feat](nereids)disable join reorder if column stats is invalid #41790 
(branch-2.1) (#42902)
    
    ## Proposed changes
    pick #41790
    Issue Number: close #xxx
    
    <!--Describe your changes.-->
---
 .../org/apache/doris/nereids/NereidsPlanner.java   |  3 +-
 .../doris/nereids/stats/StatsCalculator.java       | 67 +++++++++++++++++---
 .../rf_prune/query16.out                           | 40 ++++++------
 .../nereids_tpcds_shape_sf100_p0/shape/query16.out | 40 ++++++------
 .../suites/nereids_hint_tpcds_p0/load.groovy       |  2 +-
 .../nereids_tpcds_shape_sf1000_p0/load.groovy      |  2 +-
 .../constraints/load.groovy                        |  2 +-
 .../nereids_tpcds_shape_sf100_p0/load.groovy       |  6 +-
 .../shape/tpcds_sf100_stats.groovy                 | 74 ----------------------
 .../suites/statistics/analyze_stats.groovy         |  2 +-
 10 files changed, 105 insertions(+), 133 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java
index ddd6b7866a5..06f68fc7167 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java
@@ -260,7 +260,8 @@ public class NereidsPlanner extends Planner {
                 && !cascadesContext.isLeadingDisableJoinReorder()) {
             List<LogicalOlapScan> scans = cascadesContext.getRewritePlan()
                     .collectToList(LogicalOlapScan.class::isInstance);
-            
StatsCalculator.disableJoinReorderIfTableRowCountNotAvailable(scans, 
cascadesContext);
+            Optional<String> reason = 
StatsCalculator.disableJoinReorderIfStatsInvalid(scans, cascadesContext);
+            reason.ifPresent(LOG::info);
         }
         optimize();
         if (statementContext.getConnectContext().getExecutor() != null) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java
index a359ace631f..6f10bff21ba 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java
@@ -18,6 +18,7 @@
 package org.apache.doris.nereids.stats;
 
 import org.apache.doris.analysis.IntLiteral;
+import org.apache.doris.catalog.Column;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.TableIf;
@@ -262,27 +263,75 @@ public class StatsCalculator extends 
DefaultPlanVisitor<Statistics, Void> {
         groupExpression.setStatDerived(true);
     }
 
+    private boolean isVisibleSlotReference(Slot slot) {
+        if (slot instanceof SlotReference) {
+            Optional<Column> colOpt = ((SlotReference) slot).getColumn();
+            if (colOpt.isPresent()) {
+                return colOpt.get().isVisible();
+            }
+        }
+        return false;
+    }
+
+    private ColumnStatistic getColumnStatsFromTableCache(CatalogRelation 
catalogRelation, SlotReference slot) {
+        long idxId = -1;
+        if (catalogRelation instanceof OlapScan) {
+            idxId = ((OlapScan) catalogRelation).getSelectedIndexId();
+        }
+        return getColumnStatistic(catalogRelation.getTable(), slot.getName(), 
idxId);
+    }
+
+    // check validation of ndv.
+    private Optional<String> checkNdvValidation(OlapScan olapScan, double 
rowCount) {
+        for (Slot slot : ((Plan) olapScan).getOutput()) {
+            if (isVisibleSlotReference(slot)) {
+                ColumnStatistic cache = 
getColumnStatsFromTableCache((CatalogRelation) olapScan, (SlotReference) slot);
+                if (!cache.isUnKnown) {
+                    if ((cache.ndv == 0 && (cache.minExpr != null || 
cache.maxExpr != null))
+                            || cache.ndv > rowCount * 10) {
+                        return Optional.of("slot " + slot.getName() + " has 
invalid column stats: " + cache);
+                    }
+                }
+            }
+        }
+        return Optional.empty();
+    }
+
     /**
-     * disable join reorder if any table row count is not available.
+     * disable join reorder if
+     * 1. any table rowCount is not available, or
+     * 2. col stats ndv=0 but minExpr or maxExpr is not null
+     * 3. ndv > 10 * rowCount
      */
-    public static void disableJoinReorderIfTableRowCountNotAvailable(
-            List<LogicalOlapScan> scans, CascadesContext context) {
+    public static Optional<String> 
disableJoinReorderIfStatsInvalid(List<LogicalOlapScan> scans,
+            CascadesContext context) {
         StatsCalculator calculator = new StatsCalculator(context);
+        if (ConnectContext.get() == null) {
+            // ut case
+            return Optional.empty();
+        }
         for (LogicalOlapScan scan : scans) {
             double rowCount = calculator.getOlapTableRowCount(scan);
-            // analyzed rowCount may be zero, but BE-reported rowCount could 
be positive.
-            // check ndv validation when reported rowCount > 0
-            if (rowCount == -1 && ConnectContext.get() != null) {
+            // row count not available
+            if (rowCount == -1) {
+                LOG.info("disable join reorder since row count not available: "
+                        + scan.getTable().getNameWithFullQualifiers());
+                return Optional.of("table[" + scan.getTable().getName() + "] 
row count is invalid");
+            }
+            // ndv abnormal
+            Optional<String> reason = calculator.checkNdvValidation(scan, 
rowCount);
+            if (reason.isPresent()) {
                 try {
                     
ConnectContext.get().getSessionVariable().disableNereidsJoinReorderOnce();
-                    LOG.info("disable join reorder since row count not 
available: "
-                            + scan.getTable().getNameWithFullQualifiers());
+                    LOG.info("disable join reorder since col stats invalid: "
+                            + reason.get());
                 } catch (Exception e) {
                     LOG.info("disableNereidsJoinReorderOnce failed");
                 }
-                return;
+                return reason;
             }
         }
+        return Optional.empty();
     }
 
     @Override
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query16.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query16.out
index 926866a07b0..d699b5518c7 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query16.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query16.out
@@ -8,31 +8,31 @@ PhysicalResultSink
 ----------hashAgg[GLOBAL]
 ------------hashAgg[LOCAL]
 --------------PhysicalProject
-----------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((cs1.cs_order_number 
= cs2.cs_order_number)) otherCondition=(( not (cs_warehouse_sk = 
cs_warehouse_sk))) build RFs:RF4 cs_order_number->[cs_order_number]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4
+----------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_call_center_sk = 
call_center.cc_call_center_sk)) otherCondition=() build RFs:RF3 
cc_call_center_sk->[cs_call_center_sk]
 ------------------PhysicalProject
---------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_call_center_sk 
= call_center.cc_call_center_sk)) otherCondition=() build RFs:RF3 
cc_call_center_sk->[cs_call_center_sk]
-----------------------hashJoin[RIGHT_ANTI_JOIN] 
hashCondition=((cs1.cs_order_number = cr1.cr_order_number)) otherCondition=() 
build RFs:RF2 cs_order_number->[cr_order_number]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF2
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------hashJoin[INNER_JOIN] 
hashCondition=((cs1.cs_ship_date_sk = date_dim.d_date_sk)) otherCondition=() 
build RFs:RF1 d_date_sk->[cs_ship_date_sk]
-----------------------------hashJoin[INNER_JOIN] 
hashCondition=((cs1.cs_ship_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF0 ca_address_sk->[cs_ship_addr_sk]
+--------------------hashJoin[RIGHT_SEMI_JOIN] 
hashCondition=((cs1.cs_order_number = cs2.cs_order_number)) otherCondition=(( 
not (cs_warehouse_sk = cs_warehouse_sk))) build RFs:RF2 
cs_order_number->[cs_order_number]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------hashJoin[INNER_JOIN] 
hashCondition=((cs1.cs_ship_date_sk = date_dim.d_date_sk)) otherCondition=() 
build RFs:RF1 d_date_sk->[cs_ship_date_sk]
+--------------------------hashJoin[INNER_JOIN] 
hashCondition=((cs1.cs_ship_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF0 ca_address_sk->[cs_ship_addr_sk]
+----------------------------hashJoin[LEFT_ANTI_JOIN] 
hashCondition=((cs1.cs_order_number = cr1.cr_order_number)) otherCondition=()
 ------------------------------PhysicalProject
 --------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 
RF1 RF3
 ------------------------------PhysicalDistribute[DistributionSpecReplicated]
 --------------------------------PhysicalProject
-----------------------------------filter((customer_address.ca_state = 'WV'))
-------------------------------------PhysicalOlapScan[customer_address]
+----------------------------------PhysicalOlapScan[catalog_returns]
 ----------------------------PhysicalDistribute[DistributionSpecReplicated]
 ------------------------------PhysicalProject
---------------------------------filter((date_dim.d_date <= '2002-05-31') and 
(date_dim.d_date >= '2002-04-01'))
-----------------------------------PhysicalOlapScan[date_dim]
-----------------------PhysicalDistribute[DistributionSpecReplicated]
-------------------------PhysicalProject
---------------------------filter(cc_county IN ('Barrow County', 'Daviess 
County', 'Luce County', 'Richland County', 'Ziebach County'))
-----------------------------PhysicalOlapScan[call_center]
+--------------------------------filter((customer_address.ca_state = 'WV'))
+----------------------------------PhysicalOlapScan[customer_address]
+--------------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------------PhysicalProject
+------------------------------filter((date_dim.d_date <= '2002-05-31') and 
(date_dim.d_date >= '2002-04-01'))
+--------------------------------PhysicalOlapScan[date_dim]
+------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------PhysicalProject
+----------------------filter(cc_county IN ('Barrow County', 'Daviess County', 
'Luce County', 'Richland County', 'Ziebach County'))
+------------------------PhysicalOlapScan[call_center]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query16.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query16.out
index 926866a07b0..d699b5518c7 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query16.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query16.out
@@ -8,31 +8,31 @@ PhysicalResultSink
 ----------hashAgg[GLOBAL]
 ------------hashAgg[LOCAL]
 --------------PhysicalProject
-----------------hashJoin[RIGHT_SEMI_JOIN] hashCondition=((cs1.cs_order_number 
= cs2.cs_order_number)) otherCondition=(( not (cs_warehouse_sk = 
cs_warehouse_sk))) build RFs:RF4 cs_order_number->[cs_order_number]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4
+----------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_call_center_sk = 
call_center.cc_call_center_sk)) otherCondition=() build RFs:RF3 
cc_call_center_sk->[cs_call_center_sk]
 ------------------PhysicalProject
---------------------hashJoin[INNER_JOIN] hashCondition=((cs1.cs_call_center_sk 
= call_center.cc_call_center_sk)) otherCondition=() build RFs:RF3 
cc_call_center_sk->[cs_call_center_sk]
-----------------------hashJoin[RIGHT_ANTI_JOIN] 
hashCondition=((cs1.cs_order_number = cr1.cr_order_number)) otherCondition=() 
build RFs:RF2 cs_order_number->[cr_order_number]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF2
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------hashJoin[INNER_JOIN] 
hashCondition=((cs1.cs_ship_date_sk = date_dim.d_date_sk)) otherCondition=() 
build RFs:RF1 d_date_sk->[cs_ship_date_sk]
-----------------------------hashJoin[INNER_JOIN] 
hashCondition=((cs1.cs_ship_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF0 ca_address_sk->[cs_ship_addr_sk]
+--------------------hashJoin[RIGHT_SEMI_JOIN] 
hashCondition=((cs1.cs_order_number = cs2.cs_order_number)) otherCondition=(( 
not (cs_warehouse_sk = cs_warehouse_sk))) build RFs:RF2 
cs_order_number->[cs_order_number]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------hashJoin[INNER_JOIN] 
hashCondition=((cs1.cs_ship_date_sk = date_dim.d_date_sk)) otherCondition=() 
build RFs:RF1 d_date_sk->[cs_ship_date_sk]
+--------------------------hashJoin[INNER_JOIN] 
hashCondition=((cs1.cs_ship_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF0 ca_address_sk->[cs_ship_addr_sk]
+----------------------------hashJoin[LEFT_ANTI_JOIN] 
hashCondition=((cs1.cs_order_number = cr1.cr_order_number)) otherCondition=()
 ------------------------------PhysicalProject
 --------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 
RF1 RF3
 ------------------------------PhysicalDistribute[DistributionSpecReplicated]
 --------------------------------PhysicalProject
-----------------------------------filter((customer_address.ca_state = 'WV'))
-------------------------------------PhysicalOlapScan[customer_address]
+----------------------------------PhysicalOlapScan[catalog_returns]
 ----------------------------PhysicalDistribute[DistributionSpecReplicated]
 ------------------------------PhysicalProject
---------------------------------filter((date_dim.d_date <= '2002-05-31') and 
(date_dim.d_date >= '2002-04-01'))
-----------------------------------PhysicalOlapScan[date_dim]
-----------------------PhysicalDistribute[DistributionSpecReplicated]
-------------------------PhysicalProject
---------------------------filter(cc_county IN ('Barrow County', 'Daviess 
County', 'Luce County', 'Richland County', 'Ziebach County'))
-----------------------------PhysicalOlapScan[call_center]
+--------------------------------filter((customer_address.ca_state = 'WV'))
+----------------------------------PhysicalOlapScan[customer_address]
+--------------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------------PhysicalProject
+------------------------------filter((date_dim.d_date <= '2002-05-31') and 
(date_dim.d_date >= '2002-04-01'))
+--------------------------------PhysicalOlapScan[date_dim]
+------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------PhysicalProject
+----------------------filter(cc_county IN ('Barrow County', 'Daviess County', 
'Luce County', 'Richland County', 'Ziebach County'))
+------------------------PhysicalOlapScan[call_center]
 
diff --git a/regression-test/suites/nereids_hint_tpcds_p0/load.groovy 
b/regression-test/suites/nereids_hint_tpcds_p0/load.groovy
index 77b37a9c1b4..f4cf57113a6 100644
--- a/regression-test/suites/nereids_hint_tpcds_p0/load.groovy
+++ b/regression-test/suites/nereids_hint_tpcds_p0/load.groovy
@@ -2336,7 +2336,7 @@ suite("load") {
     """
 
     sql """
-    alter table call_center modify column cc_closed_date_sk set stats 
('row_count'='42', 'ndv'='0', 'num_nulls'='42', 'min_value'='0', 
'max_value'='179769313', 'data_size'='168')
+    alter table call_center modify column cc_closed_date_sk set stats 
('row_count'='42', 'ndv'='0', 'num_nulls'='42', 'data_size'='168')
     """
 
     sql """
diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/load.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/load.groovy
index b868aab6130..1a5c3980e84 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/load.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/load.groovy
@@ -2336,7 +2336,7 @@ suite("load") {
     """
 
     sql """
-    alter table call_center modify column cc_closed_date_sk set stats 
('row_count'='42', 'ndv'='0', 'num_nulls'='42', 'min_value'='0', 
'max_value'='179769313', 'data_size'='168')
+    alter table call_center modify column cc_closed_date_sk set stats 
('row_count'='42', 'ndv'='0', 'num_nulls'='42', 'data_size'='168')
     """
 
     sql """
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/constraints/load.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/constraints/load.groovy
index 3020a285e63..b2dca961e4d 100644
--- 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/constraints/load.groovy
+++ 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/constraints/load.groovy
@@ -2340,7 +2340,7 @@ suite("load") {
     """
 
     sql """
-    alter table call_center modify column cc_closed_date_sk set stats 
('row_count'='42', 'ndv'='0', 'num_nulls'='42', 'min_value'='0', 
'max_value'='179769313', 'data_size'='168')
+    alter table call_center modify column cc_closed_date_sk set stats 
('row_count'='42', 'ndv'='0', 'num_nulls'='42', 'data_size'='168')
     """
 
     sql """
diff --git a/regression-test/suites/nereids_tpcds_shape_sf100_p0/load.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/load.groovy
index 120ebf97298..57ac7e84aba 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/load.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/load.groovy
@@ -1299,7 +1299,7 @@ alter table web_page modify column wp_max_ad_count set 
stats ('row_count'='2040'
 """
 
 sql """
-alter table call_center modify column cc_closed_date_sk set stats 
('row_count'='30', 'ndv'='0', 'min_value'='2415022', 'max_value'='2488070', 
'avg_size'='120', 'max_size'='120' )
+alter table call_center modify column cc_closed_date_sk set stats 
('row_count'='30', 'ndv'='0', 'num_nulls'='30', 'avg_size'='120', 
'max_size'='120' )
 """
 
 sql """
@@ -2018,10 +2018,6 @@ sql """
 alter table ship_mode modify column sm_contract set stats ('row_count'='20', 
'ndv'='20', 'min_value'='2mM8l', 'max_value'='yVfotg7Tio3MVhBg6Bkn', 
'avg_size'='252', 'max_size'='252' )
 """
 
-sql """
-alter table call_center modify column cc_closed_date_sk set stats 
('row_count'='30', 'ndv'='0', 'min_value'='0', 'max_value'='0', 
'avg_size'='120', 'max_size'='120' )
-"""
-
 sql """
 alter table customer_address modify column ca_zip set stats 
('row_count'='1000000', 'ndv'='7733', 'min_value'='', 'max_value'='99981', 
'avg_size'='4848150', 'max_size'='4848150' )
 """
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/tpcds_sf100_stats.groovy
 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/tpcds_sf100_stats.groovy
deleted file mode 100644
index 35502b91016..00000000000
--- 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/shape/tpcds_sf100_stats.groovy
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-suite('tpcds_sf100_stats') {
-    String db = context.config.getDbNameByFile(new File(context.file.parent))
-    sql "use ${db}"
-    def stats
-    stats = sql """ show column stats call_center            ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats catalog_page           ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats catalog_returns        ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats catalog_sales          ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats customer               ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats customer_address       ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats customer_demographics  ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats date_dim               ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats dbgen_version          ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats household_demographics ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats income_band            ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats inventory              ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats item                   ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats promotion              ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats reason                 ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats ship_mode              ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats store                  ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats store_returns          ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats store_sales            ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats time_dim               ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats warehouse              ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats web_page               ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats web_returns            ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats web_sales              ;"""
-    logger.info("${stats}")
-    stats = sql """ show column stats web_site               ;"""
-    logger.info("${stats}")
-
-}
\ No newline at end of file
diff --git a/regression-test/suites/statistics/analyze_stats.groovy 
b/regression-test/suites/statistics/analyze_stats.groovy
index 50ba18e97b8..13a34d1dae9 100644
--- a/regression-test/suites/statistics/analyze_stats.groovy
+++ b/regression-test/suites/statistics/analyze_stats.groovy
@@ -2754,7 +2754,7 @@ PARTITION `p599` VALUES IN (599)
     sql """drop stats alter_test"""
     alter_result = sql """show table stats alter_test"""
     assertEquals("", alter_result[0][7])
-    sql """alter table alter_test modify column id set stats 
('row_count'='100', 'ndv'='0', 'num_nulls'='0.0', 'data_size'='2.69975443E8', 
'min_value'='1', 'max_value'='2');"""
+    sql """alter table alter_test modify column id set stats 
('row_count'='100', 'ndv'='0', 'num_nulls'='0.0', 'max_value'='2');"""
     alter_result = sql """show column stats alter_test(id)"""
     logger.info("show column alter_test(id) stats: " + alter_result)
     assertEquals(1, alter_result.size())


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to