Commit 8deafa80 authored by unknown's avatar unknown

order_by.result, order_by.test:

  Added a test case for bug #7672.
sql_yacc.yy:
  Fixed bug #7672.
  Made queries of the form (SELECT ...) ORDER BY ... to
  be equivalent to SELECT ... ORDER BY ...


sql/sql_yacc.yy:
  Fixed bug #7672.
  Made queries of the form (SELECT ...) ORDER BY ... to
  be equivalent to SELECT ... ORDER BY ...
mysql-test/t/order_by.test:
  Added a test case for bug #7672.
mysql-test/r/order_by.result:
  Added a test case for bug #7672.
parent b7c59b9e
...@@ -554,3 +554,20 @@ explain select id,t from t1 force index (primary) order by id; ...@@ -554,3 +554,20 @@ explain select id,t from t1 force index (primary) order by id;
table type possible_keys key key_len ref rows Extra table type possible_keys key key_len ref rows Extra
t1 index NULL PRIMARY 4 NULL 1000 t1 index NULL PRIMARY 4 NULL 1000
drop table t1; drop table t1;
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (2), (1), (1), (2), (1);
SELECT a FROM t1 ORDER BY a;
a
1
1
1
2
2
(SELECT a FROM t1) ORDER BY a;
a
1
1
1
2
2
DROP TABLE t1;
...@@ -363,4 +363,15 @@ while ($1) ...@@ -363,4 +363,15 @@ while ($1)
enable_query_log; enable_query_log;
explain select id,t from t1 order by id; explain select id,t from t1 order by id;
explain select id,t from t1 force index (primary) order by id; explain select id,t from t1 force index (primary) order by id;
drop table t1; drop table t1;
\ No newline at end of file
#
# Bug #7672 - a wrong result for a select query in braces followed by order by
#
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (2), (1), (1), (2), (1);
SELECT a FROM t1 ORDER BY a;
(SELECT a FROM t1) ORDER BY a;
DROP TABLE t1;
...@@ -4033,11 +4033,14 @@ optional_order_or_limit: ...@@ -4033,11 +4033,14 @@ optional_order_or_limit:
send_error(&lex->thd->net, ER_SYNTAX_ERROR); send_error(&lex->thd->net, ER_SYNTAX_ERROR);
YYABORT; YYABORT;
} }
if (mysql_new_select(lex)) if (lex->select != &lex->select_lex)
YYABORT; {
mysql_init_select(lex); if (mysql_new_select(lex))
lex->select->linkage=NOT_A_SELECT; YYABORT;
lex->select->select_limit=lex->thd->variables.select_limit; mysql_init_select(lex);
lex->select->linkage=NOT_A_SELECT;
lex->select->select_limit=lex->thd->variables.select_limit;
}
} }
opt_order_clause limit_clause opt_order_clause limit_clause
; ;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment