Jesper Krogh <jesper(at)krogh(dot)cc> writes:
> Whereas this gives a syntax error:
> # select 1 in ();
> ERROR: syntax error at or near ")" at character 14
> LINE 1: select 1 in ();
> ^
If we took that syntax it would probably mean a zero-element row,
not an empty IN list. But I'm disclined to allow either, as it'd
seem entirely too likely to convert plain old typos into queries
the system will think are valid ...
I think the short answer why the spec disallows this (which it does)
is that it considers the right-hand side to be a table, and with
absolutely nothing there, there is no way to impute a rowtype to the
table.
regards, tom lane