hstore_plruby
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
plruby | 1.0 | LANG | MIT | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 3160 | plruby | No | Yes | No | Yes | No | No | pg_catalog |
| 3161 | jsonb_plruby | No | Yes | No | Yes | No | Yes | - |
| 3162 | hstore_plruby | No | Yes | No | Yes | No | Yes | - |
| 3163 | ltree_plruby | No | Yes | No | Yes | No | Yes | - |
| Related | hstore plruby hstore plruby jsonb_plruby ltree_plruby hstore_plperl hstore_plpython3u |
|---|
Extension control default_version is 1.0; shipped in the PL/Ruby 2.5.0 package.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0 | 1817161514 | plruby | hstore, plruby |
| RPM | PIGSTY | 2.5.0 | 1817161514 | plruby_$v | ruby-libs |
| DEB | PIGSTY | 2.5.0 | 1817161514 | postgresql-$v-plruby | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| el8.aarch64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| el9.x86_64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| el9.aarch64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| el10.x86_64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| el10.aarch64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| d12.x86_64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| d12.aarch64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| d13.x86_64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| d13.aarch64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| u22.x86_64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| u22.aarch64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| u24.x86_64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| u24.aarch64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| u26.x86_64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
| u26.aarch64 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 | PIGSTY 2.5.0 |
Build
You can build the RPM / DEB packages for plruby using pig build:
pig build pkg plruby # build RPM / DEB packages
Install
You can install plruby directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
pig repo add pgsql -u # Add repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install plruby; # Install for current active PG version
pig ext install -y plruby -v 18 # PG 18
pig ext install -y plruby -v 17 # PG 17
pig ext install -y plruby -v 16 # PG 16
pig ext install -y plruby -v 15 # PG 15
pig ext install -y plruby -v 14 # PG 14
dnf install -y plruby_18 # PG 18
dnf install -y plruby_17 # PG 17
dnf install -y plruby_16 # PG 16
dnf install -y plruby_15 # PG 15
dnf install -y plruby_14 # PG 14
apt install -y postgresql-18-plruby # PG 18
apt install -y postgresql-17-plruby # PG 17
apt install -y postgresql-16-plruby # PG 16
apt install -y postgresql-15-plruby # PG 15
apt install -y postgresql-14-plruby # PG 14
Create Extension:
CREATE EXTENSION hstore_plruby CASCADE; -- requires: hstore, plruby
Usage
Sources:
hstore_plruby installs a PostgreSQL transform between hstore and Ruby Hash values for the plruby language. Keys become Ruby strings and values become strings or nil; a compatible Ruby hash can be returned directly as hstore.
Install and Use the Transform
CREATE EXTENSION hstore;
CREATE EXTENSION plruby;
CREATE EXTENSION hstore_plruby;
CREATE FUNCTION ruby_add_hstore_key(hstore)
RETURNS hstore
LANGUAGE plruby
TRANSFORM FOR TYPE hstore
AS $$
value = args[0]
value['processed'] = 'yes'
value
$$;
SELECT ruby_add_hstore_key('id=>42'::hstore);
The transform is used only by functions that declare TRANSFORM FOR TYPE hstore.
Objects and Caveats
hstore_to_plruby(internal)implements SQL-to-Ruby conversion.plruby_to_hstore(internal)implements Ruby-to-SQL conversion.- The extension version is
1.0, it requires bothhstoreandplruby, and it is relocatable. hstoreis a flat string-to-string-or-NULL map. It does not preserve nested Ruby hashes, arrays, or typed numeric values; usejsonb_plrubywhen those shapes matter.- PL/Ruby remains untrusted. Installing this transform does not sandbox Ruby code or reduce the privileges required to create PL/Ruby functions.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.