select open change scope Open full search

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

SQLSTATE / CLASS 22 · DATA EXCEPTION

non_unique_keys_in_a_json_object

SQLSTATE
22037
Condition name
non_unique_keys_in_a_json_object
Class
Data Exception
Source macro
ERRCODE_NON_UNIQUE_KEYS_IN_A_JSON_OBJECT
Evidence
Definition only
Analysis & operational context

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

<h1>22037</h1>

At a glance

The locked condition names a non-unique-key error for a JSON object. No fixed PostgreSQL 18.6 emitting path was resolved in the bounded scan.

Meaning

The definition identifies non_unique_keys_in_a_json_object, but the bounded PostgreSQL 18.6 source review did not resolve a native 22037 emitter. This page therefore records the condition identity and diagnostic boundary without assigning a SQL/JSON constructor, parser, primary text, DETAIL, or HINT.

Diagnosis

If a deployment reports 22037, keep the complete primary, DETAIL, HINT, invoking SQL/JSON operation, and version together. Use that context to determine which object and duplicate-key policy emitted the condition; do not replace it with the related 22030 duplicate-key construction path.

Response

Follow the actual emitter's duplicate-key policy: normalize or reject repeated keys according to that operation's documented rule. If an ERROR occurred in an explicit transaction, roll back or roll back to the existing savepoint before retrying; autocommit can retry the corrected action.

Versions

The locked catalogue records this condition from 12.0. Only the PostgreSQL 18.6 definition row is fixed here; no native emitting path or natural runtime observation is claimed.

Sources

The fixed definition row is errcodes.txt#L222. The bounded source review did not resolve a native 22037 emitting path; the structured evidence record keeps that unknown scope explicit, and no natural runtime was run.

Source evidence

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

22037 is non_unique_keys_in_a_json_object in SQLSTATE Class 22.

Method: Read fixed definition.

src.errcodes.18.6

No fixed PostgreSQL 18.6 emitting path was resolved for 22037 in the bounded scan.

Method: Retain definition without inventing emitter.

Limits: Bounded scan does not prove no extension or historical path exists.

src.errcodes.18.6

The locked catalogue records 22037 from 12.0 without proving exact implementation introduction.

Method: Use catalogue boundary.

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.

Version history 1
  1. PG 11 → 12added

Definition snapshot: english-manuals:03444cfb9e26211b19ab5c129e9… · English manual source