跳转到主要内容

pre_prepare

Pre Prepare your Statement server side

preprepare : Pre Prepare your Statement server side

Overview

ID Extension Package Version Category License Language
5170 pre_prepare preprepare 0.9 ADMIN PostgreSQL C
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--s-d-r No Yes No Yes yes no

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT MIXED 0.9 18 17 16 15 14 preprepare -
RPM PIGSTY 0.9 18 17 16 15 14 preprepare_$v -
DEB PGDG 0.9 18 17 16 15 14 postgresql-$v-preprepare -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9
el8.aarch64 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9
el9.x86_64 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9
el9.aarch64 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9
el10.x86_64 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9
el10.aarch64 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9 PIGSTY 0.9
d12.x86_64 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9
d12.aarch64 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9
d13.x86_64 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9
d13.aarch64 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9
u22.x86_64 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9
u22.aarch64 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9
u24.x86_64 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9
u24.aarch64 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9
u26.x86_64 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9
u26.aarch64 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9 PGDG 0.9
Package Version OS ORG SIZE File URL
preprepare_18 0.9 el8.x86_64 pigsty 13.4 KiB preprepare_18-0.9-2PGSTY.el8.x86_64.rpm
preprepare_18 0.9 el8.aarch64 pigsty 13.6 KiB preprepare_18-0.9-2PGSTY.el8.aarch64.rpm
preprepare_18 0.9 el9.x86_64 pigsty 13.3 KiB preprepare_18-0.9-2PGSTY.el9.x86_64.rpm
preprepare_18 0.9 el9.aarch64 pigsty 13.3 KiB preprepare_18-0.9-2PGSTY.el9.aarch64.rpm
preprepare_18 0.9 el10.x86_64 pigsty 13.3 KiB preprepare_18-0.9-2PGSTY.el10.x86_64.rpm
preprepare_18 0.9 el10.aarch64 pigsty 13.5 KiB preprepare_18-0.9-2PGSTY.el10.aarch64.rpm
postgresql-18-preprepare 0.9 d12.x86_64 pgdg 16.8 KiB postgresql-18-preprepare_0.9-10.pgdg12+1_amd64.deb
postgresql-18-preprepare 0.9 d12.aarch64 pgdg 16.8 KiB postgresql-18-preprepare_0.9-10.pgdg12+1_arm64.deb
postgresql-18-preprepare 0.9 d13.x86_64 pgdg 16.8 KiB postgresql-18-preprepare_0.9-10.pgdg13+1_amd64.deb
postgresql-18-preprepare 0.9 d13.aarch64 pgdg 16.9 KiB postgresql-18-preprepare_0.9-10.pgdg13+1_arm64.deb
postgresql-18-preprepare 0.9 u22.x86_64 pgdg 17.3 KiB postgresql-18-preprepare_0.9-10.pgdg22.04+1_amd64.deb
postgresql-18-preprepare 0.9 u22.aarch64 pgdg 17.3 KiB postgresql-18-preprepare_0.9-10.pgdg22.04+1_arm64.deb
postgresql-18-preprepare 0.9 u24.x86_64 pgdg 16.4 KiB postgresql-18-preprepare_0.9-10.pgdg24.04+1_amd64.deb
postgresql-18-preprepare 0.9 u24.aarch64 pgdg 16.4 KiB postgresql-18-preprepare_0.9-10.pgdg24.04+1_arm64.deb
postgresql-18-preprepare 0.9 u26.x86_64 pgdg 16.5 KiB postgresql-18-preprepare_0.9-10.pgdg26.04+1_amd64.deb
postgresql-18-preprepare 0.9 u26.aarch64 pgdg 16.5 KiB postgresql-18-preprepare_0.9-10.pgdg26.04+1_arm64.deb
Package Version OS ORG SIZE File URL
preprepare_17 0.9 el8.x86_64 pigsty 13.4 KiB preprepare_17-0.9-2PGSTY.el8.x86_64.rpm
preprepare_17 0.9 el8.aarch64 pigsty 13.6 KiB preprepare_17-0.9-2PGSTY.el8.aarch64.rpm
preprepare_17 0.9 el9.x86_64 pigsty 13.3 KiB preprepare_17-0.9-2PGSTY.el9.x86_64.rpm
preprepare_17 0.9 el9.aarch64 pigsty 13.3 KiB preprepare_17-0.9-2PGSTY.el9.aarch64.rpm
preprepare_17 0.9 el10.x86_64 pigsty 13.3 KiB preprepare_17-0.9-2PGSTY.el10.x86_64.rpm
preprepare_17 0.9 el10.aarch64 pigsty 13.5 KiB preprepare_17-0.9-2PGSTY.el10.aarch64.rpm
postgresql-17-preprepare 0.9 d12.x86_64 pgdg 16.8 KiB postgresql-17-preprepare_0.9-10.pgdg12+1_amd64.deb
postgresql-17-preprepare 0.9 d12.aarch64 pgdg 16.8 KiB postgresql-17-preprepare_0.9-10.pgdg12+1_arm64.deb
postgresql-17-preprepare 0.9 d13.x86_64 pgdg 16.8 KiB postgresql-17-preprepare_0.9-10.pgdg13+1_amd64.deb
postgresql-17-preprepare 0.9 d13.aarch64 pgdg 16.9 KiB postgresql-17-preprepare_0.9-10.pgdg13+1_arm64.deb
postgresql-17-preprepare 0.9 u22.x86_64 pgdg 18.2 KiB postgresql-17-preprepare_0.9-10.pgdg22.04+1_amd64.deb
postgresql-17-preprepare 0.9 u22.aarch64 pgdg 18.1 KiB postgresql-17-preprepare_0.9-10.pgdg22.04+1_arm64.deb
postgresql-17-preprepare 0.9 u24.x86_64 pgdg 16.4 KiB postgresql-17-preprepare_0.9-10.pgdg24.04+1_amd64.deb
postgresql-17-preprepare 0.9 u24.aarch64 pgdg 16.3 KiB postgresql-17-preprepare_0.9-10.pgdg24.04+1_arm64.deb
postgresql-17-preprepare 0.9 u26.x86_64 pgdg 16.5 KiB postgresql-17-preprepare_0.9-10.pgdg26.04+1_amd64.deb
postgresql-17-preprepare 0.9 u26.aarch64 pgdg 16.5 KiB postgresql-17-preprepare_0.9-10.pgdg26.04+1_arm64.deb
Package Version OS ORG SIZE File URL
preprepare_16 0.9 el8.x86_64 pigsty 13.4 KiB preprepare_16-0.9-2PGSTY.el8.x86_64.rpm
preprepare_16 0.9 el8.aarch64 pigsty 13.6 KiB preprepare_16-0.9-2PGSTY.el8.aarch64.rpm
preprepare_16 0.9 el9.x86_64 pigsty 13.3 KiB preprepare_16-0.9-2PGSTY.el9.x86_64.rpm
preprepare_16 0.9 el9.aarch64 pigsty 13.3 KiB preprepare_16-0.9-2PGSTY.el9.aarch64.rpm
preprepare_16 0.9 el10.x86_64 pigsty 13.3 KiB preprepare_16-0.9-2PGSTY.el10.x86_64.rpm
preprepare_16 0.9 el10.aarch64 pigsty 13.5 KiB preprepare_16-0.9-2PGSTY.el10.aarch64.rpm
postgresql-16-preprepare 0.9 d12.x86_64 pgdg 16.8 KiB postgresql-16-preprepare_0.9-10.pgdg12+1_amd64.deb
postgresql-16-preprepare 0.9 d12.aarch64 pgdg 16.8 KiB postgresql-16-preprepare_0.9-10.pgdg12+1_arm64.deb
postgresql-16-preprepare 0.9 d13.x86_64 pgdg 16.8 KiB postgresql-16-preprepare_0.9-10.pgdg13+1_amd64.deb
postgresql-16-preprepare 0.9 d13.aarch64 pgdg 16.8 KiB postgresql-16-preprepare_0.9-10.pgdg13+1_arm64.deb
postgresql-16-preprepare 0.9 u22.x86_64 pgdg 18.2 KiB postgresql-16-preprepare_0.9-10.pgdg22.04+1_amd64.deb
postgresql-16-preprepare 0.9 u22.aarch64 pgdg 18.2 KiB postgresql-16-preprepare_0.9-10.pgdg22.04+1_arm64.deb
postgresql-16-preprepare 0.9 u24.x86_64 pgdg 16.4 KiB postgresql-16-preprepare_0.9-10.pgdg24.04+1_amd64.deb
postgresql-16-preprepare 0.9 u24.aarch64 pgdg 16.4 KiB postgresql-16-preprepare_0.9-10.pgdg24.04+1_arm64.deb
postgresql-16-preprepare 0.9 u26.x86_64 pgdg 16.5 KiB postgresql-16-preprepare_0.9-10.pgdg26.04+1_amd64.deb
postgresql-16-preprepare 0.9 u26.aarch64 pgdg 16.5 KiB postgresql-16-preprepare_0.9-10.pgdg26.04+1_arm64.deb
Package Version OS ORG SIZE File URL
preprepare_15 0.9 el8.x86_64 pigsty 13.4 KiB preprepare_15-0.9-2PGSTY.el8.x86_64.rpm
preprepare_15 0.9 el8.aarch64 pigsty 13.6 KiB preprepare_15-0.9-2PGSTY.el8.aarch64.rpm
preprepare_15 0.9 el9.x86_64 pigsty 13.3 KiB preprepare_15-0.9-2PGSTY.el9.x86_64.rpm
preprepare_15 0.9 el9.aarch64 pigsty 13.3 KiB preprepare_15-0.9-2PGSTY.el9.aarch64.rpm
preprepare_15 0.9 el10.x86_64 pigsty 13.3 KiB preprepare_15-0.9-2PGSTY.el10.x86_64.rpm
preprepare_15 0.9 el10.aarch64 pigsty 13.5 KiB preprepare_15-0.9-2PGSTY.el10.aarch64.rpm
postgresql-15-preprepare 0.9 d12.x86_64 pgdg 16.8 KiB postgresql-15-preprepare_0.9-10.pgdg12+1_amd64.deb
postgresql-15-preprepare 0.9 d12.aarch64 pgdg 16.8 KiB postgresql-15-preprepare_0.9-10.pgdg12+1_arm64.deb
postgresql-15-preprepare 0.9 d13.x86_64 pgdg 16.8 KiB postgresql-15-preprepare_0.9-10.pgdg13+1_amd64.deb
postgresql-15-preprepare 0.9 d13.aarch64 pgdg 16.9 KiB postgresql-15-preprepare_0.9-10.pgdg13+1_arm64.deb
postgresql-15-preprepare 0.9 u22.x86_64 pgdg 18.1 KiB postgresql-15-preprepare_0.9-10.pgdg22.04+1_amd64.deb
postgresql-15-preprepare 0.9 u22.aarch64 pgdg 18.1 KiB postgresql-15-preprepare_0.9-10.pgdg22.04+1_arm64.deb
postgresql-15-preprepare 0.9 u24.x86_64 pgdg 16.4 KiB postgresql-15-preprepare_0.9-10.pgdg24.04+1_amd64.deb
postgresql-15-preprepare 0.9 u24.aarch64 pgdg 16.4 KiB postgresql-15-preprepare_0.9-10.pgdg24.04+1_arm64.deb
postgresql-15-preprepare 0.9 u26.x86_64 pgdg 16.5 KiB postgresql-15-preprepare_0.9-10.pgdg26.04+1_amd64.deb
postgresql-15-preprepare 0.9 u26.aarch64 pgdg 16.5 KiB postgresql-15-preprepare_0.9-10.pgdg26.04+1_arm64.deb
Package Version OS ORG SIZE File URL
preprepare_14 0.9 el8.x86_64 pigsty 13.4 KiB preprepare_14-0.9-2PGSTY.el8.x86_64.rpm
preprepare_14 0.9 el8.aarch64 pigsty 13.6 KiB preprepare_14-0.9-2PGSTY.el8.aarch64.rpm
preprepare_14 0.9 el9.x86_64 pigsty 13.3 KiB preprepare_14-0.9-2PGSTY.el9.x86_64.rpm
preprepare_14 0.9 el9.aarch64 pigsty 13.3 KiB preprepare_14-0.9-2PGSTY.el9.aarch64.rpm
preprepare_14 0.9 el10.x86_64 pigsty 13.3 KiB preprepare_14-0.9-2PGSTY.el10.x86_64.rpm
preprepare_14 0.9 el10.aarch64 pigsty 13.5 KiB preprepare_14-0.9-2PGSTY.el10.aarch64.rpm
postgresql-14-preprepare 0.9 d12.x86_64 pgdg 16.7 KiB postgresql-14-preprepare_0.9-10.pgdg12+1_amd64.deb
postgresql-14-preprepare 0.9 d12.aarch64 pgdg 16.8 KiB postgresql-14-preprepare_0.9-10.pgdg12+1_arm64.deb
postgresql-14-preprepare 0.9 d13.x86_64 pgdg 16.7 KiB postgresql-14-preprepare_0.9-10.pgdg13+1_amd64.deb
postgresql-14-preprepare 0.9 d13.aarch64 pgdg 16.8 KiB postgresql-14-preprepare_0.9-10.pgdg13+1_arm64.deb
postgresql-14-preprepare 0.9 u22.x86_64 pgdg 18.1 KiB postgresql-14-preprepare_0.9-10.pgdg22.04+1_amd64.deb
postgresql-14-preprepare 0.9 u22.aarch64 pgdg 18.1 KiB postgresql-14-preprepare_0.9-10.pgdg22.04+1_arm64.deb
postgresql-14-preprepare 0.9 u24.x86_64 pgdg 16.3 KiB postgresql-14-preprepare_0.9-10.pgdg24.04+1_amd64.deb
postgresql-14-preprepare 0.9 u24.aarch64 pgdg 16.3 KiB postgresql-14-preprepare_0.9-10.pgdg24.04+1_arm64.deb
postgresql-14-preprepare 0.9 u26.x86_64 pgdg 16.5 KiB postgresql-14-preprepare_0.9-10.pgdg26.04+1_amd64.deb
postgresql-14-preprepare 0.9 u26.aarch64 pgdg 16.5 KiB postgresql-14-preprepare_0.9-10.pgdg26.04+1_arm64.deb

