mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Merge gleb.loc:/home/uchum/work/bk/5.0-opt-29360
into gleb.loc:/home/uchum/work/bk/5.0-opt
This commit is contained in:
@@ -1809,3 +1809,23 @@ f1
|
|||||||
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
|
one one
|
||||||
drop table t2;
|
drop table t2;
|
||||||
create table t2 select * from t1;
|
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;
|
update t2 set string="changed" where auto=16;
|
||||||
show full columns from t1;
|
show full columns from t1;
|
||||||
Field Type Collation Null Key Default Extra Privileges Comment
|
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));
|
create table t1(f1 set('a','b'), index(f1));
|
||||||
insert into t1 values(''),(''),('a'),('b');
|
insert into t1 values(''),(''),('a'),('b');
|
||||||
select * from t1 where f1='';
|
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;
|
||||||
|
|
||||||
|
@@ -790,7 +790,13 @@ int field_conv(Field *to,Field *from)
|
|||||||
blob->value.copy();
|
blob->value.copy();
|
||||||
return blob->store(blob->value.ptr(),blob->value.length(),from->charset());
|
return blob->store(blob->value.ptr(),blob->value.length(),from->charset());
|
||||||
}
|
}
|
||||||
if ((from->result_type() == STRING_RESULT &&
|
if (from->real_type() == FIELD_TYPE_ENUM &&
|
||||||
|
to->real_type() == FIELD_TYPE_ENUM &&
|
||||||
|
from->val_int() == 0)
|
||||||
|
{
|
||||||
|
((Field_enum *)(to))->store_type(0);
|
||||||
|
}
|
||||||
|
else if ((from->result_type() == STRING_RESULT &&
|
||||||
(to->result_type() == STRING_RESULT ||
|
(to->result_type() == STRING_RESULT ||
|
||||||
(from->real_type() != FIELD_TYPE_ENUM &&
|
(from->real_type() != FIELD_TYPE_ENUM &&
|
||||||
from->real_type() != FIELD_TYPE_SET))) ||
|
from->real_type() != FIELD_TYPE_SET))) ||
|
||||||
|
Reference in New Issue
Block a user