mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
Don't give errors for default value copy in create_tmp_table
This commit is contained in:
parent
53ecc354e3
commit
6e81ba0c12
3 changed files with 41 additions and 0 deletions
|
@ -160,3 +160,18 @@ SELECT * FROM t1 WHERE LEAST( UTC_TIME(), d );
|
|||
d
|
||||
2012-12-21
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-17969 Assertion `name' failed in THD::push_warning_truncated_value_for_field
|
||||
#
|
||||
CREATE TABLE t1 (c1 DATE , c2 TIMESTAMP) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES ('2006-07-17','0000-00-00 00:00:00');
|
||||
CREATE TABLE t2 (pk INT, a1 TIME) Engine=InnoDB;
|
||||
INSERT INTO t2 VALUES (6,'00:00:00');
|
||||
SET SESSION sql_mode= 'strict_all_tables,no_zero_date';
|
||||
CREATE TABLE tbl SELECT * FROM t1 WHERE t1.c1 = (SELECT c2 FROM t2 WHERE pk = 6);
|
||||
ERROR 22007: Truncated incorrect datetime value: '0000-00-00 00:00:00'
|
||||
DROP TABLE t1,t2;
|
||||
SET sql_mode=DEFAULT;
|
||||
#
|
||||
# End of 10.3 tests
|
||||
#
|
||||
|
|
|
@ -66,3 +66,22 @@ CREATE TABLE t1 (d DATE) ENGINE=InnoDB;
|
|||
INSERT INTO t1 VALUES ('2012-12-21');
|
||||
SELECT * FROM t1 WHERE LEAST( UTC_TIME(), d );
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-17969 Assertion `name' failed in THD::push_warning_truncated_value_for_field
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (c1 DATE , c2 TIMESTAMP) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES ('2006-07-17','0000-00-00 00:00:00');
|
||||
CREATE TABLE t2 (pk INT, a1 TIME) Engine=InnoDB;
|
||||
INSERT INTO t2 VALUES (6,'00:00:00');
|
||||
SET SESSION sql_mode= 'strict_all_tables,no_zero_date';
|
||||
--error ER_TRUNCATED_WRONG_VALUE
|
||||
CREATE TABLE tbl SELECT * FROM t1 WHERE t1.c1 = (SELECT c2 FROM t2 WHERE pk = 6);
|
||||
# ^^^ there is no column c2 in table t2
|
||||
DROP TABLE t1,t2;
|
||||
SET sql_mode=DEFAULT;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.3 tests
|
||||
--echo #
|
||||
|
|
|
@ -17460,6 +17460,7 @@ create_tmp_table(THD *thd, TMP_TABLE_PARAM *param, List<Item> &fields,
|
|||
bool using_unique_constraint= false;
|
||||
bool use_packed_rows= false;
|
||||
bool not_all_columns= !(select_options & TMP_TABLE_ALL_COLUMNS);
|
||||
bool save_abort_on_warning;
|
||||
char *tmpname,path[FN_REFLEN];
|
||||
uchar *pos, *group_buff, *bitmaps;
|
||||
uchar *null_flags;
|
||||
|
@ -17932,6 +17933,11 @@ create_tmp_table(THD *thd, TMP_TABLE_PARAM *param, List<Item> &fields,
|
|||
}
|
||||
null_count= (blob_count == 0) ? 1 : 0;
|
||||
hidden_field_count=param->hidden_field_count;
|
||||
|
||||
/* Protect against warnings in field_conv() in the next loop*/
|
||||
save_abort_on_warning= thd->abort_on_warning;
|
||||
thd->abort_on_warning= 0;
|
||||
|
||||
for (i=0,reg_field=table->field; i < field_count; i++,reg_field++,recinfo++)
|
||||
{
|
||||
Field *field= *reg_field;
|
||||
|
@ -18018,6 +18024,7 @@ create_tmp_table(THD *thd, TMP_TABLE_PARAM *param, List<Item> &fields,
|
|||
bzero(pos, table->s->reclength - (pos - table->record[0]));
|
||||
MEM_CHECK_DEFINED(table->record[0], table->s->reclength);
|
||||
|
||||
thd->abort_on_warning= save_abort_on_warning;
|
||||
param->copy_field_end=copy;
|
||||
param->recinfo= recinfo; // Pointer to after last field
|
||||
store_record(table,s->default_values); // Make empty default record
|
||||
|
|
Loading…
Reference in a new issue