Re: [HACKERS] Cache query implemented

Поиск
Список
Период
Сортировка
От Karel Zak - Zakkr
Тема Re: [HACKERS] Cache query implemented
Дата
Msg-id Pine.LNX.3.96.1000228110508.2717A-100000@ara.zf.jcu.cz
обсуждение исходный текст
Ответ на Re: [HACKERS] Cache query implemented  (Peter Eisentraut <peter_e@gmx.net>)
Ответы Re: [HACKERS] Cache query implemented  (Karel Zak - Zakkr <zakkr@zf.jcu.cz>)
Список pgsql-hackers
On Sat, 26 Feb 2000, Peter Eisentraut wrote:

> Karel Zak - Zakkr writes:
> 
> >  I still not sure with PREPARE/EXECUTE keywords, I vote for:
> > 
> >     CREATE PLAN name AS query [ USING type, ... ]
> >     EXECUTE PLAN name [ USING values, ... ]
> >     DROP PLAN name
> > 
> >  Comments? (Please. I really not SQL's standard guru...)
> 
> SQL seems to have something like the following. (Note: The section on
> dynamic SQL is mostly incomprehensible to me.)
I'am studing SQL92 just now. And I not sure if my idea is same as SQL92's
PREPARE. My implementation is very simular with SPI's plan operations,
and is designed as simple way to very fast query execution.

> PREPARE name AS query
In my PREPARE go query to parser and if in PG query is '$n', parser needs
(Oid) argstypes array, hence it needs  PREPARE name AS <query with parameters - $n> USING valuetype, ...
But in SQL92 is PREPARE without "USING valuetype, ...".

> DESCRIBE INPUT name [ USING x, ... ]
> DESCRIBE [OUTPUT] name [ USING x, ... ]

It is probably used instead 'USING' in PREPARE. It specific columns
for select (OUTPUT) and INPUT specific values for parser ($n paremetrs
in PG). 

People which define SQL92 must be crazy. This PREPARE concept split one
query plan to three commands. Who join it to one plan?....  


> EXECUTE name [ INTO x, y, ... ] [ USING a, b, ... ]
This command "Associate input parametrs and output targets with a prepared
statement and execute the statement" (SQL92).
'INTO' - I really not sure if is possible in PG join more plans into
one plan. If I good understand, INTO is targetlist for cached 
query, but in cached query is targetlist too. Is any way how join/replace 
targetlist in cached query with targetlist from EXECUTE's INTO? 
(QueryRewrite?). But, INTO for EXECUTE is nod bad idea.
> DEALLOCATE PREPARE name

It is better than 'DROP'.


> Meanwhile I'm wondering whether it would not be possible to provide the
> plan caching functionality even if all you do is send the same SELECT
> twice in a row. Might be tricky, of course.
Here, I'am not understand you.
Exist any other SQL which has implemented a PREPARE/EXECUTE? 
(Oracle8 has not it, and other..?)
I still vote for simple PREPARE/EXECUTE (or non-standard CREATE PLAN),
because SQL92's PREPARE is not implementable :-)                     Karel



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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: 7.0 Changes list
Следующее
От: "Mark Hollomon"
Дата:
Сообщение: Re: [HACKERS] Is anyone working on pg_dump?