Thread: [GSoC 2021 project summary] PL/Julia

[GSoC 2021 project summary] PL/Julia

From
Konstantina Skovola
Date:
Hello hackers,

Here is a summary of what was implemented over the summer in PL/Julia:

1. Added support for more datatypes as input and output: 
NULL, boolean, numeric types, composite types, arrays of base types can now be passed as input arguments to PL/Julia functions. Users can also return the above, or sets of the above from PL/Julia UDFs.    
2. Added trigger support - users can write trigger functions in PL/Julia
3. Added event trigger support 
4. Added support for the DO command
5. Added functions for database access from PL/Julia: 
spi_exec(query, limit) and spi_exec(query) for SQL-statement execution,
spi_fetchrow(cursor) and spi_cursor_close(cursor) to return rows and to close the cursor respectively, 
spi_prepare(query, argtypes) to prepare and save an execution plan and
spi_exec_prepared(plan, args, limit) to execute a previously prepared plan.


Currently the extension works for version 13 and Julia versions >= 1.6 (Thanks to Imre Samu for testing!)

I hope you find it interesting.

Regards,
Konstantina

Re: [GSoC 2021 project summary] PL/Julia

From
Dave Cramer
Date:
Hi Konstantina,

Very cool! I was actually looking  at doing this as we also have PL/R.

Dave Cramer



On Tue, 24 Aug 2021 at 04:26, Konstantina Skovola <konskov@gmail.com> wrote:
Hello hackers,

Here is a summary of what was implemented over the summer in PL/Julia:

1. Added support for more datatypes as input and output: 
NULL, boolean, numeric types, composite types, arrays of base types can now be passed as input arguments to PL/Julia functions. Users can also return the above, or sets of the above from PL/Julia UDFs.    
2. Added trigger support - users can write trigger functions in PL/Julia
3. Added event trigger support 
4. Added support for the DO command
5. Added functions for database access from PL/Julia: 
spi_exec(query, limit) and spi_exec(query) for SQL-statement execution,
spi_fetchrow(cursor) and spi_cursor_close(cursor) to return rows and to close the cursor respectively, 
spi_prepare(query, argtypes) to prepare and save an execution plan and
spi_exec_prepared(plan, args, limit) to execute a previously prepared plan.


Currently the extension works for version 13 and Julia versions >= 1.6 (Thanks to Imre Samu for testing!)

I hope you find it interesting.

Regards,
Konstantina

Re: [GSoC 2021 project summary] PL/Julia

From
Fabrízio de Royes Mello
Date:


On Tue, Aug 24, 2021 at 5:26 AM Konstantina Skovola <konskov@gmail.com> wrote:
>
> Hello hackers,
>
> Here is a summary of what was implemented over the summer in PL/Julia:
>
> 1. Added support for more datatypes as input and output:
> NULL, boolean, numeric types, composite types, arrays of base types can now be passed as input arguments to PL/Julia functions. Users can also return the above, or sets of the above from PL/Julia UDFs.    
> 2. Added trigger support - users can write trigger functions in PL/Julia
> 3. Added event trigger support
> 4. Added support for the DO command
> 5. Added functions for database access from PL/Julia:
> spi_exec(query, limit) and spi_exec(query) for SQL-statement execution,
> spi_fetchrow(cursor) and spi_cursor_close(cursor) to return rows and to close the cursor respectively,
> spi_prepare(query, argtypes) to prepare and save an execution plan and
> spi_exec_prepared(plan, args, limit) to execute a previously prepared plan.
>
> A brief presentation of the above
> https://docs.google.com/presentation/d/1cTnsUWiH6o0YH6MlZoPLofna3eNT3P3r9HSL9Dyte5U/edit?usp=sharing
> Documentation with use examples
> https://gitlab.com/konskov/pljulia/-/blob/main/README.md
>
> Currently the extension works for version 13 and Julia versions >= 1.6 (Thanks to Imre Samu for testing!)
>

Awesome Konstantina, it was a pleasure working with you in this project.

Looking forward to your next contributions to PostgreSQL.

Regards,

--
   Fabrízio de Royes Mello         Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento