select open change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

SQLSTATE / CLASS 39 · EXTERNAL ROUTINE INVOCATION EXCEPTION

null_value_not_allowed

SQLSTATE
39004
Condition name
null_value_not_allowed
Class
External Routine Invocation Exception
Source macro
ERRCODE_E_R_I_E_NULL_VALUE_NOT_ALLOWED
Evidence
Definition only
Analysis & operational context

English SQLSTATE atlas: authored explanations and source/runtime evidence are separate from the manual definitions. View source ↗

<h1>39004</h1>

At a glance

39004 is null_value_not_allowed. The fixed definition is present, but the bounded PostgreSQL 18.6 call archive has no resolved report group for this code; diagnose the actual routine or extension boundary before assigning an operation.

Meaning

It identifies a routine-level NULL contract failure, but the fixed source scan does not identify which routine or wrapper emits it. The condition name alone cannot distinguish an argument, return, trigger, or extension boundary.

Diagnosis

Use the full diagnostics to locate the actual routine or extension, then inspect the deployed implementation for this SQLSTATE. The bounded archive is not an absence proof.

Response

Fix the NULL contract identified by the actual routine or wrapper, then recheck the operation. Without a confirmed emitting path, avoid code-specific transaction or retry claims.

Versions

The locked catalogue records this condition from 7.4 in the listed formal snapshots and 19beta3; fixed source coverage is PostgreSQL 18.6.

Sources

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

Source evidence

Evidence belongs to the frozen source and runtime versions listed here. It is not a runtime verification of the selected manual version.

39004 is null_value_not_allowed, a SQL Routine Exception condition defined in Class 39.

Method: Read the fixed errcodes row and macro.

src.errcodes.18.6

The fixed REL_18_6 call archive contains no resolved report group for 39004.

Method: Filter the archive by code and inspect concrete report groups.

Limits: This is a bounded archive result, not proof that no extension, wrapper, or older/newer source can emit it.

src.calls.REL_18_6

The locked catalogue records the condition from 7.4 and in the listed release snapshots, without identifying an introducing implementation.

Method: Use catalogue presence and history boundaries.

Limits: Definition presence does not identify the operation that rejected the NULL.

src.errcodes.18.6

Message templates

No extracted message template is attached to this condition.

Reproduction & repair cases

No reproduction case is attached to this condition.

Recorded runtime evidence

No runtime observation is attached to this entry.

Definition snapshot: english-manuals:28916b7df4f587bf4e864fbd576… · English manual source