-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
MDEV-40698 ROLLUP query returns incorrect result with empty result set #5542
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 10.11
Are you sure you want to change the base?
Changes from all commits
3c7a531
540ea09
494b5f8
a2ebe59
2addac9
59656d7
b1d9ad7
f83223d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
| # | ||
| # MDEV-40698: ROLLUP query returns incorrect result with empty result set | ||
| # | ||
| CREATE TABLE t0(a INT, b INT, c INT); | ||
| SELECT *, COUNT(0) FROM t0 GROUP BY a, b, c WITH ROLLUP; | ||
| a b c COUNT(0) | ||
| NULL NULL NULL 0 | ||
| SELECT *, COUNT(0) FROM t0 WHERE 1=0 GROUP BY a, b, c WITH ROLLUP; | ||
| a b c COUNT(0) | ||
| NULL NULL NULL 0 | ||
| SELECT *, COUNT(0), ROW_NUMBER() OVER () FROM t0 GROUP BY a, b, c WITH ROLLUP; | ||
| a b c COUNT(0) ROW_NUMBER() OVER () | ||
| NULL NULL NULL 0 1 | ||
| INSERT INTO t0 VALUES (0, 0, 0); | ||
| INSERT INTO t0 VALUES (0, 0, 0); | ||
| SELECT *, COUNT(0) FROM t0 WHERE a > 0 GROUP BY a, b, c WITH ROLLUP; | ||
| a b c COUNT(0) | ||
| NULL NULL NULL 0 | ||
| SELECT EXISTS (SELECT t0.a FROM t0 x WHERE 1=0 GROUP BY x.a WITH ROLLUP) AS e | ||
| FROM t0; | ||
| e | ||
| 1 | ||
| 1 | ||
| SELECT DISTINCT a FROM t0 GROUP BY a, b WITH ROLLUP; | ||
| a | ||
| 0 | ||
| NULL | ||
| CREATE TABLE t1 (a INT, b INT, c INT) ENGINE=InnoDB; | ||
| SELECT *, COUNT(0) FROM t1 GROUP BY a, b, c WITH ROLLUP; | ||
| a b c COUNT(0) | ||
| NULL NULL NULL 0 | ||
| SELECT *, COUNT(0) FROM t1 WHERE 1=0 GROUP BY a, b, c WITH ROLLUP; | ||
| a b c COUNT(0) | ||
| NULL NULL NULL 0 | ||
| SELECT *, COUNT(0), ROW_NUMBER() OVER () FROM t1 GROUP BY a, b, c WITH ROLLUP; | ||
| a b c COUNT(0) ROW_NUMBER() OVER () | ||
| NULL NULL NULL 0 1 | ||
| INSERT INTO t1 VALUES (0, 0, 0); | ||
| INSERT INTO t1 VALUES (0, 0, 0); | ||
| SELECT *, COUNT(0) FROM t1 WHERE a > 0 GROUP BY a, b, c WITH ROLLUP; | ||
| a b c COUNT(0) | ||
| NULL NULL NULL 0 | ||
| SELECT EXISTS (SELECT t1.a FROM t1 x WHERE 1=0 GROUP BY x.a WITH ROLLUP) AS e | ||
| FROM t1; | ||
| e | ||
| 1 | ||
| 1 | ||
| SELECT DISTINCT a FROM t1 GROUP BY a, b WITH ROLLUP; | ||
| a | ||
| 0 | ||
| NULL | ||
| DROP TABLE t0, t1; | ||
| # | ||
| # End of 10.11 tests | ||
| # |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| --source include/have_innodb.inc | ||
|
|
||
| --echo # | ||
| --echo # MDEV-40698: ROLLUP query returns incorrect result with empty result set | ||
| --echo # | ||
|
|
||
| CREATE TABLE t0(a INT, b INT, c INT); | ||
| SELECT *, COUNT(0) FROM t0 GROUP BY a, b, c WITH ROLLUP; | ||
| SELECT *, COUNT(0) FROM t0 WHERE 1=0 GROUP BY a, b, c WITH ROLLUP; | ||
| SELECT *, COUNT(0), ROW_NUMBER() OVER () FROM t0 GROUP BY a, b, c WITH ROLLUP; | ||
| INSERT INTO t0 VALUES (0, 0, 0); | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. why two insert statement? Did it make a difference? |
||
| INSERT INTO t0 VALUES (0, 0, 0); | ||
| SELECT *, COUNT(0) FROM t0 WHERE a > 0 GROUP BY a, b, c WITH ROLLUP; | ||
| SELECT EXISTS (SELECT t0.a FROM t0 x WHERE 1=0 GROUP BY x.a WITH ROLLUP) AS e | ||
| FROM t0; | ||
| SELECT DISTINCT a FROM t0 GROUP BY a, b WITH ROLLUP; | ||
|
|
||
| CREATE TABLE t1 (a INT, b INT, c INT) ENGINE=InnoDB; | ||
| SELECT *, COUNT(0) FROM t1 GROUP BY a, b, c WITH ROLLUP; | ||
| SELECT *, COUNT(0) FROM t1 WHERE 1=0 GROUP BY a, b, c WITH ROLLUP; | ||
| SELECT *, COUNT(0), ROW_NUMBER() OVER () FROM t1 GROUP BY a, b, c WITH ROLLUP; | ||
| INSERT INTO t1 VALUES (0, 0, 0); | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. same here. |
||
| INSERT INTO t1 VALUES (0, 0, 0); | ||
| SELECT *, COUNT(0) FROM t1 WHERE a > 0 GROUP BY a, b, c WITH ROLLUP; | ||
| SELECT EXISTS (SELECT t1.a FROM t1 x WHERE 1=0 GROUP BY x.a WITH ROLLUP) AS e | ||
| FROM t1; | ||
| SELECT DISTINCT a FROM t1 GROUP BY a, b WITH ROLLUP; | ||
|
|
||
| DROP TABLE t0, t1; | ||
|
|
||
| --echo # | ||
| --echo # End of 10.11 tests | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. just single line on Can the tests be appended to mysql-test/main/olap.test instead of a new file. |
||
| --echo # | ||
Uh oh!
There was an error while loading. Please reload this page.