Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

106 lines (61 sloc) 2.682 kB
PL/Ruby is a loadable procedural language for the Postgres database
system that enable the Ruby language to create functions and trigger
* Prerequisite
ruby >= 1.6
postgresql >= 7.3
All PostgreSQL headers need to be installed. Command (see INSTALL in the
directory postgresql-7.x.y)
make install-all-headers
* Installation
ruby extconf.rb
make install
You may need to specify :
--with-pgsql-dir=<prefix for include and lib directories for PostgreSQL>
--with-pgsql-include=<include file directory for PostgreSQL>
--with-pgsql-lib=<library dir for PostgreSQL>
--with-pgsql-version=<release number for PostgreSQL, actually 73,
or 74 i.e. major and minor number>
by default plruby try to convert a postgres type to a ruby class
This option give the possibility to disable all conversions
--with-suffix=<suffix to add>
For example
ruby extconf.rb --with-suffix=_geo
will create
Example :
ruby extconf.rb --with-pgsql-include=/usr/include/postgresql \
* Test (and examples)
WARNING : if plruby was compiled without --disable-conversion
you must *FIRST* run `make install' before `make test'
make test
this will run the 2 commands :
( cd test/plt; ./runtest )
( cd test/plp; ./runtest )
The database plruby_test is created and then destroyed. Don't use it if
such a database exist on your system.
* Now create the PL/Ruby language in PostgreSQL
Since the pg_language system catalog is private to each database,
the new language can be created only for individual databases,
or in the template1 database. In the latter case, it is
automatically available in all newly created databases.
The commands to create the new language are:
create function plruby_call_handler () returns language_handler
as 'path-to-plruby-shared-lib'
language 'C';
create trusted language 'plruby'
handler plruby_call_handler
lancompiler 'PL/Ruby';
The 'trusted' keyword on 'create language' tells PostgreSQL,
that all users (not only those with superuser privilege) are
permitted to create functions with LANGUAGE 'plruby'. This is
absolutely safe, because there is nothing a normal user can do
with PL/Ruby, to get around access restrictions he/she has.
* Documentation : see plruby.rd and plruby.html
* Copying
This extension module is copyrighted free software by Guy Decoux
You can redistribute it and/or modify it under the same term as
Guy Decoux <>
Jump to Line
Something went wrong with that request. Please try again.