Skip to content

Commit

Permalink
add-rt
Browse files Browse the repository at this point in the history
  • Loading branch information
englefly committed Oct 21, 2024
1 parent 9ab590c commit 51572c3
Show file tree
Hide file tree
Showing 3 changed files with 127 additions and 0 deletions.
13 changes: 13 additions & 0 deletions regression-test/data/nereids_p0/stats/column_stats.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
-- This file is automatically generated. You should know what you did if you want to edit this
-- !order --
PhysicalResultSink
--hashJoin[INNER_JOIN broadcast] hashCondition=((region.r_regionkey = nation.n_regionkey)) otherCondition=()
----PhysicalOlapScan[nation]
----PhysicalOlapScan[region]

-- !disable_order --
PhysicalResultSink
--hashJoin[INNER_JOIN shuffle] hashCondition=((region.r_regionkey = nation.n_regionkey)) otherCondition=()
----PhysicalOlapScan[region]
----PhysicalOlapScan[nation]

7 changes: 7 additions & 0 deletions regression-test/suites/nereids_p0/stats/column_stats.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -109,4 +109,11 @@ suite("column_stats") {
"""
notContains("planed with unknown column statistics")
}

// test invalid col stats => disable join reorder
qt_order "explain shape plan select * from region join nation on r_regionkey=n_regionkey"

sql "alter table region modify column r_regionkey set stats ('ndv'='0', 'num_nulls'='0', 'min_value'='0', 'max_value'='4', 'row_count'='0');"

qt_disable_order "explain shape plan select * from region join nation on r_regionkey=n_regionkey"
}
107 changes: 107 additions & 0 deletions regression-test/suites/nereids_p0/stats/invalid_stats.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
// 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("invalid_stats") {
multi_sql """
set global enable_auto_analyze=false;
SET enable_nereids_planner=true;
SET enable_fallback_to_original_planner=false;
set disable_nereids_rules=PRUNE_EMPTY_PARTITION;
drop table if exists region;
CREATE TABLE region (
r_regionkey int NOT NULL,
r_name VARCHAR(25) NOT NULL,
r_comment VARCHAR(152)
)ENGINE=OLAP
DUPLICATE KEY(`r_regionkey`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`r_regionkey`) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
);
drop table if exists nation;
CREATE TABLE `nation` (
`n_nationkey` int(11) NOT NULL,
`n_name` varchar(25) NOT NULL,
`n_regionkey` int(11) NOT NULL,
`n_comment` varchar(152) NULL
) ENGINE=OLAP
DUPLICATE KEY(`N_NATIONKEY`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`N_NATIONKEY`) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
);
alter table nation modify column n_nationkey set stats ('ndv'='25', 'num_nulls'='0', 'min_value'='0', 'max_value'='24', 'row_count'='25');
alter table nation modify column n_regionkey set stats ('ndv'='5', 'num_nulls'='0', 'min_value'='0', 'max_value'='4', 'row_count'='25');
"""

explain {
sql "select * from region"
notContains("planed with unknown column statistics")
}

explain {
sql "select * from region where r_regionkey=1"
contains("planed with unknown column statistics")
}

explain {
sql "select r_regionkey from region group by r_regionkey"
contains("planed with unknown column statistics")
}

explain {
sql "select r_regionkey from region join nation on r_regionkey=n_regionkey"
contains("planed with unknown column statistics")
}

sql "alter table region modify column r_regionkey set stats ('ndv'='5', 'num_nulls'='0', 'min_value'='0', 'max_value'='4', 'row_count'='5');"

explain {
sql "select * from region where r_regionkey=1"
notContains("planed with unknown column statistics")
}

explain {
sql "select r_regionkey from region group by r_regionkey"
notContains("planed with unknown column statistics")
}

explain {
sql "select r_regionkey from region join nation on r_regionkey=n_regionkey"
notContains("planed with unknown column statistics")
}

explain {
sql "select r_name from region join nation on r_regionkey=n_regionkey"
notContains("planed with unknown column statistics")
}

explain {
sql """
select r_name
from (select r_name, r_regionkey + 1 x from region) T join nation on T.x=n_regionkey
"""
notContains("planed with unknown column statistics")
}
}

0 comments on commit 51572c3

Please sign in to comment.