summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
authorunknown <istruewing@chilla.local>2007-06-15 20:23:20 +0200
committerunknown <istruewing@chilla.local>2007-06-15 20:23:20 +0200
commit3883e4b62a10eefd463f3837107bd6b3cdf0f437 (patch)
tree3ba1a3424a2724d272b0353d24a430a5653cd604 /sql/sql_yacc.yy
parent47f893027ed2c06748dfaf2b68dc0bd0dd1ad62a (diff)
parentf6a7490c387c5752df6b10007efe19f993f64e43 (diff)
downloadmariadb-git-3883e4b62a10eefd463f3837107bd6b3cdf0f437.tar.gz
Merge chilla.local:/home/mydev/mysql-5.1-amain
into chilla.local:/home/mydev/mysql-5.1-axmrg mysql-test/r/view.result: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_yacc.yy: Auto merged sql/table.cc: Auto merged sql/mysql_priv.h: SCCS merged
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r--sql/sql_yacc.yy8
1 files changed, 5 insertions, 3 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index ec9fdc2c60a..e3f79fe2d69 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -7505,7 +7505,8 @@ select_derived2:
{
LEX *lex= Lex;
lex->derived_tables|= DERIVED_SUBQUERY;
- if (!lex->expr_allows_subselect)
+ if (!lex->expr_allows_subselect ||
+ lex->sql_command == (int)SQLCOM_PURGE)
{
my_parse_error(ER(ER_SYNTAX_ERROR));
MYSQL_YYABORT;
@@ -9045,6 +9046,7 @@ purge:
{
LEX *lex=Lex;
lex->type=0;
+ lex->sql_command = SQLCOM_PURGE;
} purge_options
{}
;
@@ -9056,7 +9058,6 @@ purge_options:
purge_option:
TO_SYM TEXT_STRING_sys
{
- Lex->sql_command = SQLCOM_PURGE;
Lex->to_log = $2.str;
}
| BEFORE_SYM expr
@@ -11230,7 +11231,8 @@ subselect_init:
subselect_start:
{
LEX *lex=Lex;
- if (!lex->expr_allows_subselect)
+ if (!lex->expr_allows_subselect ||
+ lex->sql_command == (int)SQLCOM_PURGE)
{
my_parse_error(ER(ER_SYNTAX_ERROR));
MYSQL_YYABORT;