diff options
author | Varun Gupta <varun.gupta@mariadb.com> | 2020-08-10 14:11:58 +0530 |
---|---|---|
committer | Varun Gupta <varun.gupta@mariadb.com> | 2020-08-13 12:24:14 +0530 |
commit | 696edd9e7e4119cb54fa1019b0dc7eebbfce31d6 (patch) | |
tree | e819f7605c443c1067281a722e10f3a3ca34e841 /mysql-test/t/win.test | |
parent | c6686d2cd65dc31b9ec56ef695e8d2f4dc34e48f (diff) | |
download | mariadb-git-10.2-varun.tar.gz |
MDEV-23438: Assertion `!field->is_null()' failed in my_decimal::my_decimal fails in ONLY_FULL_GROUP_BY mode10.2-varun
The issue here is query with aggregate function and non-aggregate field
in the SELECT LIST with ONLY_FULL_GROUP_BY was not disallowed.
In ONLY_FULL_GROUP_BY mode non-aggregate fields are only allowed inside an
aggregate functions or the non-aggregate fields are part of the GROUP BY clause.
In the query for the failing assert the non-aggregate field was inside
a WINDOW function and the window function was treated as an aggregate function
and so no error was thrown.
The fix would be to make sure to mark that a non-aggregate field is used inside a
window function and not an aggregate function and throw an error then.
Diffstat (limited to 'mysql-test/t/win.test')
-rw-r--r-- | mysql-test/t/win.test | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index 602fedad6ea..cda5499e749 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -2534,5 +2534,20 @@ SELECT a, sum(a), bit_or(a) OVER (ORDER BY b) FROM t1; DROP TABLE t1; --echo # +--echo # MDEV-23438: Assertion `!field->is_null()' failed in my_decimal::my_decimal fails +--echo # in ONLY_FULL_GROUP_BY mode +--echo # + +CREATE TABLE t1(a INT, b DECIMAL(10, 0) NOT NULL); +SET @save_sql_mode= @@sql_mode; +SET sql_mode='ONLY_FULL_GROUP_BY'; +--error ER_MIX_OF_GROUP_FUNC_AND_FIELDS +SELECT a, sum(a), bit_or(a) OVER (ORDER BY b) FROM t1; +--error ER_MIX_OF_GROUP_FUNC_AND_FIELDS +SELECT sum(a), last_value(b) OVER () FROM t1; +SET sql_mode= @save_sql_mode; +DROP TABLE t1; + +--echo # --echo # End of 10.2 tests --echo # |