Re: Roadmap for FE/BE protocol redesign - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Roadmap for FE/BE protocol redesign
Date
Msg-id 5242.1047398072@sss.pgh.pa.us
Whole thread Raw
In response to Re: Roadmap for FE/BE protocol redesign  ("Dave Page" <dpage@vale-housing.co.uk>)
List pgsql-hackers
"Dave Page" <dpage@vale-housing.co.uk> writes:
> As I see it, the tidy/simple answer is to add nspname, relname and
> attname information to each attribute in the row description, and if any
> one of those cannot be easily determined, or the value doesn't come
> directly from there (ie an aggregate), it is simply omitted or left
> empty. It could be done more efficiently with attnum/attrelid, but I
> wonder if that might cause problems in the future if attnum gets hacked
> about.

I'd prefer to stick with rel OID and attnum; those are the keys you are
going to need for looking in the system catalogs, anyway, and they're
surely a lot more compact to transmit than three Names (potentially 180
bytes or so).

So let me get this straight: we want the attribute ID information for
any SELECT output column that is a simple Var (no expressions, and no
aggregated cases either), treating view output columns as Vars belonging
to the view.  What about:

* Joins.  Does an aliased JOIN output variable get resolved to the
underlying table variable?  What about common columns in USING/NATURAL
joins?

* Sub-selects.  Are you expectingSELECT x FROM (SELECT x FROM foo) ss
to produce a reference to foo.x?  (If so, why is this different from the
case where ss is a view?)
        regards, tom lane


pgsql-hackers by date:

Previous
From: "Dave Page"
Date:
Subject: Re: Roadmap for FE/BE protocol redesign
Next
From: Christoph Haller
Date:
Subject: Re: gmake -C regress check failure