summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <vva@eagle.mysql.r18.ru>2004-02-04 21:35:20 +0400
committerunknown <vva@eagle.mysql.r18.ru>2004-02-04 21:35:20 +0400
commit22b2067aa5cce55ea4652cb915f5ba99d9caa4a6 (patch)
tree18e8efebd1b528bcc7225649c305eb4da0716fad
parentdb77cba56687f545a200283d3eb1044157f95e50 (diff)
downloadmariadb-git-22b2067aa5cce55ea4652cb915f5ba99d9caa4a6.tar.gz
added checking for bootstrap in select_send::send_data
(fixed bug #2526 "--init-file crashes MySQL if contains large select") Such checking usually works in send_ok, send_eof, but in this case large result causes interim flushing. sql/sql_class.cc: added checking for bootstrap in select_send::send_data
-rw-r--r--mysql-test/t/init_file-master.opt1
-rw-r--r--mysql-test/t/init_file.sql1
-rw-r--r--mysql-test/t/init_file.test12
-rw-r--r--sql/sql_class.cc2
4 files changed, 16 insertions, 0 deletions
diff --git a/mysql-test/t/init_file-master.opt b/mysql-test/t/init_file-master.opt
new file mode 100644
index 00000000000..1542f1f034e
--- /dev/null
+++ b/mysql-test/t/init_file-master.opt
@@ -0,0 +1 @@
+--init-file=$MYSQL_TEST_DIR/t/init_file.sql \ No newline at end of file
diff --git a/mysql-test/t/init_file.sql b/mysql-test/t/init_file.sql
new file mode 100644
index 00000000000..4236ada1142
--- /dev/null
+++ b/mysql-test/t/init_file.sql
@@ -0,0 +1 @@
+select * from mysql.user as t1, mysql.user as t2, mysql.user as t3, mysql.user as t4, mysql.user as t5, mysql.user as t6, mysql.user as t7, mysql.user as t8; \ No newline at end of file
diff --git a/mysql-test/t/init_file.test b/mysql-test/t/init_file.test
new file mode 100644
index 00000000000..8cfb8c490e2
--- /dev/null
+++ b/mysql-test/t/init_file.test
@@ -0,0 +1,12 @@
+#
+# This test is first part of test init_file_part2.test (bug #2526)
+#
+
+#DROP TABLE IF EXISTS t1;
+
+#CREATE TABLE t1
+#(
+# i int(11) default NULL
+#) TYPE=MyISAM;
+
+#INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); \ No newline at end of file
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 3ea61da28fc..fac99be47a8 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -495,6 +495,8 @@ bool select_send::send_data(List<Item> &items)
}
}
thd->sent_row_count++;
+ if (thd->bootstrap)
+ DBUG_RETURN(0);
bool error=my_net_write(&thd->net,(char*) packet->ptr(),packet->length());
DBUG_RETURN(error);
}