Source

pig build pkg preprepare;		# build rpm

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install preprepare;		# install via package name, for the active PG version
pig install pre_prepare;		# install by extension name, for the current active PG version

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

Create this extension with:

CREATE EXTENSION pre_prepare;

Usage

pre_prepare: Pre Prepare your Statement server side

pre_prepare automatically prepares SQL statements at connection time so clients can directly use EXECUTE without calling PREPARE first.

Setup

Configure in postgresql.conf:

preprepare.relation = 'preprepare.statements'
preprepare.at_init = on    -- auto-prepare on connection (requires local_preload_libraries)

Create a table to store statements:

CREATE TABLE preprepare.statements (name text PRIMARY KEY, statement text);

Insert statements (include the full PREPARE syntax):

INSERT INTO preprepare.statements VALUES ('test', 'prepare test as select 1');

Functions

prepare_all() – Prepare all statements from the configured relation:

SELECT prepare_all();

prepare_all('schema.table') – Prepare statements from a specific table:

SELECT prepare_all('public.expensive_planning');

discard() – Like DISCARD ALL but without DEALLOCATE ALL (preserves prepared statements):

SELECT discard();

With PgBouncer

Set connect_query to auto-prepare on each server connection:

[databases]
foo = port=5432 connect_query='SELECT prepare_all();'

Avoid using DISCARD ALL as your reset_query (it would deallocate the prepared statements).