This repository has been archived by the owner on Dec 5, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Replace deprecated documentation to a link to wiki page.
- Loading branch information
Showing
1 changed file
with
5 additions
and
47 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |