summaryrefslogtreecommitdiff
path: root/mysql-test/t/sp.test
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2015-01-29 12:47:13 +0100
committerOleksandr Byelkin <sanja@mariadb.com>2015-01-29 12:47:13 +0100
commit51feb6fa99ebf027b74e2e01fb1839df97f76070 (patch)
tree7967f891799a33191c4a805a22bd80c3ce409e05 /mysql-test/t/sp.test
parent0b049b40124d72d77c008d4441e4db2e77f0f127 (diff)
downloadmariadb-git-51feb6fa99ebf027b74e2e01fb1839df97f76070.tar.gz
MDEV-7023: Error 2027: Malformed packet and assertion `field_types == 0 || field_types[field_pos] == MYSQL_TYPE_INT24 || field_types[field_pos] == MYSQL_TYPE_LONG' failure in Protocol_text::store_long
The problem was that sp_head::MULTI_RESULTS was not set correctly for ANALYZE statement.
Diffstat (limited to 'mysql-test/t/sp.test')
-rw-r--r--mysql-test/t/sp.test61
1 files changed, 61 insertions, 0 deletions
diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test
index 3f635acaac9..7dda755481c 100644
--- a/mysql-test/t/sp.test
+++ b/mysql-test/t/sp.test
@@ -9324,3 +9324,64 @@ BEGIN
END|
DROP FUNCTION f|
DELIMITER ;|
+
+--echo #
+--echo # MDEV-7023: Error 2027: Malformed packet and assertion
+--echo # `field_types == 0 || field_types[field_pos] == MYSQL_TYPE_INT24 ||
+--echo #field_types[field_pos] == MYSQL_TYPE_LONG' failure in
+--echo #Protocol_text::store_long
+--echo #
+create table t1 (i int);
+create table t2 (i int);
+--delimiter |
+--error ER_SP_NO_RETSET
+create function f() returns int
+begin
+ analyze insert into t1 values (1);
+ return 1;
+end |
+--error ER_SP_NO_RETSET
+create function f() returns int
+begin
+ analyze insert t1 select * from t2;
+ return 1;
+end |
+--error ER_SP_NO_RETSET
+create function f() returns int
+begin
+ analyze delete from t1;
+ return 1;
+end |
+--error ER_SP_NO_RETSET
+create function f() returns int
+begin
+ analyze delete t1 from t1,t2;
+ return 1;
+end |
+--error ER_SP_NO_RETSET
+create function f() returns int
+begin
+ analyze update t1 set i=1;
+ return 1;
+end |
+--error ER_SP_NO_RETSET
+create function f() returns int
+begin
+ analyze update t1,t2 set i=1;
+ return 1;
+end |
+--error ER_SP_NO_RETSET
+create function f() returns int
+begin
+ analyze replace t1 set i=1;
+ return 1;
+end |
+--error ER_SP_NO_RETSET
+create function f() returns int
+begin
+ analyze replace t1 select * from t2;
+ return 1;
+end |
+--delimiter ;
+
+drop table t1,t2;