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.
