Re: [GENERAL] Is PL-PGSQL interpreted or complied?

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: [GENERAL] Is PL-PGSQL interpreted or complied?
Дата
Msg-id CAFj8pRAtJ=7zcc+Rx0ijGf=nV-F0S-adVoddT565T-KDysSxWQ@mail.gmail.com
обсуждение исходный текст
Ответ на [GENERAL] Is PL-PGSQL interpreted or complied?  (Tim Uckun <timuckun@gmail.com>)
Ответы Re: [GENERAL] Is PL-PGSQL interpreted or complied?
Список pgsql-general


2017-07-06 2:10 GMT+02:00 Tim Uckun <timuckun@gmail.com>:
I am curious about the stored proc languages inside of postgres. When I write a stored proc is it compiled to some internal representation or just interpreted? How does this work with other languages?

The PLpgSQL proc are saved in original form - you can see the content of system table pg_proc. Before saving a syntax checking is processed. When PLpgSQL function is executed first time in session, then source code is loaded from pg_proc, and parsed to AST (Abstract syntax tree). AST is stored in session cache. Next, the AST is directly interpreted, repeatedly. 
 

Also would it be possible to extract PL-PGSQL into a standalone (albeit crippled) language? Is the interpreter/compiler modular like that?

Probably it is possible, but it requires some work - PLpgSQL is just glue for SQL or for SQL expressions. There are not mathematical unit, there are not some like basic library. All is shared with Postgres SQL engine.  This feature is very specific for PLpgSQL. Every expression in PLpgSQL is translated to SELECT - some simple SELECTs are executed in special mode, faster, than usual queries.


Regards

Pavel



Thanks.

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

Предыдущее
От: "dandl"
Дата:
Сообщение: Re: [GENERAL] Imperative Query Languages
Следующее
От: Yong Zhang
Дата:
Сообщение: [GENERAL] pg_rewind could not find previous WAL record at 0/4B000060: invalidrecord length at 0/4B000060: wanted 24, got 0