Thread

  1. DECLARE CURSOR code question

    Neil Conway <neilc@samurai.com> — 2008-01-12T01:03:00Z

    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
    
    
    
    
  2. Re: DECLARE CURSOR code question

    Tom Lane <tgl@sss.pgh.pa.us> — 2008-01-12T02:02:02Z

    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