Re: [HACKERS] PoC plpgsql - possibility to force custom or generic plan

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: [HACKERS] PoC plpgsql - possibility to force custom or generic plan
Дата
Msg-id CAFj8pRBeZGiQTacortKqNZAu3UXYFoC0btEKCm0b88NEHUSAuw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [HACKERS] PoC plpgsql - possibility to force custom or generic plan  (Pavel Stehule <pavel.stehule@gmail.com>)
Ответы Re: [HACKERS] PoC plpgsql - possibility to force custom or generic plan  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-hackers


2017-01-24 6:38 GMT+01:00 Pavel Stehule <pavel.stehule@gmail.com>:
Hi

2017-01-23 21:59 GMT+01:00 Jim Nasby <Jim.Nasby@bluetreble.com>:
On 1/23/17 2:10 PM, Pavel Stehule wrote:
Comments, notes?

+1 on the idea. It'd also be nice if we could expose control of plans for dynamic SQL, though I suspect that's not terribly useful without some kind of global session storage.

A couple notes on a quick read-through:

Instead of paralleling all the existing namespace stuff, I wonder if it'd be better to create explicit block infrastructure. AFAIK PRAGMAs are going to have a lot of the same requirements (certainly the nesting is the same), and we might want more of this king of stuff in the future. (I've certainly wished I could set a GUC in a plpgsql block and have it's settings revert when exiting the block...)

I am not sure if I understand. ?? Setting GUC by PRAGMA can work - the syntax supports it and GUC API supports nesting. Not sure about exception handling - but it should not be problem probably.  

Please, can you show some examples.


Perhaps that's as simple as renaming all the existing _ns_* functions to _block_ and then adding support for pragmas...

Since you're adding cursor_options to PLpgSQL_expr it should probably be removed as an option to exec_*.

I have to recheck it. Some cursor options going from dynamic cursor variables and are related to dynamic query - not query that creates query string.  

hmm .. so current state is better due using options like CURSOR_OPT_PARALLEL_OK

     if (expr->plan == NULL)
        exec_prepare_plan(estate, expr, (parallelOK ?
                          CURSOR_OPT_PARALLEL_OK : 0) | expr->cursor_options);

This options is not permanent feature of expression - and then I cannot to remove cursor_option argument from exec_*

I did minor cleaning - remove cursor_options from plpgsql_var

Regards

Pavel



finit_ would be better named free_.

good idea

Regards

Pavel
 

--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
855-TREBLE2 (855-873-2532)


Вложения

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [HACKERS] Improvements in psql hooks for variables
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: [HACKERS] patch: function xmltable