pg_net
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pg_net | 0.20.5 | UTIL | Apache-2.0 | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 4080 | pg_net | No | Yes | Yes | Yes | No | No | net |
| Related | http pg_curl omni_httpc pg_graphql documentdb |
|---|
Package/source version 0.20.5 ships SQL/control version 0.20.4. PIGSTY 0.20.5 covers EL10 RPM and D12/D13/U24/U26 DEB for PostgreSQL 14-18; older PIGSTY platform cells remain on 0.9.2. shared_preload_libraries=pg_net is required.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.20.5 | 1817161514 | pg_net | - |
| RPM | PIGSTY | 0.20.5 | 1817161514 | pg_net_$v | - |
| DEB | PIGSTY | 0.20.5 | 1817161514 | postgresql-$v-pg-net | - |
Build
You can build the RPM / DEB packages for pg_net using pig build:
Install
You can install pg_net directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
Install the extension using pig or apt/yum/dnf:
Preload:
Create Extension:
Usage
Sources: official README, v0.20.3 release notes.
pg_net queues asynchronous HTTP and HTTPS requests from SQL. It creates the net schema, stores pending work in net.http_request_queue, and stores responses in net._http_response. A background worker uses libcurl to process queued requests.
The extension requires shared_preload_libraries = 'pg_net' and libcurl >= 7.83.
GET Request
net.http_get(url, params, headers, timeout_milliseconds) returns a bigint request id.
POST Request
Send one table row as JSON:
DELETE Request
net.http_delete(url, params, headers, timeout_milliseconds) is SECURITY DEFINER and returns a bigint request id.
Checking Responses
Failed requests can be identified from status_code and error_msg. The response table does not preserve every original request argument, so store request metadata separately if you need retry workflows.
Configuration
pg_net.batch_size, default200, limits how many queued requests the worker processes per cycle.pg_net.ttl, default6 hours, controls response retention.pg_net.database_name, defaultpostgres, selects the database where the worker runs.pg_net.username, default NULL, selects the worker connection user; NULL uses the bootstrap user.
Settings can be changed in postgresql.conf or with ALTER SYSTEM:
Changing pg_net.database_name or pg_net.username requires restarting the worker:
Caveats
- Pigsty metadata carries
pg_net0.20.3 for PostgreSQL 14-18, but local package notes say 0.20.3 is available only ond12,d13,el10,u24, andu26;el8,el9, andu22remain on 0.9.2 because of olderlibcurl. - Upstream documents PostgreSQL 12+ compatibility, but this catalog row is packaged for PostgreSQL 14-18.
pg_netsupports only one database per cluster throughpg_net.database_name.- v0.20.3 is a worker/maintenance release: it flushes pgstat counters for autovacuum visibility and reports worker activity to
pg_stat_activity; no new SQL request API was documented.
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)