mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fixed bug #29360.
The special `zero' enum value was coerced to the normal empty string enum value during a field-to-field copy. This bug affected CREATE ... SELECT statements and SELECT aggregate GROUP BY enum field statements. Also this bug made unnecessary warnings during the execution of CREATE ... SELECT statements: Warning 1265 Data truncated for column... sql/field_conv.cc: Fixed bug #29360. The field_conv function has been modified to properly convert the special `zero' enum value between enum fields. mysql-test/t/type_enum.test: Updated test case for bug #29360. mysql-test/r/type_enum.result: Updated test case for bug #29360. mysql-test/r/type_ranges.result: Updated test case for bug #29360.
This commit is contained in:
@ -1809,3 +1809,23 @@ f1
|
||||
f1
|
||||
|
||||
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (c1 ENUM('a', '', 'b'));
|
||||
INSERT INTO t1 (c1) VALUES ('b');
|
||||
INSERT INTO t1 (c1) VALUES ('');
|
||||
INSERT INTO t1 (c1) VALUES (0);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c1' at row 1
|
||||
INSERT INTO t1 (c1) VALUES ('');
|
||||
SELECT c1 + 0, COUNT(c1) FROM t1 GROUP BY c1;
|
||||
c1 + 0 COUNT(c1)
|
||||
0 1
|
||||
2 2
|
||||
3 1
|
||||
CREATE TABLE t2 SELECT * FROM t1;
|
||||
SELECT c1 + 0 FROM t2;
|
||||
c1 + 0
|
||||
3
|
||||
2
|
||||
0
|
||||
2
|
||||
|
@ -208,10 +208,6 @@ options flags
|
||||
one one
|
||||
drop table t2;
|
||||
create table t2 select * from t1;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'options' at row 4
|
||||
Warning 1265 Data truncated for column 'options' at row 5
|
||||
Warning 1265 Data truncated for column 'options' at row 6
|
||||
update t2 set string="changed" where auto=16;
|
||||
show full columns from t1;
|
||||
Field Type Collation Null Key Default Extra Privileges Comment
|
||||
|
@ -182,3 +182,21 @@ create table t1(f1 set('a','b'), index(f1));
|
||||
create table t1(f1 set('a','b'), index(f1));
|
||||
insert into t1 values(''),(''),('a'),('b');
|
||||
select * from t1 where f1='';
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#29360: Confluence of the special 0 enum value with the normal empty string
|
||||
# value during field to field copy.
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (c1 ENUM('a', '', 'b'));
|
||||
INSERT INTO t1 (c1) VALUES ('b');
|
||||
INSERT INTO t1 (c1) VALUES ('');
|
||||
INSERT INTO t1 (c1) VALUES (0);
|
||||
INSERT INTO t1 (c1) VALUES ('');
|
||||
|
||||
SELECT c1 + 0, COUNT(c1) FROM t1 GROUP BY c1;
|
||||
|
||||
CREATE TABLE t2 SELECT * FROM t1;
|
||||
SELECT c1 + 0 FROM t2;
|
||||
|
||||
|
Reference in New Issue
Block a user