informix_fdw

informix_fdw

informix_fdw : Foreign data wrapper for Informix access

Overview

ID Extension Package Version Category License Language
8670
informix_fdw
informix_fdw
0.6.3
FDW
PostgreSQL
C
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--s-d-r
No
Yes
No
Yes
yes
no

PGDG non-free (pgnf) only; no SQL-level extension dependency; runtime requires IBM Informix Client SDK (libifsql15a/libifasf15a/libifgen15a/libifos15a/libifgls)

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT
PGDG
0.6.3
18
17
16
15
14
informix_fdw -
RPM
PGDG
0.6.3
18
17
16
15
14
informix_fdw_$v -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64
PGDG 0.6.3
PGDG 0.6.3
PGDG 0.6.3
PGDG 0.6.3
PGDG 0.6.3
el8.aarch64
MISS
MISS
MISS
MISS
MISS
el9.x86_64
PGDG 0.6.3
PGDG 0.6.3
PGDG 0.6.3
PGDG 0.6.3
PGDG 0.6.3
el9.aarch64
MISS
MISS
MISS
MISS
MISS
el10.x86_64
PGDG 0.6.3
PGDG 0.6.3
PGDG 0.6.3
PGDG 0.6.3
PGDG 0.6.3
el10.aarch64
MISS
MISS
MISS
MISS
MISS
d12.x86_64
MISS
MISS
MISS
MISS
MISS
d12.aarch64
MISS
MISS
MISS
MISS
MISS
d13.x86_64
MISS
MISS
MISS
MISS
MISS
d13.aarch64
MISS
MISS
MISS
MISS
MISS
u22.x86_64
MISS
MISS
MISS
MISS
MISS
u22.aarch64
MISS
MISS
MISS
MISS
MISS
u24.x86_64
MISS
MISS
MISS
MISS
MISS
u24.aarch64
MISS
MISS
MISS
MISS
MISS
Package Version OS ORG SIZE File URL
informix_fdw_18 0.6.3 el8.x86_64 pgdg 61.3 KiB informix_fdw_18-0.6.3-1PGDG.rhel8.x86_64.rpm
informix_fdw_18 0.6.3 el9.x86_64 pgdg 59.8 KiB informix_fdw_18-0.6.3-1PGDG.rhel9.x86_64.rpm
informix_fdw_18 0.6.3 el10.x86_64 pgdg 60.6 KiB informix_fdw_18-0.6.3-1PGDG.rhel10.x86_64.rpm
Package Version OS ORG SIZE File URL
informix_fdw_17 0.6.3 el8.x86_64 pgdg 61.3 KiB informix_fdw_17-0.6.3-1PGDG.rhel8.x86_64.rpm
informix_fdw_17 0.6.3 el9.x86_64 pgdg 59.9 KiB informix_fdw_17-0.6.3-1PGDG.rhel9.x86_64.rpm
informix_fdw_17 0.6.3 el10.x86_64 pgdg 60.5 KiB informix_fdw_17-0.6.3-1PGDG.rhel10.x86_64.rpm
Package Version OS ORG SIZE File URL
informix_fdw_16 0.6.3 el8.x86_64 pgdg 61.3 KiB informix_fdw_16-0.6.3-1PGDG.rhel8.x86_64.rpm
informix_fdw_16 0.6.3 el9.x86_64 pgdg 59.8 KiB informix_fdw_16-0.6.3-1PGDG.rhel9.x86_64.rpm
informix_fdw_16 0.6.2 el9.x86_64 pgdg 59.5 KiB informix_fdw_16-0.6.2-2PGDG.rhel9.x86_64.rpm
informix_fdw_16 0.6.3 el10.x86_64 pgdg 60.6 KiB informix_fdw_16-0.6.3-1PGDG.rhel10.x86_64.rpm
informix_fdw_16 0.6.2 el10.x86_64 pgdg 60.2 KiB informix_fdw_16-0.6.2-2PGDG.rhel10.x86_64.rpm
Package Version OS ORG SIZE File URL
informix_fdw_15 0.6.3 el8.x86_64 pgdg 63.4 KiB informix_fdw_15-0.6.3-1PGDG.rhel8.x86_64.rpm
informix_fdw_15 0.6.3 el9.x86_64 pgdg 64.2 KiB informix_fdw_15-0.6.3-1PGDG.rhel9.x86_64.rpm
informix_fdw_15 0.6.2 el9.x86_64 pgdg 63.9 KiB informix_fdw_15-0.6.2-2PGDG.rhel9.x86_64.rpm
informix_fdw_15 0.6.3 el10.x86_64 pgdg 64.9 KiB informix_fdw_15-0.6.3-1PGDG.rhel10.x86_64.rpm
informix_fdw_15 0.6.2 el10.x86_64 pgdg 64.4 KiB informix_fdw_15-0.6.2-2PGDG.rhel10.x86_64.rpm
Package Version OS ORG SIZE File URL
informix_fdw_14 0.6.3 el8.x86_64 pgdg 63.4 KiB informix_fdw_14-0.6.3-1PGDG.rhel8.x86_64.rpm
informix_fdw_14 0.6.3 el9.x86_64 pgdg 64.2 KiB informix_fdw_14-0.6.3-1PGDG.rhel9.x86_64.rpm
informix_fdw_14 0.6.2 el9.x86_64 pgdg 63.8 KiB informix_fdw_14-0.6.2-2PGDG.rhel9.x86_64.rpm
informix_fdw_14 0.6.3 el10.x86_64 pgdg 64.9 KiB informix_fdw_14-0.6.3-1PGDG.rhel10.x86_64.rpm
informix_fdw_14 0.6.2 el10.x86_64 pgdg 64.5 KiB informix_fdw_14-0.6.2-2PGDG.rhel10.x86_64.rpm

