summaryrefslogtreecommitdiff
path: root/mysql-test/t/ps.test
diff options
context:
space:
mode:
authorunknown <kroki/tomash@moonlight.intranet>2006-11-21 16:53:33 +0300
committerunknown <kroki/tomash@moonlight.intranet>2006-11-21 16:53:33 +0300
commit596e29c253f31c29367f9e5022052f559fb38fdd (patch)
tree56d9e78c141c3fe57a35daf1606fdd64b4631726 /mysql-test/t/ps.test
parent1031c460de5bd4b1014614e8871393eebd0a51bc (diff)
parent7a45fb546fab6fe3fb2a26820ac39a8ee5cd45db (diff)
downloadmariadb-git-596e29c253f31c29367f9e5022052f559fb38fdd.tar.gz
Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug23159
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug23159 mysql-test/r/ps.result: Manual merge. mysql-test/t/ps.test: Manual merge. sql/mysqld.cc: Manual merge. sql/set_var.cc: Manual merge.
Diffstat (limited to 'mysql-test/t/ps.test')
-rw-r--r--mysql-test/t/ps.test76
1 files changed, 35 insertions, 41 deletions
diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test
index 8d01277b515..459a77762bc 100644
--- a/mysql-test/t/ps.test
+++ b/mysql-test/t/ps.test
@@ -848,6 +848,9 @@ drop table t1;
# Bug#16365 Prepared Statements: DoS with too many open statements
# Check that the limit @@max_prpeared_stmt_count works.
#
+# This is also the test for bug#23159 prepared_stmt_count should be
+# status variable.
+#
# Save the old value
set @old_max_prepared_stmt_count= @@max_prepared_stmt_count;
#
@@ -857,17 +860,17 @@ set @old_max_prepared_stmt_count= @@max_prepared_stmt_count;
#
--disable_ps_protocol
#
-# A. Check that the new variables are present in SHOW VARIABLES list.
+# A. Check that the new variables are present in SHOW VARIABLES and
+# SHOW STATUS lists.
#
show variables like 'max_prepared_stmt_count';
-show variables like 'prepared_stmt_count';
+show status like 'prepared_stmt_count';
#
-# B. Check that the new variables are selectable.
+# B. Check that the new system variable is selectable.
#
-select @@max_prepared_stmt_count, @@prepared_stmt_count;
+select @@max_prepared_stmt_count;
#
-# C. Check that max_prepared_stmt_count is settable (global only),
-# whereas prepared_stmt_count is readonly.
+# C. Check that max_prepared_stmt_count is settable (global only).
#
set global max_prepared_stmt_count=-1;
select @@max_prepared_stmt_count;
@@ -875,18 +878,12 @@ set global max_prepared_stmt_count=10000000000000000;
select @@max_prepared_stmt_count;
set global max_prepared_stmt_count=default;
select @@max_prepared_stmt_count;
---error ER_GLOBAL_VARIABLE
+--error 1229 # ER_GLOBAL_VARIABLE
set @@max_prepared_stmt_count=1;
---error ER_GLOBAL_VARIABLE
+--error 1229 # ER_GLOBAL_VARIABLE
set max_prepared_stmt_count=1;
---error ER_GLOBAL_VARIABLE
+--error 1229 # ER_GLOBAL_VARIABLE
set local max_prepared_stmt_count=1;
---error ER_INCORRECT_GLOBAL_LOCAL_VAR
-set local prepared_stmt_count=0;
---error ER_INCORRECT_GLOBAL_LOCAL_VAR
-set @@prepared_stmt_count=0;
---error ER_INCORRECT_GLOBAL_LOCAL_VAR
-set global prepared_stmt_count=1;
# set to a reasonable limit works
set global max_prepared_stmt_count=1;
select @@max_prepared_stmt_count;
@@ -894,75 +891,72 @@ select @@max_prepared_stmt_count;
# D. Check that the variables actually work.
#
set global max_prepared_stmt_count=0;
-select @@max_prepared_stmt_count, @@prepared_stmt_count;
---error ER_MAX_PREPARED_STMT_COUNT_REACHED
+select @@max_prepared_stmt_count;
+show status like 'prepared_stmt_count';
+--error 1105 # ER_UNKNOWN_ERROR
prepare stmt from "select 1";
-select @@prepared_stmt_count;
+show status like 'prepared_stmt_count';
set global max_prepared_stmt_count=1;
prepare stmt from "select 1";
-select @@prepared_stmt_count;
---error ER_MAX_PREPARED_STMT_COUNT_REACHED
+show status like 'prepared_stmt_count';
+--error 1105 # ER_UNKNOWN_ERROR
prepare stmt1 from "select 1";
-select @@prepared_stmt_count;
+show status like 'prepared_stmt_count';
deallocate prepare stmt;
-select @@prepared_stmt_count;
+show status like 'prepared_stmt_count';
#
# E. Check that we can prepare a statement with the same name
# successfully, without hitting the limit.
#
prepare stmt from "select 1";
-select @@prepared_stmt_count;
+show status like 'prepared_stmt_count';
prepare stmt from "select 2";
-select @@prepared_stmt_count;
+show status like 'prepared_stmt_count';
#
# F. We can set the max below the current count. In this case no new
# statements should be allowed to prepare.
#
-select @@prepared_stmt_count, @@max_prepared_stmt_count;
+show status like 'prepared_stmt_count';
+select @@max_prepared_stmt_count;
set global max_prepared_stmt_count=0;
---error ER_MAX_PREPARED_STMT_COUNT_REACHED
+--error 1105 # ER_UNKNOWN_ERROR
prepare stmt from "select 1";
# Result: the old statement is deallocated, the new is not created.
--error 1243 # ER_UNKNOWN_STMT_HANDLER
execute stmt;
-select @@prepared_stmt_count;
---error ER_MAX_PREPARED_STMT_COUNT_REACHED
+show status like 'prepared_stmt_count';
+--error 1105 # ER_UNKNOWN_ERROR
prepare stmt from "select 1";
-select @@prepared_stmt_count;
+show status like 'prepared_stmt_count';
#
# G. Show that the variables are up to date even after a connection with all
# statements in it was terminated.
#
set global max_prepared_stmt_count=3;
-select @@max_prepared_stmt_count, @@prepared_stmt_count;
+select @@max_prepared_stmt_count;
+show status like 'prepared_stmt_count';
prepare stmt from "select 1";
connect (con1,localhost,root,,);
connection con1;
prepare stmt from "select 2";
prepare stmt1 from "select 3";
---error ER_MAX_PREPARED_STMT_COUNT_REACHED
+--error 1105 # ER_UNKNOWN_ERROR
prepare stmt2 from "select 4";
connection default;
---error ER_MAX_PREPARED_STMT_COUNT_REACHED
+--error 1105 # ER_UNKNOWN_ERROR
prepare stmt2 from "select 4";
-select @@max_prepared_stmt_count, @@prepared_stmt_count;
+select @@max_prepared_stmt_count;
+show status like 'prepared_stmt_count';
disconnect con1;
connection default;
-# Wait for the connection to die: deal with a possible race
deallocate prepare stmt;
-let $count= `select @@prepared_stmt_count`;
-if ($count)
-{
---sleep 2
- let $count= `select @@prepared_stmt_count`;
-}
-select @@max_prepared_stmt_count, @@prepared_stmt_count;
#
# Restore the old value.
#
set global max_prepared_stmt_count= @old_max_prepared_stmt_count;
--enable_ps_protocol
+
#
# Bug#19399 "Stored Procedures 'Lost Connection' when dropping/creating
# tables"