Tatsuo Ishii <ishii@sraoss.co.jp> writes:
>>> According to the manualof RowDescription message
>>> https://www.postgresql.org/docs/12/protocol-message-formats.html
>>> Specifies the number of fields in a row (can be zero).
>>> Does 0 fields could actually happen?
>> Yes, e.g.:
>> SELECT;
> Thanks. Is it a valid SQL statement according to the standard?
See select.sgml:
<refsect2>
<title>Empty <literal>SELECT</literal> Lists</title>
<para>
The list of output expressions after <literal>SELECT</literal> can be
empty, producing a zero-column result table.
This is not valid syntax according to the SQL standard.
<productname>PostgreSQL</productname> allows it to be consistent with
allowing zero-column tables.
However, an empty list is not allowed when <literal>DISTINCT</literal> is used.
</para>
</refsect2>
regards, tom lane