News for hackers. Stuff that matters.
Re:PL/Rust 1.0: now a trusted language for Postgres by samanator on Sunday April 09, 2023 @03:06PM (#35505488)
A crucial facet of optimization for computational triggers in PostgreSQL pertains to the implementation of event triggers, which enable operations to be executed in bulk (per DML statement) rather than on a per-row basis. It appears that, at present, PL/Rust has not incorporated support for event triggers. According to the documentation:

> Event Triggers and DO blocks are not (yet) supported by PL/Rust.

Re:PL/Rust 1.0: now a trusted language for Postgres by ttfkam on Sunday April 09, 2023 @05:16PM (#35506548)
Event triggers fire on DDL changes, not DML. You're thinking of statement-level triggers.

As far as event triggers and DO-blocks, that omission seems fine to me. Especially DO-blocks, which are essentially an inline code, one-off escape hatch in the middle of other SQL. Rust would not be helping any performance-sensitive critical paths in those cases.

Re:PL/Rust 1.0: now a trusted language for Postgres by doctor_eval on Sunday April 09, 2023 @05:25PM (#35506627)
True, but it’s sometimes useful for experimenting, REPL style.
Re:PL/Rust 1.0: now a trusted language for Postgres by samanator on Sunday April 09, 2023 @05:52PM (#35506818)
You're right! My mistake. I was thinking of statement triggers.

https://www.postgresql.org/docs/current/sql-createtrigger.ht...

> The REFERENCING option enables collection of transition relations

I don't see any examples of statement triggers...

Re:PL/Rust 1.0: now a trusted language for Postgres by ttfkam on Sunday April 09, 2023 @10:51PM (#35508705)
https://stackoverflow.com/a/72397774

Note the use of new_table and old_table as aliases. Instead of single records in NEW and OLD, you can select against new and old sets of records.

Re:PL/Rust 1.0: now a trusted language for Postgres by samanator on Wednesday April 12, 2023 @03:44PM (#35545649)
I understand, and I've used the old and new table aliases. But I meant that I don't see a way to use those in the PL/Rust docs.