PostgreSQL GIN support for arrays with partial match
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Restored contained operators, reworked index, fixed doc Dec 11, 2012
src Fix bug #1, when the query contains no trigrams. Oct 13, 2015
test Fix bug #1, when the query contains no trigrams. Oct 13, 2015
COPYING Added PGXN metadata, license Oct 3, 2012
META.json Version 1.3.1 Apr 7, 2018
Makefile Added information about build flags, #5 Feb 28, 2018
parray_gin.control Version 1.3.1 Apr 7, 2018

GIN partial array match for PostgreSQL

Extension parray_gin provides GIN index and operator support for arrays with partial match.

Extension supports PostgreSQL 9.1 through 10.


Please consult with doc/ for a function and operator reference.

On PGXN please click on extension from Extensions section to view reference.

Installing extension

To use an extension one must be built, installed into PostgreSQL directory and registered in a database.

Building extension

Using PGXN network

The easisest method to get and install an extension from PGXN network. PGXN client downloads and builds the extension.

	pgxn --pg_config <postgresql_install_dir>/bin/pg_config install parray_gin

PGXN client itself is available at github and can be installed with your favourite method, i.e. easy_install pgxnclient.

Using PGXS makefiles

C extension are best built and installed using PGXS. PGXS ensures that make is performed with needed compiler and flags. You only need GNU make and a compiler to build an extension on an almost any UNIX platform (Linux, Solaris, OS X).


	gmake PG_CONFIG=<postgresql_install_dir>/bin/pg_config

Installation (as superuser):

	gmake PG_CONFIG=<postgresql_install_dir>/bin/pg_config install

PostgreSQL server must be restarted.

To uninstall extension completely you may use this command (as superuser):

	gmake PG_CONFIG=<postgresql_install_dir>/bin/pg_config uninstall

Project contains SQL tests that can be launched on PostgreSQL with installed extension. Tests are performed on a dynamically created database with a specified user (with the appropriated permissions - create database, for example):

	gmake PG_CONFIG=<postgresql_install_dir>/bin/pg_config PGUSER=postgres installcheck

Sometimes it's needed to add platform-specific flags for building. For example, to build with ICU provided by homebrew you should add to Makefile:

	PG_CPPFLAGS = "-I/usr/local/opt/icu4c/include"
	SHLIB_LINK =  "-L/usr/local/opt/icu4c/lib"


Use this method if you have a precompiled extension and do not want to install this with help of PGXS. Or maybe you just do not have GNU make on a production server. Or if you use Windows (use MSVC 2008 for Postgres 9.1 and MSVC 2010 for Postgres 9.2).

Copy library to the PostgreSQL library directory:

	cp `<postgresql_install_dir>/bin/pg_config --pkglibdir` 

Copy control file to the extension directory:

	cp parray_gin.control `<postgresql_install_dir>/bin/pg_config --sharedir`/extension

Copy SQL prototypes file to the extension directory:

	cp parray_gin--<version>.sql `<postgresql_install_dir>/bin/pg_config --sharedir`/extension

To uninstall extension just remove files you copied before.

Creating extension in a database

Extension must be previously installed to a PostgreSQL directory.

Extension is created in a particular database (as superuser):

	create extension parray_gin;

It creates all the functions, operators and other stuff from extension. Note that you must restart a server if a previous library was already installed at the same place. In other words, always restart to be sure.

To drop an extension use:

	drop extension parray_gin cascade;

License information

You can use any code from this project under the terms of PostgreSQL License.

Please consult with the COPYING for license information.