summaryrefslogtreecommitdiff
path: root/sql/protocol.cc
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2020-06-22 18:21:21 +0200
committerOleksandr Byelkin <sanja@mariadb.com>2021-07-15 16:28:13 +0200
commita7d880f0b095939118594ecbeba953959ae8e351 (patch)
tree4bd583a11bf5fc42327bdb8b069fb7673cb54a47 /sql/protocol.cc
parent826eab3f9b28dbc370e5d7a2f81dc42d2f09ed40 (diff)
downloadmariadb-git-a7d880f0b095939118594ecbeba953959ae8e351.tar.gz
MDEV-21916: COM_STMT_BULK_EXECUTE with RETURNING insert wrong values
The problem is that array binding uses net buffer to read parameters for each execution while each execiting with RETURNING write in the same buffer. Solution is to allocate new net buffer to avoid changing buffer we are reading from.
Diffstat (limited to 'sql/protocol.cc')
-rw-r--r--sql/protocol.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/protocol.cc b/sql/protocol.cc
index 08b874adba1..eb50b02cf3c 100644
--- a/sql/protocol.cc
+++ b/sql/protocol.cc
@@ -598,6 +598,7 @@ void Protocol::end_statement()
thd->get_stmt_da()->get_sqlstate());
break;
case Diagnostics_area::DA_EOF:
+ case Diagnostics_area::DA_EOF_BULK:
error= send_eof(thd->server_status,
thd->get_stmt_da()->statement_warn_count());
break;