38001 — containing_sql_not_permitted
38001
At a glance
The fixed definition records this Class 38 member, but the resolved PostgreSQL 18.6 core/contrib scan found no report group for it. It is a standard routine boundary condition, not a confirmed PostgreSQL message.
| Field | Value |
|---|---|
| SQLSTATE | 38001 |
| Condition | containing_sql_not_permitted |
| Status | active |
| Known present by | 7.4 |
| Locked snapshots | 9.0.23, 9.1.24, 9.2.24, 9.3.25, 9.4.26, 9.5.25, 9.6.24, 10.23, 11.22, 12.22, 13.23, 14.24, 15.19, 16.15, 17.11, 18.6, 19beta3 |
| Macros | ERRCODE_E_R_E_CONTAINING_SQL_NOT_PERMITTED |
| Aliases | — |
Meaning
The member concerns SQL contained in an external routine when the owning implementation forbids it. The producer may be an external routine engine, extension, ECPG layer, driver, or remote server.
Messages
No fixed PostgreSQL message variant was adopted because the bounded scan did not resolve a native report group.
Diagnosis
Keep the exact member message, routine owner, language, and phase. Do not derive a prohibition from PostgreSQL VOLATILE/STABLE or from a routine name.
Response
Follow the enforcing implementation’s declaration or caller contract. No native PostgreSQL retry or repair mechanism was established by the locked scan.
Versions
The locked catalogue places this condition at least by PostgreSQL 7.4. The facts block lists the published snapshots; source-path status is limited to the fixed PostgreSQL 18.6 evidence below.
Related
Sources
See the fixed source links and message limits in the structured evidence record.