summaryrefslogtreecommitdiff
path: root/mysql-test/t/ps.test
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2004-04-05 19:43:37 +0400
committerunknown <sergefp@mysql.com>2004-04-05 19:43:37 +0400
commitef8a5401f146e0aa17d9cc342c52a82e16e7c6ef (patch)
tree617aa81bcde9afbb78f590039c16af502a91bb52 /mysql-test/t/ps.test
parentb26165d3a2eeb748b9bd5573f9bac7b73d5f9a37 (diff)
downloadmariadb-git-ef8a5401f146e0aa17d9cc342c52a82e16e7c6ef.tar.gz
Many files:
SQL Syntax for Prepared Statements (WL#1622) ps.test, ps.result: new file sql/item.cc: SQL Syntax for Prepared Statements (WL#1622) sql/item.h: SQL Syntax for Prepared Statements (WL#1622) sql/lex.h: SQL Syntax for Prepared Statements (WL#1622) sql/mysql_priv.h: SQL Syntax for Prepared Statements (WL#1622) sql/mysqld.cc: SQL Syntax for Prepared Statements (WL#1622) sql/sql_class.cc: SQL Syntax for Prepared Statements (WL#1622) sql/sql_class.h: SQL Syntax for Prepared Statements (WL#1622) sql/sql_lex.h: SQL Syntax for Prepared Statements (WL#1622) sql/sql_parse.cc: SQL Syntax for Prepared Statements (WL#1622) sql/sql_prepare.cc: SQL Syntax for Prepared Statements (WL#1622) sql/sql_yacc.yy: SQL Syntax for Prepared Statements (WL#1622)
Diffstat (limited to 'mysql-test/t/ps.test')
-rw-r--r--mysql-test/t/ps.test75
1 files changed, 75 insertions, 0 deletions
diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test
new file mode 100644
index 00000000000..a97de1a0de7
--- /dev/null
+++ b/mysql-test/t/ps.test
@@ -0,0 +1,75 @@
+#
+# SQL Syntax for Prepared Statements test
+#
+--disable_warnings
+drop table if exists t1,t2;
+--enable_warnings
+
+create table t1
+(
+ a int primary key,
+ b char(10),
+);
+insert into t1 values (1,'one');
+insert into t1 values (2,'two');
+insert into t1 values (3,'three');
+insert into t1 values (4,'four');
+
+# basic functionality
+set @a=2;
+prepare stmt1 from 'select * from t1 where a <= ?';
+execute stmt1 using @a;
+set @a=3;
+execute stmt1 using @a;
+
+# non-existant statement
+--error 1243
+deallocate prepare no_such_statement;
+
+--error 1210
+execute stmt1;
+
+# Nesting ps commands is not allowed:
+--error 1064
+prepare stmt2 from 'prepare nested_stmt from "select 1"';
+
+--error 1064
+prepare stmt2 from 'execute stmt1';
+
+--error 1064
+prepare stmt2 from 'deallocate prepare z';
+
+# PS insert
+prepare stmt3 from 'insert into t1 values (?,?)';
+set @arg1=5, @arg2='five';
+execute stmt3 using @arg1, @arg2;
+select * from t1 where a>3;
+
+# PS update
+prepare stmt4 from 'update t1 set a=? where b=?';
+set @arg1=55, @arg2='five';
+execute stmt4 using @arg1, @arg2;
+select * from t1 where a>3;
+
+# PS create/delete
+prepare stmt4 from 'create table t2 (a int)';
+execute stmt4;
+prepare stmt4 from 'drop table t2';
+execute stmt4;
+
+# Do something that will cause error
+--error 1051
+execute stmt4;
+
+# placeholders in result field names.
+prepare stmt5 from 'select ? + a from t1';
+set @a=1;
+execute stmt5 using @a;
+
+execute stmt5 using @no_such_var;
+
+set @nullvar=NULL;
+execute stmt5 using @nullvar;
+
+drop table t1;
+