Hi all,

Whats the reason for disallowing cursors on wCTEs? I am not sure I can follow 
the comment:

        /*
         * We also disallow data-modifying WITH in a cursor.  (This could be
         * allowed, but the semantics of when the updates occur might be
         * surprising.)
         */
        if (result->hasModifyingCTE)
                ereport(ERROR,
                                (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
                                 errmsg("DECLARE CURSOR must not contain 
data-modifying 
statements in WITH")));

Given that cursors are about the only sensible way to return larger amounts of 
data, that behaviour reduces the usefulness of wCTEs a bit.

Whats the exact cause of concern here? I personally don't think there is a 
problem documenting that you should fetch the cursor fully before relying on 
the updated tables to be in a sensible state. But that may be just me.


Thanks,

Andres


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to