MDEV-15318 CREATE .. SELECT VALUES produces invalid table structure
When Item_insert_value needs a dummy field, use zero-length Field_string, not Field_null. The latter isn't compatible with CREATE ... SELECT.
This commit is contained in:
parent
aa2e1ade17
commit
1b2078b4d8
@ -853,3 +853,12 @@ INSERT IGNORE INTO t1 SELECT t1.a FROM t1,t1 t2,t1 t3,t1 t4,t1 t5,t1 t6,t1 t7;
|
||||
SET GLOBAL myisam_data_pointer_size = @old_myisam_data_pointer_size;
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
create table t1 (i int);
|
||||
create table t2 as select values(i) as a from t1;
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` binary(0) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1, t2;
|
||||
End of 5.5 tests
|
||||
|
@ -423,3 +423,13 @@ SET GLOBAL myisam_data_pointer_size = @old_myisam_data_pointer_size;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
||||
#
|
||||
# MDEV-15318 CREATE .. SELECT VALUES produces invalid table structure
|
||||
#
|
||||
create table t1 (i int);
|
||||
create table t2 as select values(i) as a from t1;
|
||||
show create table t2;
|
||||
drop table t1, t2;
|
||||
|
||||
--echo End of 5.5 tests
|
||||
|
@ -8541,10 +8541,10 @@ bool Item_insert_value::fix_fields(THD *thd, Item **items)
|
||||
}
|
||||
else
|
||||
{
|
||||
Field *tmp_field= field_arg->field;
|
||||
/* charset doesn't matter here, it's to avoid sigsegv only */
|
||||
tmp_field= new Field_null(0, 0, Field::NONE, field_arg->field->field_name,
|
||||
&my_charset_bin);
|
||||
static uchar null_bit=1;
|
||||
/* charset doesn't matter here */
|
||||
Field *tmp_field= new Field_string(0, 0, &null_bit, 1, Field::NONE,
|
||||
field_arg->field->field_name, &my_charset_bin);
|
||||
if (tmp_field)
|
||||
{
|
||||
tmp_field->init(field_arg->field->table);
|
||||
|
Loading…
x
Reference in New Issue
Block a user