Fabien COELHO <coelho@cri.ensmp.fr> writes:
>>> INSERT INTO t() VALUES ();
> I'm still unclear why it would be forbidden though, it seems logical to
> try that, whereas the working one is quite away from the usual syntax.
It's forbidden because the SQL standard forbids it.
We allow zero-column syntaxes in some other places where SQL forbids
them, but that's only because there is no reasonable alternative.
In this case, there's a perfectly good, standards-compliant alternative.
So why encourage people to write unportable code?
regards, tom lane