summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2011-01-12 15:55:06 +0200
committerMichael Widenius <monty@askmonty.org>2011-01-12 15:55:06 +0200
commita4579c3ef37ee2a17c71ea33f0a0261b0b49de05 (patch)
treeccd3b8eb943fdbdd08647ef14e44c139e6b1bb0c
parentb32bed74e9ef40c6557ff3fc040adc20674baff9 (diff)
downloadmariadb-git-a4579c3ef37ee2a17c71ea33f0a0261b0b49de05.tar.gz
Fix for LP#697622 Assertion `! is_set()' failed when preparing a HANDLER statement
mysql-test/suite/handler/interface.result: Test case mysql-test/suite/handler/interface.test: Test case sql/sql_prepare.cc: Fix for LP#697622 Assertion `! is_set()' failed when preparing a HANDLER statement Return TRUE if mysql_test_handler_read() fails.
-rw-r--r--mysql-test/suite/handler/interface.result2
-rw-r--r--mysql-test/suite/handler/interface.test6
-rw-r--r--sql/sql_prepare.cc7
3 files changed, 10 insertions, 5 deletions
diff --git a/mysql-test/suite/handler/interface.result b/mysql-test/suite/handler/interface.result
index 0b5a4447739..9949097c65a 100644
--- a/mysql-test/suite/handler/interface.result
+++ b/mysql-test/suite/handler/interface.result
@@ -257,3 +257,5 @@ drop table t1;
USE information_schema;
HANDLER COLUMNS OPEN;
ERROR HY000: Incorrect usage of HANDLER OPEN and information_schema
+PREPARE h_r FROM 'HANDLER t1 READ `PRIMARY` LAST';
+ERROR 42S02: Unknown table 't1' in HANDLER
diff --git a/mysql-test/suite/handler/interface.test b/mysql-test/suite/handler/interface.test
index 809f0228f98..e03f2ed777c 100644
--- a/mysql-test/suite/handler/interface.test
+++ b/mysql-test/suite/handler/interface.test
@@ -305,3 +305,9 @@ connection default;
USE information_schema;
--error ER_WRONG_USAGE
HANDLER COLUMNS OPEN;
+
+#
+# LP#697622 Assertion `! is_set()' failed when preparing a HANDLER statement
+#
+--error ER_UNKNOWN_TABLE
+PREPARE h_r FROM 'HANDLER t1 READ `PRIMARY` LAST';
diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc
index 8a9870e2865..9bfa8d61e0a 100644
--- a/sql/sql_prepare.cc
+++ b/sql/sql_prepare.cc
@@ -2004,11 +2004,8 @@ static bool check_prepared_statement(Prepared_statement *stmt)
case SQLCOM_HA_READ:
res= mysql_test_handler_read(stmt, tables);
- {
- /* Statement and field info has already been sent */
- DBUG_RETURN(FALSE);
- }
- break;
+ /* Statement and field info has already been sent */
+ DBUG_RETURN(res == 1 ? TRUE : FALSE);
/*
Note that we don't need to have cases in this list if they are