-- -- The Ruby standard library is reachable via require. RubyGems is enabled -- so that libraries shipped as bundled gems on newer Rubies (csv, -- bigdecimal, base64, ...) resolve too. -- CREATE FUNCTION r_stdlib() RETURNS text LANGUAGE plruby AS $$ %w[json date set digest securerandom].map { |m| begin require m "#{m}=ok" rescue LoadError "#{m}=FAIL" end }.join(' ') $$; SELECT r_stdlib(); r_stdlib -------------------------------------------------- json=ok date=ok set=ok digest=ok securerandom=ok (1 row) -- A required library actually works: JSON generation and a SHA-256 digest. CREATE FUNCTION r_json() RETURNS text LANGUAGE plruby AS $$ require 'json' JSON.generate({'a' => 1, 'b' => [2, 3]}) $$; SELECT r_json(); r_json ------------------- {"a":1,"b":[2,3]} (1 row) CREATE FUNCTION r_digest() RETURNS text LANGUAGE plruby AS $$ require 'digest' Digest::SHA256.hexdigest('plruby') $$; SELECT r_digest(); r_digest ------------------------------------------------------------------ bda288241dcf820d8034fc0cc444d383973b30036907bd94ea3bd19549a3b137 (1 row)