mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
MDEV-21029 Incorrect result for expression with the <=> operator and IS NULL
Item_func_equal erroneously derived is_null() from the parent class. Overriding it to return false because <=> can never return NULL.
This commit is contained in:
parent
773cb726a8
commit
2e404c9850
3 changed files with 27 additions and 0 deletions
|
@ -43,3 +43,14 @@ a
|
|||
4828532208463511553
|
||||
drop table t1;
|
||||
#End of 4.1 tests
|
||||
# Start of 10.5 tests
|
||||
#
|
||||
# MDEV-21029 Incorrect result for expression with the <=> operator and IS NULL
|
||||
#
|
||||
CREATE TABLE t0(c0 INT);
|
||||
INSERT INTO t0 VALUES (1);
|
||||
SELECT (c0 > (NULL <=> 0)) IS NULL AS c1 FROM t0;
|
||||
c1
|
||||
0
|
||||
DROP TABLE t0;
|
||||
# End of 10.5 tests
|
||||
|
|
|
@ -44,3 +44,18 @@ select * from t1 where a in ('4828532208463511553');
|
|||
drop table t1;
|
||||
|
||||
--echo #End of 4.1 tests
|
||||
|
||||
|
||||
--echo # Start of 10.5 tests
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-21029 Incorrect result for expression with the <=> operator and IS NULL
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t0(c0 INT);
|
||||
INSERT INTO t0 VALUES (1);
|
||||
SELECT (c0 > (NULL <=> 0)) IS NULL AS c1 FROM t0;
|
||||
DROP TABLE t0;
|
||||
|
||||
|
||||
--echo # End of 10.5 tests
|
||||
|
|
|
@ -782,6 +782,7 @@ public:
|
|||
enum Functype functype() const override { return EQUAL_FUNC; }
|
||||
enum Functype rev_functype() const override { return EQUAL_FUNC; }
|
||||
cond_result eq_cmp_result() const override { return COND_TRUE; }
|
||||
bool is_null() override { return false; }
|
||||
const char *func_name() const override { return "<=>"; }
|
||||
Item *neg_transformer(THD *thd) override { return 0; }
|
||||
void add_key_fields(JOIN *join, KEY_FIELD **key_fields,
|
||||
|
|
Loading…
Reference in a new issue