Re: half OOT, plv8js group created ^^
От | Hitoshi Harada |
---|---|
Тема | Re: half OOT, plv8js group created ^^ |
Дата | |
Msg-id | e08cc0400910312242i7d7104bdi109693acb00b6e9a@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: half OOT, plv8js group created ^^ (David Fetter <david@fetter.org>) |
Список | pgsql-hackers |
2009/10/31 David Fetter <david@fetter.org>: > Please send a patch! :) :) :) Here's my working directory. Kiswono, thanks for adding me to your google code project. I prefer the license would be New BSD rather than GPL. >From instant README: plv8 version 2009/11/01 * OVERVIEW plv8 is shared library that provides a PostgreSQL procedual language powered by V8 JavaScript Engine. With this program you can write in JavaScript your function that is callable from SQL. * REQUIREMENT plv8 requires: PG: version 8.4.x (maybe older are allowed) V8: version 1.2 g++ and all tools that PG and V8 requires to be built. * INSTALL ** Get PostgreSQL and V8 source PG: http://www.postgresql.org/ftp/source/ v8: http://code.google.com/p/v8/wiki/Source Build both of them. Note v8 build option requires mode=release and library=shared. Edit Makefile in plv8 directory so that $(PGDIR) and $(V8DIR) point their directories and type "make". If your prompt doesn't say anything and you can find plv8.so, that's all. * TEST Copy plv8.so into $(PGHOME)/lib and libv8.so from v8 directory into some path that PostgreSQL can read as a library such like /usr/lib/. Then type below SQL in your psql; CREATE FUNCTION plv8_call_handler() RETURNS language_handler AS '$libdir/plv8' LANGUAGE C; CREATE FUNCTION plv8_call_validator(Oid) RETURNS void AS '$libdir/plv8' LANGUAGE C; CREATE LANGUAGE plv8 HANDLER plv8_call_handler VALIDATOR plv8_call_validator; -- create js function CREATE OR REPLACE FUNCTION plv8_test(keys text[], vals text[]) RETURNS text AS $$ var o = {}; for(var i=0; i<keys.length; i++){ o[keys[i]] = vals[i]; } return JSON.stringify(o); $$ LANGUAGE plv8 IMMUTABLE STRICT; -- test SELECT plv8_test(ARRAY['name', 'age'], ARRAY['Tom', '29']); * CAVEATS - This is WIP version. - Tested on only CentOS 5 (x86), PostgreSQL 8.4 (8.5devel) and v8 1.2. - There's no interface to call SPI. - You must specify argument names in function declarations. - 1-dim array can be put as arguments. Multi dimension array is not supported. - And many, many bugs... Any question and comment appreciated. Regards, -- Hitoshi Harada
Вложения
В списке pgsql-hackers по дате отправления: