mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01: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:
commit
ad1190ec6c
4 changed files with 49 additions and 9 deletions
|
@ -1809,3 +1809,23 @@ 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
|
||||
DROP TABLE t1,t2;
|
||||
|
|
|
@ -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));
|
|||
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;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
|
|
@ -790,11 +790,17 @@ int field_conv(Field *to,Field *from)
|
|||
blob->value.copy();
|
||||
return blob->store(blob->value.ptr(),blob->value.length(),from->charset());
|
||||
}
|
||||
if ((from->result_type() == STRING_RESULT &&
|
||||
(to->result_type() == STRING_RESULT ||
|
||||
(from->real_type() != FIELD_TYPE_ENUM &&
|
||||
from->real_type() != FIELD_TYPE_SET))) ||
|
||||
to->type() == FIELD_TYPE_DECIMAL)
|
||||
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 ||
|
||||
(from->real_type() != FIELD_TYPE_ENUM &&
|
||||
from->real_type() != FIELD_TYPE_SET))) ||
|
||||
to->type() == FIELD_TYPE_DECIMAL)
|
||||
{
|
||||
char buff[MAX_FIELD_WIDTH];
|
||||
String result(buff,sizeof(buff),from->charset());
|
||||
|
|
Loading…
Add table
Reference in a new issue