On 2021-01-05 10:56, Masahiko Sawada wrote:
BTW according to the documentation, the options of DECLARE statement
(BINARY, INSENSITIVE, SCROLL, and NO SCROLL) are order-sensitive.
DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
CURSOR [ { WITH | WITHOUT } HOLD ] FOR query
But I realized that these options are actually order-insensitive. For
instance, we can declare a cursor like:
=# declare abc scroll binary cursor for select * from pg_class;
DECLARE CURSOR
The both parser code and documentation has been unchanged from 2003.
Is it a documentation bug?
According to the SQL standard, the ordering of the cursor properties is
fixed. Even if the PostgreSQL parser offers more flexibility, I think
we should continue to encourage writing the clauses in the standard order.