On Fri, Feb 19, 2010 at 10:22 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:
> Robert Haas <robertmh...@gmail.com> writes:
>> So I guess there are two issues here: (1) somehow I feel like we
>> should be telling the user what expression is being used to initialize
>> $0, $1, etc. when they are PARAM_EXEC parameters;
>
> Maybe, but the only reasonable place to put it would be within the
> (SubPlan N) reference, which is not a place where verboseness would be
> appreciated, I think.  In principle it could look something like
>
>        (SubPlan N ($0 := b.oid))
>
> but with a few parameters and a bunch of other stuff on the same line
> that would get out of hand.

I thought maybe it could do something like this:

SubPlan 1
  Parameters: $0 := b.oid
  -> Index Scan etc.

...but maybe that doesn't work if it can be called with different
parameters from different places?  Not sure if that's possible.

>> and (2) where does
>> the output list for the sequential scan "go" when there's only one
>> table involved?
>
> The (SubPlan N) reference is meant to be understood as an expression
> element yielding the output of the subplan.  One of us is confused,
> because I don't see any material difference between your examples;
> they're all calling the subplan in the same way.

I don't think it's a stretch to say that I'm the one who is confused.
I am under the (perhaps faulty) impression that when evaluating an
expression there can only ever be three tuples in score: inner, outer,
and scan.  So when we go to evaluate the expression whose result will
be assigned to $0, where do we get those inner and/or outer and/or
scan tuples from?  IOW, I understand where the subplan is putting its
OUTPUT, what I don't understand is what context is being used to set
its input parameters.

...Robert

-- 
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