pgpool_regclass
pgpool_regclass
pgpool : replacement for regclass
Overview
| ID | Extension | Package | Version | Category | License | Language |
|---|---|---|---|---|---|---|
| 5920 | pgpool_regclass | pgpool | 4.7.1 | ADMIN | PostgreSQL | C |
| Attribute | Has Binary | Has Library | Need Load | Has DDL | Relocatable | Trusted |
|---|---|---|---|---|---|---|
----d-- | No | No | No | Yes | no | no |
| Relationships | |
|---|---|
| See Also | pg_repack pg_rewrite pg_squeeze pg_dirtyread pgfincore pg_cooldown |
| Siblings | pgpool_adm pgpool_recovery |
Packages
| Type | Repo | Version | PG Major Compatibility | Package Pattern | Dependencies |
|---|---|---|---|---|---|
| EXT | PGDG | 4.7.1 | 18 17 16 15 14 | pgpool | - |
| RPM | PGDG | 4.7.1 | 18 17 16 15 14 | pgpool-II-pg$v-extensions | - |
| DEB | PGDG | 4.7.1 | 18 17 16 15 14 | postgresql-$v-pgpool2 | - |
| Linux / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
el8.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
el8.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
el9.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
el9.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
el10.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
el10.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
d12.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
d12.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
d13.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
d13.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
u22.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
u22.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
u24.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
u24.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
Source
Install
Make sure PGDG repo available:
pig repo add pgdg -u # add pgdg repo and update cacheInstall this extension with pig:
pig install pgpool; # install via package name, for the active PG version
pig install pgpool_regclass; # install by extension name, for the current active PG version
pig install pgpool_regclass -v 18; # install for PG 18
pig install pgpool_regclass -v 17; # install for PG 17
pig install pgpool_regclass -v 16; # install for PG 16
pig install pgpool_regclass -v 15; # install for PG 15
pig install pgpool_regclass -v 14; # install for PG 14Create this extension with:
CREATE EXTENSION pgpool_regclass;Usage
The pgpool_regclass extension provides a replacement regclass function used internally by Pgpool-II to handle relation name resolution across multiple backends.
Function
-- Resolve a relation name to its OID, similar to PostgreSQL's regclass cast
SELECT pgpool_regclass('my_table');
SELECT pgpool_regclass('my_schema.my_table');Purpose
In standard PostgreSQL, casting a string to regclass (e.g., 'my_table'::regclass) resolves the relation name to an OID. However, Pgpool-II needs to determine whether a SQL statement references a temporary table or a regular table to route queries correctly.
The pgpool_regclass function provides this resolution capability as a regular function call rather than a type cast, allowing Pgpool-II to:
- Determine if a referenced table exists on the backend
- Distinguish temporary tables from permanent tables for proper query routing
- Handle schema-qualified table names correctly across pooled connections
Notes
- This extension is primarily used internally by Pgpool-II and is not typically called directly by applications
- It should be installed on all PostgreSQL backend nodes managed by Pgpool-II
- For Pgpool-II 3.0+, this function helps with the
check_temp_tablefeature
Last updated on