diff options
author | tnurnberg@white.intern.koehntopp.de <> | 2008-03-10 07:07:56 +0100 |
---|---|---|
committer | tnurnberg@white.intern.koehntopp.de <> | 2008-03-10 07:07:56 +0100 |
commit | fd2bae99818d9d0b528abca8a00d2147a72dde1b (patch) | |
tree | 51f2d1b0305bb5e58ebf2fe09ba255c8efdd44e2 /mysql-test | |
parent | fbc456233181ee1d3653a928d8ac212622aff42f (diff) | |
parent | c6b4d7a7c41a2469a69e0d2a8a883c83cbff3ea9 (diff) | |
download | mariadb-git-fd2bae99818d9d0b528abca8a00d2147a72dde1b.tar.gz |
Merge mysql.com:/misc/mysql/34749/50-34749
into mysql.com:/misc/mysql/34749/51-34749
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/func_misc.result | 19 | ||||
-rw-r--r-- | mysql-test/t/func_misc.test | 18 |
2 files changed, 37 insertions, 0 deletions
diff --git a/mysql-test/r/func_misc.result b/mysql-test/r/func_misc.result index 745a340ec94..ec8c187e1f6 100644 --- a/mysql-test/r/func_misc.result +++ b/mysql-test/r/func_misc.result @@ -212,6 +212,25 @@ test SELECT NAME_CONST('test', 'test'); test test +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3); +SELECT NAME_CONST('flag',1) * MAX(a) FROM t1; +NAME_CONST('flag',1) * MAX(a) +3 +SELECT NAME_CONST('flag',1.5) * MAX(a) FROM t1; +NAME_CONST('flag',1.5) * MAX(a) +4.5 +SELECT NAME_CONST('flag',-1) * MAX(a) FROM t1; +NAME_CONST('flag',-1) * MAX(a) +-3 +SELECT NAME_CONST('flag',-1.5) * MAX(a) FROM t1; +NAME_CONST('flag',-1.5) * MAX(a) +-4.5 +SELECT NAME_CONST('flag', SQRT(4)) * MAX(a) FROM t1; +ERROR HY000: Incorrect arguments to NAME_CONST +SELECT NAME_CONST('flag',-SQRT(4)) * MAX(a) FROM t1; +ERROR HY000: Incorrect arguments to NAME_CONST +DROP TABLE t1; CREATE TABLE t1 (a int); INSERT INTO t1 VALUES (5), (2); SELECT NAME_CONST(x,2) FROM (SELECT a x FROM t1) t; diff --git a/mysql-test/t/func_misc.test b/mysql-test/t/func_misc.test index 7a579088d23..10a63b925d3 100644 --- a/mysql-test/t/func_misc.test +++ b/mysql-test/t/func_misc.test @@ -214,6 +214,24 @@ SELECT NAME_CONST('test', -1.0); SELECT NAME_CONST('test', 'test'); # +# Bug #34749: Server crash when using NAME_CONST() with an aggregate function +# + +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3); +# NAME_CONST() + aggregate. +SELECT NAME_CONST('flag',1) * MAX(a) FROM t1; +SELECT NAME_CONST('flag',1.5) * MAX(a) FROM t1; +# Now, wrap the INT_ITEM in Item_func_neg and watch the pretty explosions +SELECT NAME_CONST('flag',-1) * MAX(a) FROM t1; +SELECT NAME_CONST('flag',-1.5) * MAX(a) FROM t1; +--error ER_WRONG_ARGUMENTS +SELECT NAME_CONST('flag', SQRT(4)) * MAX(a) FROM t1; +--error ER_WRONG_ARGUMENTS +SELECT NAME_CONST('flag',-SQRT(4)) * MAX(a) FROM t1; +DROP TABLE t1; + +# # Bug #27545: erroneous usage of NAME_CONST with a name as the first parameter # resolved against a column name of a derived table hangs the client # |