Source

Install

Make sure PGDG repo available:

pig repo add pgdg -u    # add pgdg repo and update cache

Install this extension with pig:

pig install informix_fdw;		# install via package name, for the active PG version

pig install informix_fdw -v 18;   # install for PG 18
pig install informix_fdw -v 17;   # install for PG 17
pig install informix_fdw -v 16;   # install for PG 16
pig install informix_fdw -v 15;   # install for PG 15
pig install informix_fdw -v 14;   # install for PG 14

Create this extension with:

CREATE EXTENSION informix_fdw;

Usage

informix_fdw: Foreign data wrapper for Informix access

Create Server

CREATE EXTENSION informix_fdw;

CREATE SERVER informix_server
  FOREIGN DATA WRAPPER informix_fdw
  OPTIONS (
    informixserver 'informix_hostname',
    informixdir '/opt/informix/csdk'
  );

Server Options: informixserver (required, Informix server identifier from sqlhosts file), informixdir (required, path to Informix Client SDK), disable_predicate_pushdown (disable WHERE pushdown), gl_datetime (custom datetime format, default %iY-%m-%d %H:%M:%S), gl_date (custom date format, default %iY-%m-%d).

Create User Mapping

CREATE USER MAPPING FOR CURRENT_USER
  SERVER informix_server
  OPTIONS (username 'informix', password 'secret');

Create Foreign Table

CREATE FOREIGN TABLE remote_table (
  id bigint NOT NULL,
  name varchar(255),
  amount numeric(10,2),
  created timestamp
)
SERVER informix_server
OPTIONS (
  database 'mydb',
  table 'remote_table',
  client_locale 'en_US.utf8',
  db_locale 'en_US.819'
);

Table Options: database (required, remote database name), table or query (one required), client_locale (required, must match PostgreSQL server encoding), db_locale (required, should match Informix locale), disable_rowid (use updatable cursor instead of ROWID), enable_blobs (include if table contains BLOBs).

Use query instead of table for view-like access:

CREATE FOREIGN TABLE remote_view (
  id bigint,
  total numeric(10,2)
)
SERVER informix_server
OPTIONS (
  database 'mydb',
  query 'SELECT id, SUM(amount) AS total FROM orders GROUP BY id',
  client_locale 'en_US.utf8',
  db_locale 'en_US.819'
);

CRUD Operations

SELECT * FROM remote_table WHERE id > 100;
INSERT INTO remote_table (id, name, amount) VALUES (1, 'test', 99.99);
UPDATE remote_table SET amount = 100.00 WHERE id = 1;
DELETE FROM remote_table WHERE id = 1;

Supported Data Types

Queries: BOOLEAN, DATE, DATETIME, INTERVAL, SMALLINT, INTEGER, BIGINT, SERIAL, VARCHAR, CHARACTER, TEXT, NUMERIC, MONEY.

DML operations: SERIAL, INTEGER, BIGINT, INTERVAL, TEXT, BYTEA, VARCHAR, NVARCHAR, TIMESTAMP, DATE, NUMERIC, MONEY.

Last updated on