Changeset: 35ebc65eb74c for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=35ebc65eb74c Modified Files: sql/src/server/sql_parser.mx sql/src/test/BugTracker/Tests/union_order.stable.err sql/src/test/BugTracker/Tests/union_order.stable.out Branch: Jun2010 Log Message:
fixed (restored) order_by over union_all After Niels' "back port of fix, in select with order by" (http://dev.monetdb.org/hg/MonetDB/rev/77151d685024) queries like (SELECT ...) UNION ALL (SELECT ...) ORDER BY ...; triggered (IMHO incorrectly) an error like "!ORDER BY: missing select operator" In fact, this checking (IMHO incorrectly) approved one of these errors: http://dev.monetdb.org/hg/MonetDB/rev/9e691b3fe553 This checkin refines Niels' original fix by (re-)allowing order by not only on top of (plain) SELECT statements, but also on top of UNION ALL statements. I also revert the incorrect output approval. diffs (44 lines): diff -r b54e116ef646 -r 35ebc65eb74c sql/src/server/sql_parser.mx --- a/sql/src/server/sql_parser.mx Sun Jul 11 11:32:41 2010 +0200 +++ b/sql/src/server/sql_parser.mx Sun Jul 11 20:06:16 2010 +0200 @@ -2922,7 +2922,7 @@ { $$ = $1; if ($2 || $3 || $4) { - if ($1 != NULL && $1->token == SQL_SELECT) { + if ($1 != NULL && ($1->token == SQL_SELECT || $1->token == SQL_UNION)) { SelectNode *s = (SelectNode*)$1; s -> orderby = $2; diff -r b54e116ef646 -r 35ebc65eb74c sql/src/test/BugTracker/Tests/union_order.stable.err --- a/sql/src/test/BugTracker/Tests/union_order.stable.err Sun Jul 11 11:32:41 2010 +0200 +++ b/sql/src/test/BugTracker/Tests/union_order.stable.err Sun Jul 11 20:06:16 2010 +0200 @@ -10,13 +10,6 @@ # 15:51:29 > Mtimeout -timeout 60 MapiClient -lsql -umonetdb -Pmonetdb --host=localhost --port=36178 # 15:51:29 > -MAPI = mone...@alf:31841 -QUERY = select data from tmp_one -ERROR = !ORDER BY: missing select operator in: "select data from tmp_one - !union - !select data from tmp_two - !order by data - !;" # 15:51:29 > # 15:51:29 > Done. diff -r b54e116ef646 -r 35ebc65eb74c sql/src/test/BugTracker/Tests/union_order.stable.out --- a/sql/src/test/BugTracker/Tests/union_order.stable.out Sun Jul 11 11:32:41 2010 +0200 +++ b/sql/src/test/BugTracker/Tests/union_order.stable.out Sun Jul 11 20:06:16 2010 +0200 @@ -28,7 +28,10 @@ % data # name % decimal # type % 6 # length -#select * +% .tmp_one # table_name +% data # name +% decimal # type +% 6 # length % .foo # table_name % data # name % decimal # type _______________________________________________ Checkin-list mailing list [email protected] http://mail.monetdb.org/mailman/listinfo/checkin-list
