Search Postgresql Archives

Re: Is PL-PGSQL interpreted or complied?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





2017-07-06 2:10 GMT+02:00 Tim Uckun <timuckun@xxxxxxxxx>:
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.

PLpgSQL source code https://github.com/postgres/postgres/tree/master/src/pl/plpgsql/src

Regards

Pavel



Thanks.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux