Re: Get Columns from Plan

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Get Columns from Plan
Дата
Msg-id 19585.1532317518@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Get Columns from Plan  (Ed Behn <ed@behn.us>)
Список pgsql-hackers
Ed Behn <ed@behn.us> writes:
> I'm tinkering with the idea of creating a Procedural Language plugin for
> Haskell. As such I'm reading up on the SPI and prepared statements. The
> idea is that a statement will be prepared at compile time and executed at
> run-time. Therefore, I want to be able to determine the columns (names and
> types) that are returned by a plan without executing it. It seems like this
> should be a straight-forward task, but there doesn't seem to be a mechanism
> to do this.

Sure: SPI_plan_get_plan_sources(), iterate through that list of
CachedPlanSources, inspect the resultDesc tupledescs.  The reasons this
isn't terribly well documented include:

* You'll need to decide what your semantics are for cases where there's
more or less than one list entry with a result.

* Consider the possibility that the result tupdesc changes from time to
time, eg the result of "SELECT * FROM foo" can mutate due to ALTER TABLE.

            regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Thomas Munro
Дата:
Сообщение: Re: Possible performance regression in version 10.1 with pgbenchread-write tests.
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Tips on committing