diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2019-03-26 17:41:12 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2019-03-26 17:41:45 +0200 |
commit | 2d592f757cd624fe964ac39d05b6bdd985a827e2 (patch) | |
tree | eedcadeaca9c1a4fce05e91f602599c6befb6e9c | |
parent | a138d061b5fe2e211f80ec3f6080316c41c04f07 (diff) | |
parent | c676f58c270d75b6c1889b24b9833afc65b0d98b (diff) | |
download | mariadb-git-2d592f757cd624fe964ac39d05b6bdd985a827e2.tar.gz |
Merge 10.2 into 10.3
-rw-r--r-- | mysql-test/main/ps_error.result | 12 | ||||
-rw-r--r-- | sql/item_cmpfunc.cc | 8 |
2 files changed, 10 insertions, 10 deletions
diff --git a/mysql-test/main/ps_error.result b/mysql-test/main/ps_error.result index e8a9f45494c..448832dc7a8 100644 --- a/mysql-test/main/ps_error.result +++ b/mysql-test/main/ps_error.result @@ -7,7 +7,7 @@ PREPARE stmt FROM "CREATE TABLE tmp AS SELECT * FROM t1 WHERE 'foo' && 0"; Warnings: Warning 1292 Truncated incorrect DOUBLE value: 'foo' EXECUTE stmt; -ERROR 22007: Truncated incorrect INTEGER value: 'foo' +ERROR 22007: Truncated incorrect DOUBLE value: 'foo' SELECT a FROM t1 GROUP BY NULL WITH ROLLUP; a DROP TABLE t1; @@ -18,7 +18,7 @@ PREPARE stmt FROM "CREATE TABLE tmp AS SELECT * FROM t1 WHERE 'foo' && 0"; Warnings: Warning 1292 Truncated incorrect DOUBLE value: 'foo' EXECUTE stmt; -ERROR 22007: Truncated incorrect INTEGER value: 'foo' +ERROR 22007: Truncated incorrect DOUBLE value: 'foo' SET @a = REPLACE( @@global.optimizer_switch, '=on', '=off' ) ; DROP TABLE t1; SET sql_mode=DEFAULT; @@ -30,7 +30,7 @@ PREPARE stmt FROM "CREATE TABLE ps AS SELECT 1 FROM DUAL WHERE 'foo' && 0"; Warnings: Warning 1292 Truncated incorrect DOUBLE value: 'foo' EXECUTE stmt; -ERROR 22007: Truncated incorrect INTEGER value: 'foo' +ERROR 22007: Truncated incorrect DOUBLE value: 'foo' SELECT 'All done'; All done All done @@ -40,7 +40,7 @@ PREPARE stmt FROM "CREATE TABLE ps AS SELECT 1 FROM DUAL WHERE 'foo' && 0"; Warnings: Warning 1292 Truncated incorrect DOUBLE value: 'foo' EXECUTE stmt; -ERROR 22007: Truncated incorrect INTEGER value: 'foo' +ERROR 22007: Truncated incorrect DOUBLE value: 'foo' DEALLOCATE PREPARE stmt; SELECT 'All done'; All done @@ -52,7 +52,7 @@ PREPARE stmt FROM "CREATE TABLE tmp AS SELECT * FROM t1 WHERE 'foo' && 0"; Warnings: Warning 1292 Truncated incorrect DOUBLE value: 'foo' EXECUTE stmt; -ERROR 22007: Truncated incorrect INTEGER value: 'foo' +ERROR 22007: Truncated incorrect DOUBLE value: 'foo' SELECT a FROM t1 GROUP BY a; a SELECT * FROM t1; @@ -65,7 +65,7 @@ PREPARE stmt FROM "CREATE TABLE tmp AS SELECT * FROM t1 WHERE 'foo' && 0"; Warnings: Warning 1292 Truncated incorrect DOUBLE value: 'foo' EXECUTE stmt; -ERROR 22007: Truncated incorrect INTEGER value: 'foo' +ERROR 22007: Truncated incorrect DOUBLE value: 'foo' SELECT a FROM t1 GROUP BY a; a INSERT t1 SELECT * FROM ( SELECT * FROM t1 ) sq; diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 11930bb18de..ed5910bd172 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -1,5 +1,5 @@ /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. - Copyright (c) 2009, 2016, MariaDB + Copyright (c) 2009, 2019, MariaDB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -4545,7 +4545,7 @@ Item_cond::fix_fields(THD *thd, Item **ref) List_iterator<Item> li(list); Item *item; uchar buff[sizeof(char*)]; // Max local vars in function - longlong is_and_cond= functype() == Item_func::COND_AND_FUNC; + bool is_and_cond= functype() == Item_func::COND_AND_FUNC; not_null_tables_cache= 0; used_tables_and_const_cache_init(); @@ -4661,7 +4661,7 @@ bool Item_cond::eval_not_null_tables(void *opt_arg) { Item *item; - longlong is_and_cond= functype() == Item_func::COND_AND_FUNC; + bool is_and_cond= functype() == Item_func::COND_AND_FUNC; List_iterator<Item> li(list); not_null_tables_cache= (table_map) 0; and_tables_cache= ~(table_map) 0; @@ -4671,7 +4671,7 @@ Item_cond::eval_not_null_tables(void *opt_arg) if (item->const_item() && !item->with_param && !item->is_expensive() && !cond_has_datetime_is_null(item)) { - if (item->val_int() == is_and_cond && top_level()) + if (item->eval_const_cond() == is_and_cond && top_level()) { /* a. This is "... AND true_cond AND ..." |