Thread: DECLARE CURSOR code question

DECLARE CURSOR code question

From
Neil Conway
Date:
In CVS HEAD, why does exec_simple_query() pass an empty cursorOptions to
pg_plan_queries() at postgres.c:903? If we're planning DECLARE CURSOR,
ISTM we ought to be passing down the DECLARE CURSOR's cursorOptions.

-Neil




Re: DECLARE CURSOR code question

From
Tom Lane
Date:
Neil Conway <neilc@samurai.com> writes:
> In CVS HEAD, why does exec_simple_query() pass an empty cursorOptions to
> pg_plan_queries() at postgres.c:903? If we're planning DECLARE CURSOR,
> ISTM we ought to be passing down the DECLARE CURSOR's cursorOptions.

This code doesn't know (or care) whether it's dealing with DECLARE
CURSOR.  The planner picks up the information for itself --- look at
the first few lines of standard_planner().

The cursorOptions parameter to planner() is kinda vestigial now as far
as DECLARE CURSOR itself is concerned, but I left it in there since
the SPI_prepare_cursor() API exposes it, and it seemed potentially
useful for callers like plpgsql FOR-loops, which might want to impose
some chosen semantics without physically modifying a querytree.
        regards, tom lane