Re: SPI/backend equivalent of extended-query Describe(statement)? - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: SPI/backend equivalent of extended-query Describe(statement)?
Date
Msg-id CAFj8pRDG1V3DPAS-iURnOEQP_51M-WvHNJutXT-SnERcCYkdKg@mail.gmail.com
Whole thread Raw
In response to Re: SPI/backend equivalent of extended-query Describe(statement)?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers


2018-05-14 17:29 GMT+02:00 Tom Lane <tgl@sss.pgh.pa.us>:
Chapman Flack <chap@anastigmatix.net> writes:
> The longer version of $subject is: how would one go about, in the
> backend using SPI (or SPI and maybe other server APIs as needed),
> obtaining the same inferred parameter information that a front-end
> client can get with the Describe (statement variant) extended-query
> message?

If you're talking about the plan's input parameters, don't SPI_getargcount
and SPI_getargtypeid do what you need?

If you want to know about the output column types, SPI doesn't seem to
have a nice way of getting that in advance of execution, but you could
emulate what Describe does:

* Use SPI_plan_get_plan_sources to get a list of CachedPlanSources
(up to you to decide what to do if there's more or less than one CPS)

* For each/selected CPS, look at the resultDesc and/or targetlist
similarly to SendRowDescriptionMessage.

plpgsql_check does this work more times


Regards

Pavel

                        regards, tom lane


pgsql-hackers by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: Incorrect path in header comment identification
Next
From: Alvaro Herrera
Date:
Subject: Re: Indexes on partitioned tables and foreign partitions