MonetDB: default - Support LIMIT in scalar expressions

Stefan Manegold Stefan.Manegold at cwi.nl
Wed Jul 12 12:32:09 CEST 2017


As Martin vD suggested in his comment in bug 6333,
FIRST() and LAST() have no clearly defined (intuitive)
semantics in set-oriented SQL --- even LIMIT n without
order by does not, other some returning "any" n tuples,
possibly different ones with each query invocation (i.e.,
not even "guaranteed" to be deterministic).

Thus, maybe we could consider "ANY()" instead of "FIRST()" & "LAST()"?

Stefan


----- On Jul 12, 2017, at 11:31 AM, Lefteris lsidir at gmail.com wrote:

> maybe we could also support FIRST() and LAST()
> 
> https://www.monetdb.org/bugzilla/show_bug.cgi?id=6333
> 
> On Wed, Jul 12, 2017 at 11:22 AM, Martin Kersten
> <commits+mk=cwi.nl at monetdb.org> wrote:
>> Changeset: 718758b70621 for MonetDB
>> URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=718758b70621
>> Modified Files:
>>         sql/server/sql_parser.y
>> Branch: default
>> Log Message:
>>
>> Support LIMIT in scalar expressions
>> Picking a single element from a table is now supported using
>> LIMIT (and SAMPLE) in SET and UPDATE subqueries
>>
>> set v =(select * from tbl limit 1);
>>
>>
>> diffs (21 lines):
>>
>> diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y
>> --- a/sql/server/sql_parser.y
>> +++ b/sql/server/sql_parser.y
>> @@ -772,7 +772,7 @@ set_statement:
>>                 append_string(l, $2 );
>>                 append_symbol(l, $4 );
>>                 $$ = _symbol_create_list( SQL_SET, l); }
>> -  |     set column_commalist_parens '=' subquery
>> +  |     set column_commalist_parens '=' subquery_with_orderby
>>                 { dlist *l = L();
>>                 append_list(l, $2);
>>                 append_symbol(l, $4);
>> @@ -2919,7 +2919,7 @@ assignment:
>>           append_symbol(l, $3 );
>>           append_string(l, $1);
>>           $$ = _symbol_create_list( SQL_ASSIGN, l); }
>> - |  column_commalist_parens '=' subquery
>> + |  column_commalist_parens '=' subquery_with_orderby
>>         { dlist *l = L();
>>           append_symbol(l, $3);
>>           append_list(l, $1);
>> _______________________________________________
>> checkin-list mailing list
>> checkin-list at monetdb.org
>> https://www.monetdb.org/mailman/listinfo/checkin-list
> _______________________________________________
> developers-list mailing list
> developers-list at monetdb.org
> https://www.monetdb.org/mailman/listinfo/developers-list

-- 
| Stefan.Manegold at CWI.nl | DB Architectures   (DA) |
| www.CWI.nl/~manegold/  | Science Park 123 (L321) |
| +31 (0)20 592-4212     | 1098 XG Amsterdam  (NL) |


More information about the developers-list mailing list