summaryrefslogtreecommitdiff
path: root/libmysqld
diff options
context:
space:
mode:
authorunknown <monty@hundin.mysql.fi>2001-06-24 22:11:00 +0300
committerunknown <monty@hundin.mysql.fi>2001-06-24 22:11:00 +0300
commita96e1b6954f56504b831c61bae50899b79575827 (patch)
tree2c5662a19583d6ae066e383d5de337ae60cf618f /libmysqld
parent8f33f8d4d36080b161fac72971239afd4bf3137f (diff)
downloadmariadb-git-a96e1b6954f56504b831c61bae50899b79575827.tar.gz
Fixed bug in multi-table-delete code
client/mysqltest.c: Added --big-test argument libmysqld/lib_sql.cc: Reset error messages before new query. libmysqld/lib_vio.c: Fixed reading of results. mysql-test/mysql-test-run.sh: Added option --big mysql-test/r/multi_update.result: More multi-delete tests mysql-test/t/bdb-crash.test: Added missing test if BDB is supported mysql-test/t/multi_update.test: More multi-delete tests
Diffstat (limited to 'libmysqld')
-rw-r--r--libmysqld/lib_sql.cc25
-rw-r--r--libmysqld/lib_vio.c2
2 files changed, 16 insertions, 11 deletions
diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc
index 323bf42cf92..a633d6f583b 100644
--- a/libmysqld/lib_sql.cc
+++ b/libmysqld/lib_sql.cc
@@ -74,6 +74,9 @@ bool lib_dispatch_command(enum enum_server_command command, NET *net,
{
THD *thd=(THD *) net->vio->dest_thd;
thd->store_globals(); // Fix if more than one connect
+ thd->net.last_error[0]=0; // Clear error message
+ thd->net.last_errno=0;
+
net_new_transaction(&thd->net);
return dispatch_command(command, thd, (char *) arg, length + 1);
}
@@ -83,17 +86,17 @@ bool lib_dispatch_command(enum enum_server_command command, NET *net,
void
lib_connection_phase(NET * net, int phase)
{
- THD * thd;
- thd = (THD *)(net->vio->dest_thd);
- if (thd)
- {
- switch (phase)
- {
- case 2:
- check_connections2(thd);
- break;
- }
- }
+ THD * thd;
+ thd = (THD *)(net->vio->dest_thd);
+ if (thd)
+ {
+ switch (phase)
+ {
+ case 2:
+ check_connections2(thd);
+ break;
+ }
+ }
}
}
void start_embedded_conn1(NET * net)
diff --git a/libmysqld/lib_vio.c b/libmysqld/lib_vio.c
index 35deaf8d090..fd4eb4ac29f 100644
--- a/libmysqld/lib_vio.c
+++ b/libmysqld/lib_vio.c
@@ -139,6 +139,8 @@ int vio_read(Vio * vio, gptr buf, int size)
uint4korr(vio->packets + sizeof(char *));
vio->packets = *(char **)vio->packets;
}
+ if (vio->where_in_packet + size > vio->end_of_packet)
+ size = vio->end_of_packet - vio->where_in_packet;
memcpy(buf, vio->where_in_packet, size);
vio->where_in_packet += size;
return (size);