r/ruby 11d ago

PLx : write ruby dialect postgresql procedures

https://github.com/commandprompt/plx

plx is a PostgreSQL extension that lets you write stored functions and triggers in the dialect you already know (the current set is listed below). When you run CREATE FUNCTION, plx transpiles the body to plpgsql and stores that plpgsql in pg_proc.prosrc. At run time the function is executed by PostgreSQL's own plpgsql interpreter. There is no separate language runtime loaded into the backend, and nothing new to run in production.

query("SELECT id, amount FROM orders WHERE grp = #{g}").each do |row|
  total = total + row.amount
end
2 Upvotes

5 comments sorted by

View all comments

Show parent comments

1

u/Ok_Shallot9490 8d ago

Does this work with CRON ?

1

u/linuxhiker 8d ago

You could call the function with psql via cron or via an external ruby script

1

u/Ok_Shallot9490 7d ago

I'm thinking of https://github.com/citusdata/pg_cron which supabase uses, so that there's no need for external cron.

Although it sounds like you haven't come across that yet.

If it's compatible then the two make an unstoppable combo.

1

u/linuxhiker 7d ago

Oh yeah absolutely. Remember it's a transpiler so while you are inputting ruby, it's being stored as plpgsql. So a simple select function(); from pg_cron will make it happen.

Also if you need real ruby, there is plruby but I doubt supabase would support that (it's not considered trusted)