Språket plv8 är pålitligt så det finns inget sätt att ladda något från filsystemet. Du kan dock ladda moduler från databasen.
Skapa en tabell med källkoden för en modul och ladda den med select
och eval()
. Ett enkelt exempel för att illustrera idén:
create table js_modules (
name text primary key,
source text
);
insert into js_modules values
('test', 'function test() { return "this is a test"; }' );
Ladda modulen från 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 hitta ett mer utarbetat exempel med en elegant require()
funktion i detta inlägg:A Deep Dive into PL/v8 .
. Den är baserad på plv8.start_proc
(se även ett kort exempel här
).