summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgi Kodinov <Georgi.Kodinov@Oracle.com>2010-06-09 11:41:24 +0300
committerGeorgi Kodinov <Georgi.Kodinov@Oracle.com>2010-06-09 11:41:24 +0300
commit344127f371de209bf8a0cb1a0cb9748378ea9bb6 (patch)
tree2b69f5dc4ed6a2fca5bff6279464516aad56386b
parent60153dd36e2a79150565635d1370ed64df7cc07d (diff)
parent04f4786c081d4aa09ae91692bc494c8fd3cc3430 (diff)
downloadmariadb-git-344127f371de209bf8a0cb1a0cb9748378ea9bb6.tar.gz
merge
-rw-r--r--mysql-test/r/loaddata.result7
-rw-r--r--mysql-test/t/loaddata.test20
-rw-r--r--sql/net_serv.cc8
-rw-r--r--sql/sql_load.cc4
4 files changed, 38 insertions, 1 deletions
diff --git a/mysql-test/r/loaddata.result b/mysql-test/r/loaddata.result
index 7a79603adb3..a7407cfa699 100644
--- a/mysql-test/r/loaddata.result
+++ b/mysql-test/r/loaddata.result
@@ -496,4 +496,11 @@ SELECT * FROM t1;
col0
test
DROP TABLE t1;
+#
+# Bug #52512 : Assertion `! is_set()' in
+# Diagnostics_area::set_ok_status on LOAD DATA
+#
+CREATE TABLE t1 (id INT NOT NULL);
+LOAD DATA LOCAL INFILE 'tb.txt' INTO TABLE t1;
+DROP TABLE t1;
End of 5.1 tests
diff --git a/mysql-test/t/loaddata.test b/mysql-test/t/loaddata.test
index c10a7d82c43..27c4cc8a75c 100644
--- a/mysql-test/t/loaddata.test
+++ b/mysql-test/t/loaddata.test
@@ -550,4 +550,24 @@ let $MYSQLD_DATADIR= `select @@datadir`;
remove_file $MYSQLD_DATADIR/test/t1.txt;
+--echo #
+--echo # Bug #52512 : Assertion `! is_set()' in
+--echo # Diagnostics_area::set_ok_status on LOAD DATA
+--echo #
+
+connect (con1,localhost,root,,test);
+
+CREATE TABLE t1 (id INT NOT NULL);
+--send LOAD DATA LOCAL INFILE 'tb.txt' INTO TABLE t1
+# please keep this is a spearate test file : it's important to have no
+# commands after this one
+
+connection default;
+dirty_close con1;
+
+connect (con1,localhost,root,,test);
+DROP TABLE t1;
+connection default;
+disconnect con1;
+
--echo End of 5.1 tests
diff --git a/sql/net_serv.cc b/sql/net_serv.cc
index a29f0e394dc..918798529de 100644
--- a/sql/net_serv.cc
+++ b/sql/net_serv.cc
@@ -920,7 +920,13 @@ my_real_read(NET *net, size_t *complen)
("Packets out of order (Found: %d, expected %u)",
(int) net->buff[net->where_b + 3],
net->pkt_nr));
-#ifdef EXTRA_DEBUG
+ /*
+ We don't make noise server side, since the client is expected
+ to break the protocol for e.g. --send LOAD DATA .. LOCAL where
+ the server expects the client to send a file, but the client
+ may reply with a new command instead.
+ */
+#if defined (EXTRA_DEBUG) && !defined (MYSQL_SERVER)
fflush(stdout);
fprintf(stderr,"Error: Packets out of order (Found: %d, expected %d)\n",
(int) net->buff[net->where_b + 3],
diff --git a/sql/sql_load.cc b/sql/sql_load.cc
index 2c42f29ae71..7e540ffbe4b 100644
--- a/sql/sql_load.cc
+++ b/sql/sql_load.cc
@@ -995,6 +995,10 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list,
DBUG_RETURN(1);
}
}
+
+ if (thd->is_error())
+ read_info.error= 1;
+
if (read_info.error)
break;
if (skip_lines)