mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fix for BUG#8397 (second commit after review):
In Item_cache_decimal::store(item) the call item->val_decimal_result() returns NULL if the passed item has an SQL null value. Don't try copying NULL into Item_cache_decimal::val in this case. mysql-test/r/type_decimal.result: Test for BUG#8397 mysql-test/t/type_decimal.test: Test for BUG#8397 sql/item.cc: Fix for BUG#8397: In Item_cache_decimal::store(item) the call item->val_decimal_result() returns NULL if the passed item has an SQL null value. Don't try copying NULL into Item_cache_decimal::val in this case.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
SET SQL_WARNINGS=1;
|
||||
CREATE TABLE t1 (
|
||||
id int(11) NOT NULL auto_increment,
|
||||
@ -677,3 +677,19 @@ a
|
||||
9999.999
|
||||
0000.000
|
||||
drop table t1;
|
||||
CREATE TABLE t1
|
||||
(EMPNUM CHAR(3) NOT NULL,
|
||||
HOURS DECIMAL(5));
|
||||
CREATE TABLE t2
|
||||
(EMPNUM CHAR(3) NOT NULL,
|
||||
HOURS BIGINT);
|
||||
INSERT INTO t1 VALUES ('E1',40);
|
||||
INSERT INTO t1 VALUES ('E8',NULL);
|
||||
INSERT INTO t2 VALUES ('E1',40);
|
||||
SELECT EMPNUM FROM t1 WHERE HOURS IN (SELECT HOURS FROM t2);
|
||||
EMPNUM
|
||||
E1
|
||||
SELECT EMPNUM FROM t1 WHERE HOURS IN (SELECT HOURS FROM t1);
|
||||
EMPNUM
|
||||
E1
|
||||
DROP TABLE t1,t2;
|
||||
|
@ -1,7 +1,7 @@
|
||||
# bug in decimal() with negative numbers by kaido@tradenet.ee
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
--enable_warnings
|
||||
SET SQL_WARNINGS=1;
|
||||
|
||||
@ -268,3 +268,20 @@ insert into t1 values ('1'),('+1'),('-1'),('0000000001'),('+0000000001'),('-0000
|
||||
--enable_warnings
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
# Test for BUG#8397: decimal type in subselects (Item_cache_decimal)
|
||||
CREATE TABLE t1
|
||||
(EMPNUM CHAR(3) NOT NULL,
|
||||
HOURS DECIMAL(5));
|
||||
CREATE TABLE t2
|
||||
(EMPNUM CHAR(3) NOT NULL,
|
||||
HOURS BIGINT);
|
||||
|
||||
INSERT INTO t1 VALUES ('E1',40);
|
||||
INSERT INTO t1 VALUES ('E8',NULL);
|
||||
INSERT INTO t2 VALUES ('E1',40);
|
||||
|
||||
SELECT EMPNUM FROM t1 WHERE HOURS IN (SELECT HOURS FROM t2);
|
||||
SELECT EMPNUM FROM t1 WHERE HOURS IN (SELECT HOURS FROM t1);
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
Reference in New Issue
Block a user