From: | Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> |
---|---|
To: | Massimo Fidanza <malix0(at)gmail(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: New procedural language |
Date: | 2017-03-15 07:42:46 |
Message-ID: | e29dc4e0-eaf9-f390-fc92-e257e38b7748@lab.ntt.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On 2017/03/15 16:20, Massimo Fidanza wrote:
> Il 15 mar 2017 3:52 AM, "Amit Langote" <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> ha
> scritto:
>> On 2017/03/15 11:08, Massimo Fidanza wrote:
>>> Hello,
>>>
>>> what it means to add a new procedural language such as Go or Rust?
>>
>> I think you're looking for how to write a "PL function call handler", most
>> likely in C. See for example how plpython_call_handler() is defined in
>> src/pl/plpython/plpy_main.c. Also read:
>>
>> https://www.postgresql.org/docs/devel/static/plhandler.html
>>
>> Beside the call handler, there are couple of other auxiliary functions
>> that must be provided viz. validator and inline_handler (again, see
>> plpython_validator and plpython_inline_handler).
>
> But there is a difference between python and Go or Rust that the first is
> interpreted and the seconds are compiled like C. All PL instead of C and
> Java (also byte code interpreted) are interpreted
I think you might want to take a look at how PL/Java is implemented then:
https://github.com/tada/pljava
Call handler function I mentioned seems to be implemented in this file:
https://github.com/tada/pljava/blob/master/pljava-so/src/main/c/Backend.c
Just like writing and deploying C functions, functions written in PL/Java
seem to require manual compilation and elaborate installation steps.
Thanks,
Amit
From | Date | Subject | |
---|---|---|---|
Next Message | Nikhil Sontakke | 2017-03-15 07:48:29 | Re: Speedup twophase transactions |
Previous Message | Petr Jelinek | 2017-03-15 07:42:03 | Re: logical decoding of two-phase transactions |