Skip to content
This repository has been archived by the owner on Dec 5, 2023. It is now read-only.

Commit

Permalink
Replace deprecated documentation to a link to wiki page.
Browse files Browse the repository at this point in the history
  • Loading branch information
ItGacky committed Aug 25, 2010
1 parent fe151aa commit 43de836
Showing 1 changed file with 5 additions and 47 deletions.
52 changes: 5 additions & 47 deletions README
Original file line number Diff line number Diff line change
@@ -1,48 +1,6 @@
plv8 version 2009/11/01
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.

* 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 2.3.8
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 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 (9.0devel) and v8 2.3.8.
- There's no interface to call SPI.
- 1-dim array can be put as arguments. Multi dimension array is not supported.
- And many, many bugs...
See project wiki page for the detail:
http://code.google.com/p/plv8js/wiki/PLV8

0 comments on commit 43de836

Please sign in to comment.