Skip to content

38004 — reading_sql_data_not_permitted

Source-backed reference for PostgreSQL SQLSTATE 38004.

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.

38000, 2F000

Sources

See the fixed source links and message limits in the structured evidence record.