Plv8-sproget er tillid til, så der er ingen måde at indlæse noget fra filsystemet. Du kan dog indlæse moduler fra databasen.
Opret en tabel med kildekoden til et modul og indlæs den ved hjælp af select
og eval()
. Et simpelt eksempel til at illustrere ideen:
create table js_modules (
name text primary key,
source text
);
insert into js_modules values
('test', 'function test() { return "this is a test"; }' );
Indlæs modulet fra js_modules
i din funktion:
create or replace function my_function()
returns text language plv8 as $$
// load module 'test' from the table js_modules
var res = plv8.execute("select source from js_modules where name = 'test'");
eval(res[0].source);
// now the function test() is defined
return test();
$$;
select my_function();
CREATE FUNCTION
my_function
----------------
this is a test
(1 row)
Du kan finde et mere udførligt eksempel med en elegant require()
funktion i dette indlæg:A Deep Dive into PL/v8 .
. Den er baseret på plv8.start_proc
(se også et kort eksempel her
).