PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

plv8 vô hiệu hóa chức năng thực thi và chuẩn bị trong eval ()

Cuối cùng tôi đã tìm ra giải pháp:

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. Làm cách nào để thực hiện cập nhật không chặn lớn trong PostgreSQL?

  2. thiết lập hstore trong rails4, khóa / giá trị động

  3. Làm cách nào để tôi có thể xem lại tất cả các khoản trợ cấp cho cơ sở dữ liệu và đối tượng cho một vai trò?

  4. Biên dịch libpq với iOS SDK 4.2

  5. di chuyển rails:postgresql cho md5 của chuỗi ngẫu nhiên làm mặc định