38004 — reading_sql_data_not_permitted
38004
At a glance
The Class 38 member is a standard reading-data restriction, but the bounded PostgreSQL 18.6 core/contrib scan found no resolved report group. It should remain separate from 2F004.
| Field | Value |
|---|---|
| SQLSTATE | 38004 |
| Condition | reading_sql_data_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_READING_SQL_DATA_NOT_PERMITTED |
| Aliases | — |
Meaning
Only the enforcing external routine implementation can identify the declaration, read operation, and message fields. The catalogue identity does not prove a backend language rule.
Messages
No fixed PostgreSQL message variant was adopted because the bounded scan did not resolve a native report group.
Diagnosis
Record the routine owner and access declaration, then read its fixed source or protocol mapping. If the server returned 2F004 instead, follow that member and its owner.
Response
Adjust the external routine contract or call only as documented. Do not add a blanket retry for a rejected read.
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.