-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[BugFix] fix multiple partition column statistics (#50488)
Signed-off-by: Murphy <[email protected]> (cherry picked from commit 7bdc5bf)
- Loading branch information
1 parent
fb9009b
commit 619230b
Showing
4 changed files
with
139 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
81 changes: 81 additions & 0 deletions
81
test/sql/test_list_partition/R/test_list_partition_cardinality
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
-- name: test_list_partition_cardinality | ||
DROP DATABASE IF EXISTS test_list_partition_cardinality; | ||
-- result: | ||
-- !result | ||
CREATE DATABASE test_list_partition_cardinality; | ||
-- result: | ||
-- !result | ||
USE test_list_partition_cardinality; | ||
-- result: | ||
-- !result | ||
CREATE TABLE partitions_multi_column_1 ( | ||
c1 int NOT NULL, | ||
c2 int NOT NULL, | ||
c3 int | ||
) | ||
PARTITION BY (c1, c2); | ||
-- result: | ||
-- !result | ||
INSERT INTO partitions_multi_column_1 VALUES | ||
(1,1,1), | ||
(1,2,4), | ||
(1,2,4), | ||
(1,2,4), | ||
(2,3,2), | ||
(2,4,5), | ||
(3,5,3), | ||
(3,6,6); | ||
-- result: | ||
-- !result | ||
INSERT INTO partitions_multi_column_1 | ||
SELECT 4, 7, generate_series FROM TABLE(generate_series(1, 1000)); | ||
-- result: | ||
-- !result | ||
ANALYZE FULL TABLE partitions_multi_column_1 WITH SYNC MODE; | ||
-- result: | ||
test_list_partition_cardinality.partitions_multi_column_1 analyze status OK | ||
-- !result | ||
SELECT count(*) FROM partitions_multi_column_1; | ||
-- result: | ||
1008 | ||
-- !result | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c1=0', 'EMPTYSET') | ||
-- result: | ||
None | ||
-- !result | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c1=1', 'cardinality: 2') | ||
-- result: | ||
None | ||
-- !result | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c1=2', 'cardinality: 1') | ||
-- result: | ||
None | ||
-- !result | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c1=3', 'cardinality: 1') | ||
-- result: | ||
None | ||
-- !result | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c1=4', 'cardinality: 500') | ||
-- result: | ||
None | ||
-- !result | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c2=0', 'EMPTYSET') | ||
-- result: | ||
None | ||
-- !result | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c2=1', 'cardinality: 1') | ||
-- result: | ||
None | ||
-- !result | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c2=2', 'cardinality: 2') | ||
-- result: | ||
None | ||
-- !result | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c2=3', 'cardinality: 1') | ||
-- result: | ||
None | ||
-- !result | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c2=7', 'cardinality: 500') | ||
-- result: | ||
None | ||
-- !result |
41 changes: 41 additions & 0 deletions
41
test/sql/test_list_partition/T/test_list_partition_cardinality
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
-- name: test_list_partition_cardinality | ||
|
||
DROP DATABASE IF EXISTS test_list_partition_cardinality; | ||
CREATE DATABASE test_list_partition_cardinality; | ||
USE test_list_partition_cardinality; | ||
|
||
CREATE TABLE partitions_multi_column_1 ( | ||
c1 int NOT NULL, | ||
c2 int NOT NULL, | ||
c3 int | ||
) | ||
PARTITION BY (c1, c2); | ||
|
||
INSERT INTO partitions_multi_column_1 VALUES | ||
(1,1,1), | ||
(1,2,4), | ||
(1,2,4), | ||
(1,2,4), | ||
(2,3,2), | ||
(2,4,5), | ||
(3,5,3), | ||
(3,6,6); | ||
|
||
INSERT INTO partitions_multi_column_1 | ||
SELECT 4, 7, generate_series FROM TABLE(generate_series(1, 1000)); | ||
|
||
ANALYZE FULL TABLE partitions_multi_column_1 WITH SYNC MODE; | ||
|
||
SELECT count(*) FROM partitions_multi_column_1; | ||
|
||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c1=0', 'EMPTYSET') | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c1=1', 'cardinality: 2') | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c1=2', 'cardinality: 1') | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c1=3', 'cardinality: 1') | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c1=4', 'cardinality: 500') | ||
|
||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c2=0', 'EMPTYSET') | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c2=1', 'cardinality: 1') | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c2=2', 'cardinality: 2') | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c2=3', 'cardinality: 1') | ||
function: assert_explain_verbose_contains('SELECT COUNT(*) FROM partitions_multi_column_1 WHERE c2=7', 'cardinality: 500') |