PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

plv8 nonaktifkan eksekusi dan siapkan fungsi di eval()

Saya akhirnya menemukan solusinya:

create or replace function
public.js(src text, input json) returns json as $$
  //-- select js('var a = input.test; var output = []; for(k in a) { output.push(10+a[k]); };', '{"test": [1,2,3]}'::json)
  //-- select public.js('plv8.elog(NOTICE, "yoyo");', null) // should not be possible
  plv8.elog(NOTICE, 'test');
  var evalRes = null;
  (function() {
        var plv8 = null; //-- In order to disable execute, prepare...
        evalRes = eval('var output=null; ' + src + '; output;');
  })();
  plv8.elog(NOTICE, 'test2');
  return JSON.stringify(evalRes);
$$ LANGUAGE plv8;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memeriksa status server PostgreSQL Mac OS X

  2. Rake spec gagal sebagian besar tes, tetapi Rails berfungsi dengan baik pada sumber Diaspora

  3. Masalah Django DateRangeField

  4. Koneksi Heroku Postgres dari aplikasi PHP localhost

  5. Bagaimana cara mencari rentang bilangan bulat di PostgreSQL?