DECLARE CURSOR code question

Started by Neil Conwayabout 18 years ago2 messages
#1Neil Conway
neilc@samurai.com

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Neil Conway (#1)
Re: DECLARE CURSOR code question

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