↑↓ select↵ open⌫ change scopeOpen full search

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

Wiki / SQLSTATE

42P21 — Collation mismatch

42P21 (collation_mismatch) Different collation choices meet where PostgreSQL requires one compatible result.

English manual coverage begins with PostgreSQL 8.1. Source history and runtime observations have their own recorded version boundaries.

Reading PG 18·Select a recorded version

aliases
Unknown
class name
Syntax Error or Access Rule Violation
condition name
collation_mismatch
lang
en
sqlstate
42P21

Definition PG 18

42P21 — Collation mismatch

At a glance {#at-a-glance}

42P21 (collation_mismatch) Different collation choices meet where PostgreSQL requires one compatible result.

Meaning {#meaning}

42P21 is raised when a fixed-source path needs one compatible collation but has incompatible choices. Implicit choices are tracked as COLLATE_CONFLICT and may be returned as InvalidOid when the caller permits no common collation; a caller that requires a collation is where the implicit mismatch becomes an ERROR. Explicit COLLATE conflicts fail immediately. The same condition also covers recursive CTE output, inherited or child-column definitions, and foreign-key key-column compatibility.

Diagnosis {#diagnosis}

For an implicit-collation message, keep both names and inspect whether the caller requested a common collation; differing implicit operands do not all raise 42P21 immediately. For an explicit-collation message, find the two COLLATE clauses and make the intended choice consistent. In a recursive query compare the non-recursive term with the overall column collation. For inheritance or partitioned child errors compare the parent and child column definitions. For a foreign key compare the referencing and referenced key columns: fixed source permits different collations when both are deterministic, but if either is nondeterministic the two collations must be the same. Preserve the DETAIL names rather than treating this as a generic text-cast problem.

Response {#response}

Apply one deliberate COLLATE at the expression boundary for an expression conflict, or align the explicit clauses and recursive non-recursive term. Align inherited or child column definitions before rerunning DDL. For a foreign key, choose compatible key collations and satisfy the stricter same-collation rule whenever either side is nondeterministic; then recheck equality and index semantics. If this ERROR occurs inside an explicit transaction, issue ROLLBACK or ROLLBACK TO a pre-error savepoint before the corrected statement; autocommit can retry after returning to idle.

Messages {#messages}

Representative fixed-source messages include:

  • ERROR message: collation mismatch between implicit collations "%s" and "%s"; HINT: You can choose the collation by applying the COLLATE clause to one or both expressions.
  • ERROR message: collation mismatch between explicit collations "%s" and "%s"
  • ERROR message: recursive query "%s" column %d has collation "%s" in non-recursive term but collation "%s" overall; HINT: Use the COLLATE clause to set the collation of the non-recursive term.
  • ERROR message: column "%s" has a collation conflict; DETAIL: "%s" versus "%s"
  • ERROR message: inherited column "%s" has a collation conflict; DETAIL: "%s" versus "%s"
  • ERROR message: child table "%s" has different collation for column "%s"; DETAIL: "%s" versus "%s"
  • ERROR message: foreign key constraint "%s" cannot be implemented; DETAIL: Key columns "%s" of the referencing table and "%s" of the referenced table have incompatible collations: "%s" and "%s". If either collation is nondeterministic, then both collations have to be the same.

Placeholders are filled by the actual object, column, or parameter.

Versions {#versions}

The locked catalogue shows this condition by PostgreSQL 9.1.0; behavior here is fixed to PostgreSQL 18.6 source. Catalogue presence is a range boundary, not proof that every message or feature began in that release.

Related {#related}

Sources {#sources}

Source messages, line anchors, and evidence limits are recorded in authored evidence.

Compare versions

SQLSTATE evidence and recorded runtime versions

claims · identity.class-and-condition
{
  "claim_id": "identity.class-and-condition",
  "limits": "Identity does not enumerate all source branches or client failures.",
  "method": "Read fixed REL_18_6 errcodes.txt and locked facts.",
  "position": 0,
  "runtime": [],
  "sources": [
    "src.errcodes.42P21.18.6"
  ],
  "statement": "42P21 is the collation_mismatch condition in Class 42."
}
claims · mechanism.selected-source-path
{
  "claim_id": "mechanism.selected-source-path",
  "limits": "Representative confirmed core paths only; not exhaustive historical or extension coverage.",
  "method": "Read complete parse_collate.c derivation context and the selected resolved report groups in parse_cte.c and tablecmds.c.",
  "position": 1,
  "runtime": [],
  "sources": [
    "src.call.42P21.69245d264e1d0e386e33036f",
    "src.call.42P21.0ba27778e76c3d44b1cc79f6",
    "src.call.42P21.93a028fdb350e0d054f123d8",
    "src.call.42P21.16107e45585553ed56b18241",
    "src.call.42P21.5fcad21fbefb1ae15acf4c73",
    "src.call.42P21.ef5edd918af762963c8e072c",
    "src.call.42P21.04a0360be247ab8ca050e826",
    "src.context.42P21.parse_collate.common"
  ],
  "statement": "Selected fixed 18.6 paths reject explicit collation conflicts immediately, emit implicit conflicts only when a caller requires one common collation, and check recursive output, inherited or child columns, and foreign-key collation compatibility."
}
claims · boundary.implicit-none-ok
{
  "claim_id": "boundary.implicit-none-ok",
  "limits": "This is source control-flow evidence, not a natural runtime observation.",
  "method": "Read select_common_collation and the COLLATE_CONFLICT/COLLATE_EXPLICIT branches in fixed parse_collate.c.",
  "position": 2,
  "runtime": [],
  "sources": [
    "src.context.42P21.parse_collate.common"
  ],
  "statement": "select_common_collation(..., none_ok=true) may return InvalidOid while retaining an implicit COLLATE_CONFLICT; a later caller that requires a collation can then report a separate indeterminate-collation condition."
}
claims · versions.catalogue-boundary
{
  "claim_id": "versions.catalogue-boundary",
  "limits": "First observed release is a lower bound, not precise behavioral introduction.",
  "method": "Read locked catalogue facts and definition snapshot.",
  "position": 3,
  "runtime": [],
  "sources": [
    "src.errcodes.42P21.18.6"
  ],
  "statement": "Locked catalogue snapshots show this condition by PostgreSQL 9.1.0; source behavior here is fixed at PostgreSQL 18.6."
}
messages · message.variant-1
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-1",
  "path": "",
  "position": 0,
  "raw": {
    "detail_templates": [],
    "hint_templates": [
      "You can choose the collation by applying the COLLATE clause to one or both expressions."
    ],
    "id": "message.variant-1",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "collation mismatch between implicit collations \"%s\" and \"%s\"",
    "roles": [
      {
        "role": "errmsg",
        "template": "collation mismatch between implicit collations \"%s\" and \"%s\""
      },
      {
        "role": "errhint",
        "template": "You can choose the collation by applying the COLLATE clause to one or both expressions."
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P21.69245d264e1d0e386e33036f"
    ],
    "sqlstate": "42P21"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P21.69245d264e1d0e386e33036f"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "collation mismatch between implicit collations \" \" and \" \"",
      "position": 0,
      "role": "",
      "template": "collation mismatch between implicit collations \"%s\" and \"%s\""
    },
    {
      "kind": "hint",
      "literal": "You can choose the collation by applying the COLLATE clause to one or both expressions.",
      "position": 1,
      "role": "",
      "template": "You can choose the collation by applying the COLLATE clause to one or both expressions."
    },
    {
      "kind": "primary",
      "literal": "You can choose the collation by applying the COLLATE clause to one or both expressions.",
      "position": 2,
      "role": "errhint",
      "template": "You can choose the collation by applying the COLLATE clause to one or both expressions."
    }
  ]
}
messages · message.variant-2
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-2",
  "path": "",
  "position": 1,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-2",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "collation mismatch between explicit collations \"%s\" and \"%s\"",
    "roles": [
      {
        "role": "errmsg",
        "template": "collation mismatch between explicit collations \"%s\" and \"%s\""
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P21.0ba27778e76c3d44b1cc79f6"
    ],
    "sqlstate": "42P21"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P21.0ba27778e76c3d44b1cc79f6"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "collation mismatch between explicit collations \" \" and \" \"",
      "position": 0,
      "role": "",
      "template": "collation mismatch between explicit collations \"%s\" and \"%s\""
    }
  ]
}
messages · message.variant-3
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-3",
  "path": "",
  "position": 2,
  "raw": {
    "detail_templates": [],
    "hint_templates": [
      "Use the COLLATE clause to set the collation of the non-recursive term."
    ],
    "id": "message.variant-3",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term but collation \"%s\" overall",
    "roles": [
      {
        "role": "errmsg",
        "template": "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term but collation \"%s\" overall"
      },
      {
        "role": "errhint",
        "template": "Use the COLLATE clause to set the collation of the non-recursive term."
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P21.93a028fdb350e0d054f123d8"
    ],
    "sqlstate": "42P21"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P21.93a028fdb350e0d054f123d8"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "recursive query \" \" column has collation \" \" in non-recursive term but collation \" \" overall",
      "position": 0,
      "role": "",
      "template": "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term but collation \"%s\" overall"
    },
    {
      "kind": "hint",
      "literal": "Use the COLLATE clause to set the collation of the non-recursive term.",
      "position": 1,
      "role": "",
      "template": "Use the COLLATE clause to set the collation of the non-recursive term."
    },
    {
      "kind": "primary",
      "literal": "Use the COLLATE clause to set the collation of the non-recursive term.",
      "position": 2,
      "role": "errhint",
      "template": "Use the COLLATE clause to set the collation of the non-recursive term."
    }
  ]
}
messages · message.variant-4
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-4",
  "path": "",
  "position": 3,
  "raw": {
    "detail_templates": [
      "\"%s\" versus \"%s\""
    ],
    "hint_templates": [],
    "id": "message.variant-4",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "column \"%s\" has a collation conflict",
    "roles": [
      {
        "role": "errmsg",
        "template": "column \"%s\" has a collation conflict"
      },
      {
        "role": "errdetail",
        "template": "\"%s\" versus \"%s\""
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P21.16107e45585553ed56b18241"
    ],
    "sqlstate": "42P21"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P21.16107e45585553ed56b18241"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "column \" \" has a collation conflict",
      "position": 0,
      "role": "",
      "template": "column \"%s\" has a collation conflict"
    },
    {
      "kind": "detail",
      "literal": "\" \" versus \" \"",
      "position": 1,
      "role": "",
      "template": "\"%s\" versus \"%s\""
    },
    {
      "kind": "primary",
      "literal": "\" \" versus \" \"",
      "position": 2,
      "role": "errdetail",
      "template": "\"%s\" versus \"%s\""
    }
  ]
}
messages · message.variant-5
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-5",
  "path": "",
  "position": 4,
  "raw": {
    "detail_templates": [
      "\"%s\" versus \"%s\""
    ],
    "hint_templates": [],
    "id": "message.variant-5",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "inherited column \"%s\" has a collation conflict",
    "roles": [
      {
        "role": "errmsg",
        "template": "inherited column \"%s\" has a collation conflict"
      },
      {
        "role": "errdetail",
        "template": "\"%s\" versus \"%s\""
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P21.5fcad21fbefb1ae15acf4c73"
    ],
    "sqlstate": "42P21"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P21.5fcad21fbefb1ae15acf4c73"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "inherited column \" \" has a collation conflict",
      "position": 0,
      "role": "",
      "template": "inherited column \"%s\" has a collation conflict"
    },
    {
      "kind": "detail",
      "literal": "\" \" versus \" \"",
      "position": 1,
      "role": "",
      "template": "\"%s\" versus \"%s\""
    },
    {
      "kind": "primary",
      "literal": "\" \" versus \" \"",
      "position": 2,
      "role": "errdetail",
      "template": "\"%s\" versus \"%s\""
    }
  ]
}
messages · message.variant-6
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-6",
  "path": "",
  "position": 5,
  "raw": {
    "detail_templates": [
      "\"%s\" versus \"%s\""
    ],
    "hint_templates": [],
    "id": "message.variant-6",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "child table \"%s\" has different collation for column \"%s\"",
    "roles": [
      {
        "role": "errmsg",
        "template": "child table \"%s\" has different collation for column \"%s\""
      },
      {
        "role": "errdetail",
        "template": "\"%s\" versus \"%s\""
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P21.ef5edd918af762963c8e072c"
    ],
    "sqlstate": "42P21"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P21.ef5edd918af762963c8e072c"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "child table \" \" has different collation for column \" \"",
      "position": 0,
      "role": "",
      "template": "child table \"%s\" has different collation for column \"%s\""
    },
    {
      "kind": "detail",
      "literal": "\" \" versus \" \"",
      "position": 1,
      "role": "",
      "template": "\"%s\" versus \"%s\""
    },
    {
      "kind": "primary",
      "literal": "\" \" versus \" \"",
      "position": 2,
      "role": "errdetail",
      "template": "\"%s\" versus \"%s\""
    }
  ]
}
messages · message.variant-7
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-7",
  "path": "",
  "position": 6,
  "raw": {
    "detail_templates": [
      "Key columns \"%s\" of the referencing table and \"%s\" of the referenced table have incompatible collations: \"%s\" and \"%s\".  If either collation is nondeterministic, then both collations have to be the same."
    ],
    "hint_templates": [],
    "id": "message.variant-7",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "foreign key constraint \"%s\" cannot be implemented",
    "roles": [
      {
        "role": "errmsg",
        "template": "foreign key constraint \"%s\" cannot be implemented"
      },
      {
        "role": "errdetail",
        "template": "Key columns \"%s\" of the referencing table and \"%s\" of the referenced table have incompatible collations: \"%s\" and \"%s\".  If either collation is nondeterministic, then both collations have to be the same."
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P21.04a0360be247ab8ca050e826"
    ],
    "sqlstate": "42P21"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P21.04a0360be247ab8ca050e826"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "foreign key constraint \" \" cannot be implemented",
      "position": 0,
      "role": "",
      "template": "foreign key constraint \"%s\" cannot be implemented"
    },
    {
      "kind": "detail",
      "literal": "Key columns \" \" of the referencing table and \" \" of the referenced table have incompatible collations: \" \" and \" \". If either collation is nondeterministic, then both collations have to be the same.",
      "position": 1,
      "role": "",
      "template": "Key columns \"%s\" of the referencing table and \"%s\" of the referenced table have incompatible collations: \"%s\" and \"%s\".  If either collation is nondeterministic, then both collations have to be the same."
    },
    {
      "kind": "primary",
      "literal": "Key columns \" \" of the referencing table and \" \" of the referenced table have incompatible collations: \" \" and \" \". If either collation is nondeterministic, then both collations have to be the same.",
      "position": 2,
      "role": "errdetail",
      "template": "Key columns \"%s\" of the referencing table and \"%s\" of the referenced table have incompatible collations: \"%s\" and \"%s\".  If either collation is nondeterministic, then both collations have to be the same."
    }
  ]
}
sources · src.errcodes.42P21.18.6
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "line 352",
  "path": "src/backend/utils/errcodes.txt",
  "position": 0,
  "sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
  "source_id": "src.errcodes.42P21.18.6",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L352"
}
sources · src.call.42P21.69245d264e1d0e386e33036f
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 226-232",
  "path": "src/backend/parser/parse_collate.c",
  "position": 1,
  "sha256": "e92a01d1a7279f108ddfac1f0324f6d142b1496360ddac3dfb778564c4226940",
  "source_id": "src.call.42P21.69245d264e1d0e386e33036f",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_collate.c#L226-L232"
}
sources · src.call.42P21.0ba27778e76c3d44b1cc79f6
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 853-858",
  "path": "src/backend/parser/parse_collate.c",
  "position": 2,
  "sha256": "e92a01d1a7279f108ddfac1f0324f6d142b1496360ddac3dfb778564c4226940",
  "source_id": "src.call.42P21.0ba27778e76c3d44b1cc79f6",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_collate.c#L853-L858"
}
sources · src.call.42P21.93a028fdb350e0d054f123d8
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 394-401",
  "path": "src/backend/parser/parse_cte.c",
  "position": 3,
  "sha256": "908eef14ac26654fe0b9c176ef50e56ba710b7fcd8e1239b944d7c2152fc2d6b",
  "source_id": "src.call.42P21.93a028fdb350e0d054f123d8",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_cte.c#L394-L401"
}
sources · src.call.42P21.16107e45585553ed56b18241
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 3297-3303",
  "path": "src/backend/commands/tablecmds.c",
  "position": 4,
  "sha256": "422dc8e833df4940755973c757e338295822ba3e4c7266c40669f49f96eb15a9",
  "source_id": "src.call.42P21.16107e45585553ed56b18241",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/commands/tablecmds.c#L3297-L3303"
}
sources · src.call.42P21.5fcad21fbefb1ae15acf4c73
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 3463-3469",
  "path": "src/backend/commands/tablecmds.c",
  "position": 5,
  "sha256": "422dc8e833df4940755973c757e338295822ba3e4c7266c40669f49f96eb15a9",
  "source_id": "src.call.42P21.5fcad21fbefb1ae15acf4c73",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/commands/tablecmds.c#L3463-L3469"
}
sources · src.call.42P21.ef5edd918af762963c8e072c
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 7292-7298",
  "path": "src/backend/commands/tablecmds.c",
  "position": 6,
  "sha256": "422dc8e833df4940755973c757e338295822ba3e4c7266c40669f49f96eb15a9",
  "source_id": "src.call.42P21.ef5edd918af762963c8e072c",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/commands/tablecmds.c#L7292-L7298"
}
sources · src.call.42P21.04a0360be247ab8ca050e826
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 10474-10483",
  "path": "src/backend/commands/tablecmds.c",
  "position": 7,
  "sha256": "422dc8e833df4940755973c757e338295822ba3e4c7266c40669f49f96eb15a9",
  "source_id": "src.call.42P21.04a0360be247ab8ca050e826",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/commands/tablecmds.c#L10474-L10483"
}
sources · src.context.42P21.parse_collate.common
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 208-234 and 804-835",
  "path": "src/backend/parser/parse_collate.c",
  "position": 8,
  "sha256": "e92a01d1a7279f108ddfac1f0324f6d142b1496360ddac3dfb778564c4226940",
  "source_id": "src.context.42P21.parse_collate.common",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_collate.c#L208"
}
sources · src.calls.REL_18_6.42P21
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "",
  "path": "raw/calls/REL_18_6.jsonl",
  "position": 9,
  "sha256": "9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf",
  "source_id": "src.calls.REL_18_6.42P21",
  "tag": "",
  "url": ""
}

Source references

Full definition and evidence JSON

Definition sources

center · PostgreSQL 18 · english-manuals:b5d4c7d86be08cb3fc3124799c6c721a76c6e26b8ee8a84e6887686f790435f2

Text language: en · english-manuals:b5d4c7d86be08cb3fc3124799c6c721a76c6e26b8ee8a84e6887686f790435f2