Bug #36161 Subquery in FROM clause accepts invalid syntax of LIMIT
| Submitted: | 16 Apr 2008 22:44 | Modified: | 17 Apr 2008 3:28 |
|---|---|---|---|
| Reporter: | Sarah Sproehnle | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Parser | Severity: | S3 (Non-critical) |
| Version: | 5.0 and 5.1 | OS: | Any |
| Assigned to: | Marc ALFF | CPU Architecture: | Any |
[16 Apr 2008 22:44]
Sarah Sproehnle
[16 Apr 2008 23:07]
Peter Laursen
also because an empty set is returned when limit is before order! -- this returns 10 rows as expected select * from (select * from abstracts order by ab_id limit 10) as test; -- this returns an empty set (and no error) select * from (select * from abstracts limit 10 order by ab_id) as test; So obviously the 'derived table' (I believe this is a more correct term here than 'subquery') has no data in it!
[17 Apr 2008 3:28]
Valeriy Kravchuk
Verified just as described with 5.0.58: C:\Program Files\MySQL\MySQL Server 5.1\bin>mysql -uroot -proot test -P3308 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.0.58-enterprise-gpl-nt MySQL Enterprise Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> select user from (select * from mysql.user order by user limit 2) as derived; +--------+ | user | +--------+ | a23145 | | junk | +--------+ 2 rows in set (0.00 sec) mysql> select user from (select * from mysql.user limit 2 order by user) as derived; Empty set (0.03 sec) mysql> select * from mysql.user limit 2 order by user; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by user' at line 1
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.052 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.