Обсуждение: DECLARE CURSOR code question

Поиск
Список
Период
Сортировка

DECLARE CURSOR code question

От
Neil Conway
Дата:
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

От
Tom Lane
Дата:
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