Bug#44306: Assertion fail on duplicate key error in
'INSERT ... SELECT' statements Merge
This commit is contained in:
commit
7e66dbea48
@ -765,6 +765,11 @@ f1 f2
|
||||
2 2
|
||||
10 10
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 ( a INT KEY, b INT );
|
||||
INSERT INTO t1 VALUES ( 0, 1 );
|
||||
INSERT INTO t1 ( b ) SELECT MAX( b ) FROM t1 WHERE b = 2;
|
||||
ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
|
||||
DROP TABLE t1;
|
||||
SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
|
||||
CREATE TABLE t1 (c VARCHAR(30), INDEX ix_c (c(10)));
|
||||
CREATE TABLE t2 (d VARCHAR(10));
|
||||
|
@ -323,6 +323,16 @@ INSERT INTO t2 (f1, f2)
|
||||
SELECT * FROM t2;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
#
|
||||
# Bug#44306: Assertion fail on duplicate key error in 'INSERT ... SELECT'
|
||||
# statements
|
||||
#
|
||||
CREATE TABLE t1 ( a INT KEY, b INT );
|
||||
INSERT INTO t1 VALUES ( 0, 1 );
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO t1 ( b ) SELECT MAX( b ) FROM t1 WHERE b = 2;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #26207: inserts don't work with shortened index
|
||||
#
|
||||
|
@ -7092,15 +7092,17 @@ return_zero_rows(JOIN *join, select_result *result,TABLE_LIST *tables,
|
||||
if (!(result->send_fields(fields,
|
||||
Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF)))
|
||||
{
|
||||
bool send_error= FALSE;
|
||||
if (send_row)
|
||||
{
|
||||
List_iterator_fast<Item> it(fields);
|
||||
Item *item;
|
||||
while ((item= it++))
|
||||
item->no_rows_in_result();
|
||||
result->send_data(fields);
|
||||
send_error= result->send_data(fields);
|
||||
}
|
||||
result->send_eof(); // Should be safe
|
||||
if (!send_error)
|
||||
result->send_eof(); // Should be safe
|
||||
}
|
||||
/* Update results for FOUND_ROWS */
|
||||
join->thd->limit_found_rows= join->thd->examined_row_count= 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user