summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/subselect.result1
-rw-r--r--mysql-test/t/subselect.test7
-rw-r--r--sql/sql_lex.cc1
-rw-r--r--sql/sql_parse.cc1
4 files changed, 9 insertions, 1 deletions
diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result
index 32d482f5a32..9c8a237468a 100644
--- a/mysql-test/r/subselect.result
+++ b/mysql-test/r/subselect.result
@@ -1990,3 +1990,4 @@ ac
700
NULL
drop tables t1,t2;
+set @got_val= (SELECT 1 FROM (SELECT 'A' as my_col) as T1 ) ;
diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test
index e0f6fcbf515..19803f6e3ba 100644
--- a/mysql-test/t/subselect.test
+++ b/mysql-test/t/subselect.test
@@ -1282,3 +1282,10 @@ INSERT INTO `t2` VALUES (6,5,12,7,'a'),(12,0,0,7,'a'),(12,1,0,7,'a'),(12,5,5,7,'
SELECT b.sc FROM (SELECT (SELECT a.access FROM t1 a WHERE a.map = op.map AND a.slave = op.pid AND a.master = 1) ac FROM t2 op WHERE op.id = 12 AND op.map = 0) b;
SELECT b.ac FROM (SELECT (SELECT a.access FROM t1 a WHERE a.map = op.map AND a.slave = op.pid AND a.master = 1) ac FROM t2 op WHERE op.id = 12 AND op.map = 0) b;
drop tables t1,t2;
+
+#
+# Subselect in non-select command just after connection
+#
+connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
+connection root;
+set @got_val= (SELECT 1 FROM (SELECT 'A' as my_col) as T1 ) ;
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 679ffb2140e..b5cb8735875 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -157,6 +157,7 @@ void lex_start(THD *thd, uchar *buf,uint length)
lex->ignore_space=test(thd->variables.sql_mode & MODE_IGNORE_SPACE);
lex->sql_command=SQLCOM_END;
lex->duplicates= DUP_ERROR;
+ lex->proc_list.first= 0;
}
void lex_end(LEX *lex)
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 7420f9de100..078333c9552 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -3940,7 +3940,6 @@ mysql_init_select(LEX *lex)
{
DBUG_ASSERT(lex->result == 0);
lex->exchange= 0;
- lex->proc_list.first= 0;
}
}