sql >> Databáze >  >> RDS >> PostgreSQL

Může jazykové rozšíření plv8 JavaScript volat knihovny třetích stran?

Jazyk plv8 je důvěryhodný, takže není možné načíst nic ze systému souborů. Můžete však načíst moduly z databáze.

Vytvořte tabulku se zdrojovým kódem modulu a načtěte ji pomocí select a eval() . Jednoduchý příklad pro ilustraci myšlenky:

create table js_modules (
    name text primary key,
    source text
);

insert into js_modules values
('test', 'function test() { return "this is a test"; }' );

Načtěte modul z js_modules ve vaší funkci:

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) 

Propracovanější příklad můžete najít pomocí elegantního require() funkce v tomto příspěvku:Hluboký ponor do PL/v8 . . Je založen na plv8.start_proc (viz také krátký příklad zde ).



  1. CHYBA Postgresu:nelze otevřít soubor pro čtení:Povolení odepřeno

  2. Jak vložit do tabulky, která určuje DEFAULT hodnotu pro každý sloupec?

  3. Použijte korelovaný poddotaz přes dva sloupce

  4. PDO ekvivalent mysql_num_rows nebo mssql_num_rows