{"Entry":{"collection":"sqlstate","key":"428C9","name":"428C9","aliases":[],"metadata":{"aliases":[],"case_count":0,"class_code":"42","condition_name":"generated_always","condition_names":["generated_always"],"content_hash":"c44624194d9bbcbabf0241af282d5785866973ed117d0e771dbcfdd157e93e32","depth":"full","editorial_review":"reviewed","evidence_tier":"source_path_confirmed","imported_at":"2026-09-30T17:45:27.631747+08:00","introduced":null,"known_present_by":"10.0","macros":["ERRCODE_GENERATED_ALWAYS"],"name_zh":"GENERATED ALWAYS 列赋值","present_in":["10","11","12","13","14","15","16","17","18","19"],"preview_in":["19"],"primary_macro":"ERRCODE_GENERATED_ALWAYS","removed":null,"runtime_verification":"not_run","severity_classes":["E"],"snippet_count":0,"source_rev":"english-manuals:22585bb6ff2709be54a90631e37a8ab999ad6ae228e1398619eda4ec68aae592","sqlstate":"428C9","status":"active","summary_zh":"向身份列或生成列赋值，这类列只接受 DEFAULT。"}},"Definition":{"Collection":"sqlstate","Key":"428C9","SourceDatabase":"center","Version":"18","SourceTable":"sqlstate","SourceKey":"428C9","SourceRevision":"english-manuals:22585bb6ff2709be54a90631e37a8ab999ad6ae228e1398619eda4ec68aae592","Facts":{"aliases":[],"class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"428C9"},"ManualEvidence":{"doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"}},"MeasuredEvidence":{}},"Text":{"Collection":"sqlstate","Key":"428C9","SourceDatabase":"center","Version":"","Locale":"zh-Hans","Title":"428C9 — GENERATED ALWAYS 列赋值","Summary":"向身份列或生成列赋值，这类列只接受 DEFAULT。","BodyHTML":"\u003ch1\u003e428C9 — GENERATED ALWAYS 列赋值\u003c/h1\u003e\n\u003ch2\u003e速览 {#at-a-glance}\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e428C9\u003c/code\u003e（\u003cstrong\u003egenerated_always\u003c/strong\u003e）是重写阶段的 \u003ccode\u003eERROR\u003c/code\u003e：INSERT 或 UPDATE 向必须由服务器生成或只接受 \u003ccode\u003eDEFAULT\u003c/code\u003e 的列提供了值。身份列和生成列的赋值规则不同，必须结合操作类型和列元数据判断。\u003c/p\u003e\n\u003ch2\u003e含义 {#meaning}\u003c/h2\u003e\n\u003cp\u003e重写器会把 INSERT 中省略的目标列或显式 \u003ccode\u003eDEFAULT\u003c/code\u003e 标为 \u003ccode\u003eapply_default\u003c/code\u003e。\u003ccode\u003eGENERATED ALWAYS\u003c/code\u003e 身份列收到非默认值时，除非使用 \u003ccode\u003eOVERRIDING SYSTEM VALUE\u003c/code\u003e，否则报错；\u003ccode\u003eOVERRIDING USER VALUE\u003c/code\u003e 会强制使用默认生成。\u003ccode\u003eBY DEFAULT\u003c/code\u003e 身份列通常允许显式值，但 \u003ccode\u003eOVERRIDING USER VALUE\u003c/code\u003e 仍会强制生成。生成列无论是否有 \u003ccode\u003eOVERRIDING\u003c/code\u003e 都只接受 \u003ccode\u003eDEFAULT\u003c/code\u003e，INSERT 的 DETAIL 会指出列名，身份列分支还带 HINT \u003ccode\u003eUse OVERRIDING SYSTEM VALUE to override.\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUPDATE 的检查覆盖 \u003ccode\u003eGENERATED ALWAYS\u003c/code\u003e 身份列和所有生成列，只要目标项是非默认值就报错；UPDATE 没有 \u003ccode\u003eOVERRIDING\u003c/code\u003e 例外。检查之后，虚拟生成列在重写目标中放入 NULL，存储生成列由执行器填充。这是 18.6 固定源码的存储路径；目录中“10.0 已知存在”只是 SQLSTATE 定义下界，不能据此声称 10.0 已具备所有生成列特性。\u003c/p\u003e\n\u003ch2\u003e诊断 {#diagnosis}\u003c/h2\u003e\n\u003cp\u003e检查 \u003ccode\u003epg_attribute.attidentity\u003c/code\u003e（\u003ccode\u003ea\u003c/code\u003e 表示 \u003ccode\u003eALWAYS\u003c/code\u003e、\u003ccode\u003ed\u003c/code\u003e 表示 \u003ccode\u003eBY DEFAULT\u003c/code\u003e）和 \u003ccode\u003eattgenerated\u003c/code\u003e（\u003ccode\u003es\u003c/code\u003e 表示存储、\u003ccode\u003ev\u003c/code\u003e 表示虚拟），确认是 INSERT 还是 UPDATE，以及目标项是省略、\u003ccode\u003eDEFAULT\u003c/code\u003e 还是实际值。\u003ccode\u003eVALUES\u003c/code\u003e 来源还要确认对应行项是否确实为 \u003ccode\u003eDEFAULT\u003c/code\u003e；重写器有单独的全默认判断。身份列与生成列的 INSERT 可能共用主消息，需同时读取 DETAIL/HINT。\u003c/p\u003e\n\u003ch2\u003e处理 {#response}\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eGENERATED ALWAYS\u003c/code\u003e 身份列省略赋值、使用 \u003ccode\u003eDEFAULT\u003c/code\u003e，或仅在业务明确拥有身份值时使用 \u003ccode\u003eOVERRIDING SYSTEM VALUE\u003c/code\u003e。\u003ccode\u003eBY DEFAULT\u003c/code\u003e 身份列可按业务保留显式值；需要服务器生成时用 \u003ccode\u003eOVERRIDING USER VALUE\u003c/code\u003e。生成列移除赋值，不要用类型转换绕过检查。若 \u003ccode\u003eERROR\u003c/code\u003e 发生在显式事务中，应回滚到合适保存点或回滚事务后再发修正语句；本页没有运行时恢复观察。\u003c/p\u003e\n\u003ch2\u003e消息变体 {#messages}\u003c/h2\u003e\n\u003cp\u003e选定的 18.6 分支均为 \u003ccode\u003eERROR\u003c/code\u003e：\u003c/p\u003e\n\u003cp\u003e| 操作 | 主消息 | DETAIL | HINT |\n| --- | --- | --- | --- |\n| \u003ccode\u003eGENERATED ALWAYS\u003c/code\u003e 身份列 INSERT | \u003ccode\u003ecannot insert a non-DEFAULT value into column \u0026#34;%s\u0026#34;\u003c/code\u003e | \u003ccode\u003eColumn \u0026#34;%s\u0026#34; is an identity column defined as GENERATED ALWAYS.\u003c/code\u003e | \u003ccode\u003eUse OVERRIDING SYSTEM VALUE to override.\u003c/code\u003e |\n| 生成列 INSERT | \u003ccode\u003ecannot insert a non-DEFAULT value into column \u0026#34;%s\u0026#34;\u003c/code\u003e | \u003ccode\u003eColumn \u0026#34;%s\u0026#34; is a generated column.\u003c/code\u003e | 无 |\n| \u003ccode\u003eGENERATED ALWAYS\u003c/code\u003e 身份列 UPDATE | \u003ccode\u003ecolumn \u0026#34;%s\u0026#34; can only be updated to DEFAULT\u003c/code\u003e | \u003ccode\u003eColumn \u0026#34;%s\u0026#34; is an identity column defined as GENERATED ALWAYS.\u003c/code\u003e | 无 |\n| 生成列 UPDATE | \u003ccode\u003ecolumn \u0026#34;%s\u0026#34; can only be updated to DEFAULT\u003c/code\u003e | \u003ccode\u003eColumn \u0026#34;%s\u0026#34; is a generated column.\u003c/code\u003e | 无 |\u003c/p\u003e\n\u003cp\u003e固定源码还区分虚拟生成列的 NULL 目标项与存储生成列的执行器填充。每个 \u003ccode\u003e%s\u003c/code\u003e 都是动态字段，本页不声称具体占位符值或运行时结果。\u003c/p\u003e\n\u003ch2\u003e版本 {#versions}\u003c/h2\u003e\n\u003cp\u003e目录记录该条件自 10.0 起存在，并锁定到 18.6、19beta3；这是定义下界，不是身份列、存储生成列和虚拟生成列共同的功能引入版本。本页机制依据 18.6 固定源码，未运行数据库。\u003c/p\u003e\n\u003ch2\u003e相关 {#related}\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/wiki/sqlstate/42804/\" rel=\"nofollow\"\u003e\u003ccode\u003e42804\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/wiki/sqlstate/42601/\" rel=\"nofollow\"\u003e\u003ccode\u003e42601\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/wiki/sqlstate/23502/\" rel=\"nofollow\"\u003e\u003ccode\u003e23502\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e来源 {#sources}\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esrc.errcodes.428C9.18.6\u003c/code\u003e — \u003ccode\u003esrc/backend/utils/errcodes.txt\u003c/code\u003e line 355，固定于 \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；SHA-256 \u003ccode\u003e6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba\u003c/code\u003e（\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L355\" rel=\"nofollow\"\u003e源码\u003c/a\u003e）。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esrc.call.428C9.353c4cc772b5ae9adad09c67\u003c/code\u003e — \u003ccode\u003esrc/backend/rewrite/rewriteHandler.c\u003c/code\u003e lines 942-948，固定于 \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；SHA-256 \u003ccode\u003e5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a\u003c/code\u003e（\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L942-L948\" rel=\"nofollow\"\u003e源码\u003c/a\u003e）。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esrc.call.428C9.47aaa60ecb1566d462ffaa86\u003c/code\u003e — \u003ccode\u003esrc/backend/rewrite/rewriteHandler.c\u003c/code\u003e lines 981-986，固定于 \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；SHA-256 \u003ccode\u003e5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a\u003c/code\u003e（\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L981-L986\" rel=\"nofollow\"\u003e源码\u003c/a\u003e）。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esrc.call.428C9.8585d423db2446a6222cbf57\u003c/code\u003e — \u003ccode\u003esrc/backend/rewrite/rewriteHandler.c\u003c/code\u003e lines 1008-1013，固定于 \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；SHA-256 \u003ccode\u003e5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a\u003c/code\u003e（\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L1008-L1013\" rel=\"nofollow\"\u003e源码\u003c/a\u003e）。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esrc.call.428C9.generated-update\u003c/code\u003e — \u003ccode\u003esrc/backend/rewrite/rewriteHandler.c\u003c/code\u003e lines 1015-1030，固定于 \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；SHA-256 \u003ccode\u003e5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a\u003c/code\u003e（\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L1015-L1030\" rel=\"nofollow\"\u003e源码\u003c/a\u003e）。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esrc.calls.REL_18_6.428C9\u003c/code\u003e — 固定本地核心调用扫描；SHA-256 \u003ccode\u003e9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf\u003c/code\u003e。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"#sources\" rel=\"nofollow\"\u003e\u003ccode\u003e作者证据\u003c/code\u003e\u003c/a\u003e — 记录源码断言、消息角色和运行边界。\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n","SourceRevision":"english-manuals:22585bb6ff2709be54a90631e37a8ab999ad6ae228e1398619eda4ec68aae592","ContentHash":"e80450f7569bd887178062fe8def76f08a5b891911e963fedc460212b0e20c10","Payload":{"body_md":"# 428C9 — GENERATED ALWAYS 列赋值\n\n## 速览 {#at-a-glance}\n\n`428C9`（**generated_always**）是重写阶段的 `ERROR`：INSERT 或 UPDATE 向必须由服务器生成或只接受 `DEFAULT` 的列提供了值。身份列和生成列的赋值规则不同，必须结合操作类型和列元数据判断。\n\n\n## 含义 {#meaning}\n\n重写器会把 INSERT 中省略的目标列或显式 `DEFAULT` 标为 `apply_default`。`GENERATED ALWAYS` 身份列收到非默认值时，除非使用 `OVERRIDING SYSTEM VALUE`，否则报错；`OVERRIDING USER VALUE` 会强制使用默认生成。`BY DEFAULT` 身份列通常允许显式值，但 `OVERRIDING USER VALUE` 仍会强制生成。生成列无论是否有 `OVERRIDING` 都只接受 `DEFAULT`，INSERT 的 DETAIL 会指出列名，身份列分支还带 HINT `Use OVERRIDING SYSTEM VALUE to override.`\n\nUPDATE 的检查覆盖 `GENERATED ALWAYS` 身份列和所有生成列，只要目标项是非默认值就报错；UPDATE 没有 `OVERRIDING` 例外。检查之后，虚拟生成列在重写目标中放入 NULL，存储生成列由执行器填充。这是 18.6 固定源码的存储路径；目录中“10.0 已知存在”只是 SQLSTATE 定义下界，不能据此声称 10.0 已具备所有生成列特性。\n\n## 诊断 {#diagnosis}\n\n检查 `pg_attribute.attidentity`（`a` 表示 `ALWAYS`、`d` 表示 `BY DEFAULT`）和 `attgenerated`（`s` 表示存储、`v` 表示虚拟），确认是 INSERT 还是 UPDATE，以及目标项是省略、`DEFAULT` 还是实际值。`VALUES` 来源还要确认对应行项是否确实为 `DEFAULT`；重写器有单独的全默认判断。身份列与生成列的 INSERT 可能共用主消息，需同时读取 DETAIL/HINT。\n\n## 处理 {#response}\n\n`GENERATED ALWAYS` 身份列省略赋值、使用 `DEFAULT`，或仅在业务明确拥有身份值时使用 `OVERRIDING SYSTEM VALUE`。`BY DEFAULT` 身份列可按业务保留显式值；需要服务器生成时用 `OVERRIDING USER VALUE`。生成列移除赋值，不要用类型转换绕过检查。若 `ERROR` 发生在显式事务中，应回滚到合适保存点或回滚事务后再发修正语句；本页没有运行时恢复观察。\n\n## 消息变体 {#messages}\n\n选定的 18.6 分支均为 `ERROR`：\n\n| 操作 | 主消息 | DETAIL | HINT |\n| --- | --- | --- | --- |\n| `GENERATED ALWAYS` 身份列 INSERT | `cannot insert a non-DEFAULT value into column \"%s\"` | `Column \"%s\" is an identity column defined as GENERATED ALWAYS.` | `Use OVERRIDING SYSTEM VALUE to override.` |\n| 生成列 INSERT | `cannot insert a non-DEFAULT value into column \"%s\"` | `Column \"%s\" is a generated column.` | 无 |\n| `GENERATED ALWAYS` 身份列 UPDATE | `column \"%s\" can only be updated to DEFAULT` | `Column \"%s\" is an identity column defined as GENERATED ALWAYS.` | 无 |\n| 生成列 UPDATE | `column \"%s\" can only be updated to DEFAULT` | `Column \"%s\" is a generated column.` | 无 |\n\n固定源码还区分虚拟生成列的 NULL 目标项与存储生成列的执行器填充。每个 `%s` 都是动态字段，本页不声称具体占位符值或运行时结果。\n\n## 版本 {#versions}\n\n目录记录该条件自 10.0 起存在，并锁定到 18.6、19beta3；这是定义下界，不是身份列、存储生成列和虚拟生成列共同的功能引入版本。本页机制依据 18.6 固定源码，未运行数据库。\n\n## 相关 {#related}\n\n- [`42804`](/wiki/sqlstate/42804/)\n- [`42601`](/wiki/sqlstate/42601/)\n- [`23502`](/wiki/sqlstate/23502/)\n\n## 来源 {#sources}\n- `src.errcodes.428C9.18.6` — `src/backend/utils/errcodes.txt` line 355，固定于 `724edf9bde9d356724ad384a2e196edc3c9f80f7`；SHA-256 `6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba`（[源码](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L355)）。\n\n- `src.call.428C9.353c4cc772b5ae9adad09c67` — `src/backend/rewrite/rewriteHandler.c` lines 942-948，固定于 `724edf9bde9d356724ad384a2e196edc3c9f80f7`；SHA-256 `5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a`（[源码](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L942-L948)）。\n- `src.call.428C9.47aaa60ecb1566d462ffaa86` — `src/backend/rewrite/rewriteHandler.c` lines 981-986，固定于 `724edf9bde9d356724ad384a2e196edc3c9f80f7`；SHA-256 `5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a`（[源码](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L981-L986)）。\n- `src.call.428C9.8585d423db2446a6222cbf57` — `src/backend/rewrite/rewriteHandler.c` lines 1008-1013，固定于 `724edf9bde9d356724ad384a2e196edc3c9f80f7`；SHA-256 `5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a`（[源码](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L1008-L1013)）。\n- `src.call.428C9.generated-update` — `src/backend/rewrite/rewriteHandler.c` lines 1015-1030，固定于 `724edf9bde9d356724ad384a2e196edc3c9f80f7`；SHA-256 `5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a`（[源码](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L1015-L1030)）。\n- `src.calls.REL_18_6.428C9` — 固定本地核心调用扫描；SHA-256 `9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf`。\n- [`作者证据`](#sources) — 记录源码断言、消息角色和运行边界。\n","description":"PostgreSQL SQLSTATE 428C9（generated_always）的来源与诊断参考。","is_stale":false,"name":"GENERATED ALWAYS 列赋值","sections":[{"anchor":"","heading":"","html":"\u0026lt;h1\u0026gt;428C9 — GENERATED ALWAYS 列赋值\u0026lt;/h1\u0026gt;"},{"anchor":"at-a-glance","heading":"速览","html":"\u003cp\u003e\u003ccode\u003e428C9\u003c/code\u003e（\u003cstrong\u003egenerated_always\u003c/strong\u003e）是重写阶段的 \u003ccode\u003eERROR\u003c/code\u003e：INSERT 或 UPDATE 向必须由服务器生成或只接受 \u003ccode\u003eDEFAULT\u003c/code\u003e 的列提供了值。身份列和生成列的赋值规则不同，必须结合操作类型和列元数据判断。\u003c/p\u003e"},{"anchor":"meaning","heading":"含义","html":"\u003cp\u003e重写器会把 INSERT 中省略的目标列或显式 \u003ccode\u003eDEFAULT\u003c/code\u003e 标为 \u003ccode\u003eapply_default\u003c/code\u003e。\u003ccode\u003eGENERATED ALWAYS\u003c/code\u003e 身份列收到非默认值时，除非使用 \u003ccode\u003eOVERRIDING SYSTEM VALUE\u003c/code\u003e，否则报错；\u003ccode\u003eOVERRIDING USER VALUE\u003c/code\u003e 会强制使用默认生成。\u003ccode\u003eBY DEFAULT\u003c/code\u003e 身份列通常允许显式值，但 \u003ccode\u003eOVERRIDING USER VALUE\u003c/code\u003e 仍会强制生成。生成列无论是否有 \u003ccode\u003eOVERRIDING\u003c/code\u003e 都只接受 \u003ccode\u003eDEFAULT\u003c/code\u003e，INSERT 的 DETAIL 会指出列名，身份列分支还带 HINT \u003ccode\u003eUse OVERRIDING SYSTEM VALUE to override.\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUPDATE 的检查覆盖 \u003ccode\u003eGENERATED ALWAYS\u003c/code\u003e 身份列和所有生成列，只要目标项是非默认值就报错；UPDATE 没有 \u003ccode\u003eOVERRIDING\u003c/code\u003e 例外。检查之后，虚拟生成列在重写目标中放入 NULL，存储生成列由执行器填充。这是 18.6 固定源码的存储路径；目录中“10.0 已知存在”只是 SQLSTATE 定义下界，不能据此声称 10.0 已具备所有生成列特性。\u003c/p\u003e"},{"anchor":"diagnosis","heading":"诊断","html":"\u003cp\u003e检查 \u003ccode\u003epg_attribute.attidentity\u003c/code\u003e（\u003ccode\u003ea\u003c/code\u003e 表示 \u003ccode\u003eALWAYS\u003c/code\u003e、\u003ccode\u003ed\u003c/code\u003e 表示 \u003ccode\u003eBY DEFAULT\u003c/code\u003e）和 \u003ccode\u003eattgenerated\u003c/code\u003e（\u003ccode\u003es\u003c/code\u003e 表示存储、\u003ccode\u003ev\u003c/code\u003e 表示虚拟），确认是 INSERT 还是 UPDATE，以及目标项是省略、\u003ccode\u003eDEFAULT\u003c/code\u003e 还是实际值。\u003ccode\u003eVALUES\u003c/code\u003e 来源还要确认对应行项是否确实为 \u003ccode\u003eDEFAULT\u003c/code\u003e；重写器有单独的全默认判断。身份列与生成列的 INSERT 可能共用主消息，需同时读取 DETAIL/HINT。\u003c/p\u003e"},{"anchor":"response","heading":"处理","html":"\u003cp\u003e\u003ccode\u003eGENERATED ALWAYS\u003c/code\u003e 身份列省略赋值、使用 \u003ccode\u003eDEFAULT\u003c/code\u003e，或仅在业务明确拥有身份值时使用 \u003ccode\u003eOVERRIDING SYSTEM VALUE\u003c/code\u003e。\u003ccode\u003eBY DEFAULT\u003c/code\u003e 身份列可按业务保留显式值；需要服务器生成时用 \u003ccode\u003eOVERRIDING USER VALUE\u003c/code\u003e。生成列移除赋值，不要用类型转换绕过检查。若 \u003ccode\u003eERROR\u003c/code\u003e 发生在显式事务中，应回滚到合适保存点或回滚事务后再发修正语句；本页没有运行时恢复观察。\u003c/p\u003e"},{"anchor":"messages","heading":"消息变体","html":"\u003cp\u003e选定的 18.6 分支均为 \u003ccode\u003eERROR\u003c/code\u003e：\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e操作\u003c/th\u003e\n\u003cth\u003e主消息\u003c/th\u003e\n\u003cth\u003eDETAIL\u003c/th\u003e\n\u003cth\u003eHINT\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eGENERATED ALWAYS\u003c/code\u003e 身份列 INSERT\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ecannot insert a non-DEFAULT value into column \"%s\"\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eColumn \"%s\" is an identity column defined as GENERATED ALWAYS.\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eUse OVERRIDING SYSTEM VALUE to override.\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e生成列 INSERT\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ecannot insert a non-DEFAULT value into column \"%s\"\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eColumn \"%s\" is a generated column.\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e无\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eGENERATED ALWAYS\u003c/code\u003e 身份列 UPDATE\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ecolumn \"%s\" can only be updated to DEFAULT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eColumn \"%s\" is an identity column defined as GENERATED ALWAYS.\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e无\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e生成列 UPDATE\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ecolumn \"%s\" can only be updated to DEFAULT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eColumn \"%s\" is a generated column.\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e无\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e固定源码还区分虚拟生成列的 NULL 目标项与存储生成列的执行器填充。每个 \u003ccode\u003e%s\u003c/code\u003e 都是动态字段，本页不声称具体占位符值或运行时结果。\u003c/p\u003e"},{"anchor":"versions","heading":"版本","html":"\u003cp\u003e目录记录该条件自 10.0 起存在，并锁定到 18.6、19beta3；这是定义下界，不是身份列、存储生成列和虚拟生成列共同的功能引入版本。本页机制依据 18.6 固定源码，未运行数据库。\u003c/p\u003e"},{"anchor":"related","heading":"相关","html":"\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/wiki/sqlstate/42804/\"\u003e\u003ccode\u003e42804\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/wiki/sqlstate/42601/\"\u003e\u003ccode\u003e42601\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/wiki/sqlstate/23502/\"\u003e\u003ccode\u003e23502\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e"},{"anchor":"sources","heading":"来源","html":"\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esrc.errcodes.428C9.18.6\u003c/code\u003e — \u003ccode\u003esrc/backend/utils/errcodes.txt\u003c/code\u003e line 355，固定于 \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；SHA-256 \u003ccode\u003e6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba\u003c/code\u003e（\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L355\"\u003e源码\u003c/a\u003e）。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esrc.call.428C9.353c4cc772b5ae9adad09c67\u003c/code\u003e — \u003ccode\u003esrc/backend/rewrite/rewriteHandler.c\u003c/code\u003e lines 942-948，固定于 \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；SHA-256 \u003ccode\u003e5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a\u003c/code\u003e（\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L942-L948\"\u003e源码\u003c/a\u003e）。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esrc.call.428C9.47aaa60ecb1566d462ffaa86\u003c/code\u003e — \u003ccode\u003esrc/backend/rewrite/rewriteHandler.c\u003c/code\u003e lines 981-986，固定于 \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；SHA-256 \u003ccode\u003e5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a\u003c/code\u003e（\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L981-L986\"\u003e源码\u003c/a\u003e）。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esrc.call.428C9.8585d423db2446a6222cbf57\u003c/code\u003e — \u003ccode\u003esrc/backend/rewrite/rewriteHandler.c\u003c/code\u003e lines 1008-1013，固定于 \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；SHA-256 \u003ccode\u003e5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a\u003c/code\u003e（\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L1008-L1013\"\u003e源码\u003c/a\u003e）。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esrc.call.428C9.generated-update\u003c/code\u003e — \u003ccode\u003esrc/backend/rewrite/rewriteHandler.c\u003c/code\u003e lines 1015-1030，固定于 \u003ccode\u003e724edf9bde9d356724ad384a2e196edc3c9f80f7\u003c/code\u003e；SHA-256 \u003ccode\u003e5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a\u003c/code\u003e（\u003ca href=\"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L1015-L1030\"\u003e源码\u003c/a\u003e）。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esrc.calls.REL_18_6.428C9\u003c/code\u003e — 固定本地核心调用扫描；SHA-256 \u003ccode\u003e9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf\u003c/code\u003e。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#sources\"\u003e\u003ccode\u003e作者证据\u003c/code\u003e\u003c/a\u003e — 记录源码断言、消息角色和运行边界。\u003c/li\u003e\n\u003c/ul\u003e"}],"summary":"向身份列或生成列赋值，这类列只接受 DEFAULT。","title":"428C9 — GENERATED ALWAYS 列赋值","translation_source_rev":"07c0a5099400f3995bb403baafe0108ec014d720f58cd176d4d9811599ed27e2"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":{"aliases":[],"catalogue_notes":{"earliest_observed":"10.0","formal_scope":"9.0.0..18.6","latest_observed":"18.6","matrix_scope":["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"],"pre9_scope":{"formal_tag_count":191,"maximum_release":"8.4.22","minimum_release":"7.0.0","source_definition_count":153,"source_doc_count":153,"source_file_count":306,"source_scope":"7.4..8.4 definition files; 7.0..7.3 candidate-path source gap probes","source_tag_count":153},"pre9_status":"not_observed","preview_scope":["19beta3"]},"class":"42","class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","condition_names":["generated_always"],"definition_changes":[],"english_manuals":{"10":{"aliases":[],"class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"9607b57e9f639b61785677ba4d226f5889fe1d19c8bf55a3337691899a9073cd","slug":"10"},"lang":"en","sqlstate":"428C9"},"11":{"aliases":[],"class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"3a024e38263ad77de228eed7930b842b42dc1d5cab9ca3727be8eed872ec9539","slug":"11"},"lang":"en","sqlstate":"428C9"},"12":{"aliases":[],"class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1444bd6a138537cd75be88a220ee9472ac528f0cfc58758e49636d85455efe98","slug":"12"},"lang":"en","sqlstate":"428C9"},"13":{"aliases":[],"class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"4a3ef8af218e5736dfde8660ba609e84233b6b3bac7e0210ff8724cf1b27b2db","slug":"13"},"lang":"en","sqlstate":"428C9"},"14":{"aliases":[],"class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"1c12e83304e0f4ff64c9d98ca5e3007df6756932ed19867a4fa0e0650f6c5751","slug":"14"},"lang":"en","sqlstate":"428C9"},"15":{"aliases":[],"class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"2161f58f6e87f6535b3b1f3d4661427bb6765f4f6b074fcc16fac97594b50599","slug":"15"},"lang":"en","sqlstate":"428C9"},"16":{"aliases":[],"class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"928e705933d7c3d018ae3fba9d800b34e6325746d157339dce878473c519d100","slug":"16"},"lang":"en","sqlstate":"428C9"},"17":{"aliases":[],"class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"868135520af87351e3ea1ba42656111cbd2d157d98e1fef05ea158ac5729d8b1","slug":"17"},"lang":"en","sqlstate":"428C9"},"18":{"aliases":[],"class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"56dacf78e618ff0fd8c533e05db597b80d7ebbad7f8e512a888217d0640aa328","slug":"18"},"lang":"en","sqlstate":"428C9"},"19":{"aliases":[],"class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"63fb8d1aa9f494eeab9d0f8542a2b673f7746ee41ae2689d19403cb3cc425a5c","slug":"19"},"lang":"en","sqlstate":"428C9"},"20":{"aliases":[],"class_name":"Syntax Error or Access Rule Violation","condition_name":"generated_always","doc":{"anchor":"ERRCODES-APPENDIX","file":"errcodes-appendix.html","lang":"en","sha256":"0d3f602127cd137cf343b32d5fa78f175eeb6cdcb6353b1f6f998ede6cb7b911","slug":"devel"},"lang":"en","sqlstate":"428C9"}},"history_boundary":{"earliest_observed":"10.0","formal_tag_count":351,"gaps":[{"after":"18.6","before":"18.4","reason":"Non-adjacent release tags or a source gap; no removal is inferred."}],"latest_observed":"18.6","pre_range":{"first_observed":null,"known_lower_bound":null,"last_observed":null,"notes":"No occurrence was observed in the locked 7.4..8.4 definition files. Source gaps for 7.0..7.3 prevent a claim that the code was absent before 7.4.","scanned_formal_release_count":153,"scanned_source_scope":"7.4..8.4 definition files; 7.0..7.3 candidate-path source gap probes","source_gap_majors":["7.0","7.1","7.2","7.3"],"status":"partially_scanned"},"preview_snapshots":["19beta3"],"scanned_from":"9.0.0","scanned_to":"18.6"},"introduced":null,"known_present_by":"10.0","macros":["ERRCODE_GENERATED_ALWAYS"],"manual_presence":["10","11","12","13","14","15","16","17","18","19","20"],"pre9_first_observed":null,"pre9_introduction_boundary":null,"pre9_last_observed":null,"pre9_presence_intervals":[],"pre9_status":"not_observed","presence_intervals":[{"end":"10.23","end_major":"10","end_tag":"REL_10_23","evidence_count":24,"position":0,"start":"10.0","start_major":"10","start_tag":"REL_10_0"},{"end":"11.22","end_major":"11","end_tag":"REL_11_22","evidence_count":23,"position":1,"start":"11.0","start_major":"11","start_tag":"REL_11_0"},{"end":"12.22","end_major":"12","end_tag":"REL_12_22","evidence_count":23,"position":2,"start":"12.0","start_major":"12","start_tag":"REL_12_0"},{"end":"13.23","end_major":"13","end_tag":"REL_13_23","evidence_count":24,"position":3,"start":"13.0","start_major":"13","start_tag":"REL_13_0"},{"end":"14.24","end_major":"14","end_tag":"REL_14_24","evidence_count":25,"position":4,"start":"14.0","start_major":"14","start_tag":"REL_14_0"},{"end":"15.19","end_major":"15","end_tag":"REL_15_19","evidence_count":20,"position":5,"start":"15.0","start_major":"15","start_tag":"REL_15_0"},{"end":"16.15","end_major":"16","end_tag":"REL_16_15","evidence_count":16,"position":6,"start":"16.0","start_major":"16","start_tag":"REL_16_0"},{"end":"17.11","end_major":"17","end_tag":"REL_17_11","evidence_count":12,"position":7,"start":"17.0","start_major":"17","start_tag":"REL_17_0"},{"end":"18.4","end_major":"18","end_tag":"REL_18_4","evidence_count":5,"position":8,"start":"18.0","start_major":"18","start_tag":"REL_18_0"},{"end":"18.6","end_major":"18","end_tag":"REL_18_6","evidence_count":1,"position":9,"start":"18.6","start_major":"18","start_tag":"REL_18_6"}],"present_in_snapshots":["10.23","11.22","12.22","13.23","14.24","15.19","16.15","17.11","18.6","19beta3"],"preview_in_snapshots":["19beta3"],"primary_macro":"ERRCODE_GENERATED_ALWAYS","removed":null,"schema_version":2,"severity_classes":["E"],"sources":[{"blob_id":"sha256:e5d829b24fe63aa69429fa1deb9675051fc8ffd4a8a4651861907a8f12ccb144","channel":"formal","code_count":240,"commit":"5df0e99bea1c3e5fbffa7fbd0982da88ea149bb6","id":"postgresql:REL_10_0:src/backend/utils/errcodes.txt","major":"10","parsed_path":"raw/definitions/REL_10_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_10_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/5df0e99bea1c3e5fbffa7fbd0982da88ea149bb6/src/backend/utils/errcodes.txt","record_count":246,"release":"10.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"e5d829b24fe63aa69429fa1deb9675051fc8ffd4a8a4651861907a8f12ccb144","size":31340,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_10_0","url":"https://github.com/postgres/postgres/blob/5df0e99bea1c3e5fbffa7fbd0982da88ea149bb6/src/backend/utils/errcodes.txt","version":"10.0"},{"blob_id":"sha256:8518be6de92ae135765e295c631c5f525120ca2b132453404b620f9aa595cab4","channel":"formal","code_count":241,"commit":"19f20081df059fef87e14c8e953669bd173dd7f1","id":"postgresql:REL_11_0:src/backend/utils/errcodes.txt","major":"11","parsed_path":"raw/definitions/REL_11_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_11_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/19f20081df059fef87e14c8e953669bd173dd7f1/src/backend/utils/errcodes.txt","record_count":247,"release":"11.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"8518be6de92ae135765e295c631c5f525120ca2b132453404b620f9aa595cab4","size":31453,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_11_0","url":"https://github.com/postgres/postgres/blob/19f20081df059fef87e14c8e953669bd173dd7f1/src/backend/utils/errcodes.txt","version":"11.0"},{"blob_id":"sha256:943259f3e36af1343dd0f090f7c7cec0e8c762b038d68c178aaa9b1b11999bfb","channel":"formal","code_count":257,"commit":"ad1f2885b8c82e0c2d56d7974f012cbecce17a17","id":"postgresql:REL_12_0:src/backend/utils/errcodes.txt","major":"12","parsed_path":"raw/definitions/REL_12_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_12_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/ad1f2885b8c82e0c2d56d7974f012cbecce17a17/src/backend/utils/errcodes.txt","record_count":263,"release":"12.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"943259f3e36af1343dd0f090f7c7cec0e8c762b038d68c178aaa9b1b11999bfb","size":33114,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_12_0","url":"https://github.com/postgres/postgres/blob/ad1f2885b8c82e0c2d56d7974f012cbecce17a17/src/backend/utils/errcodes.txt","version":"12.0"},{"blob_id":"sha256:9a464a3c3c99d2488782d4cdd0d46ce261085a944cb0c21e2d884586fbc8204d","channel":"formal","code_count":258,"commit":"29be9983a64c011eac0b9ee29895cce71e15ea77","id":"postgresql:REL_13_0:src/backend/utils/errcodes.txt","major":"13","parsed_path":"raw/definitions/REL_13_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_13_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/29be9983a64c011eac0b9ee29895cce71e15ea77/src/backend/utils/errcodes.txt","record_count":264,"release":"13.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"9a464a3c3c99d2488782d4cdd0d46ce261085a944cb0c21e2d884586fbc8204d","size":33239,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_13_0","url":"https://github.com/postgres/postgres/blob/29be9983a64c011eac0b9ee29895cce71e15ea77/src/backend/utils/errcodes.txt","version":"13.0"},{"blob_id":"sha256:c3c967fa20577f7ded946cb99e1a4706b85bb2476fd32d7e4a133c971a603552","channel":"formal","code_count":259,"commit":"86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c","id":"postgresql:REL_14_0:src/backend/utils/errcodes.txt","major":"14","parsed_path":"raw/definitions/REL_14_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_14_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c/src/backend/utils/errcodes.txt","record_count":265,"release":"14.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"c3c967fa20577f7ded946cb99e1a4706b85bb2476fd32d7e4a133c971a603552","size":33337,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_14_0","url":"https://github.com/postgres/postgres/blob/86a4dc1e6f29d1992a2afa3fac1a0b0a6e84568c/src/backend/utils/errcodes.txt","version":"14.0"},{"blob_id":"sha256:a34b5fccd8a27c92817314dd942b79e76896cd1d9a8d4be21c81b02227850b4a","channel":"formal","code_count":260,"commit":"2a7ce2e2ce474504a707ec03e128fde66cfb8b48","id":"postgresql:REL_15_0:src/backend/utils/errcodes.txt","major":"15","parsed_path":"raw/definitions/REL_15_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_15_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/2a7ce2e2ce474504a707ec03e128fde66cfb8b48/src/backend/utils/errcodes.txt","record_count":266,"release":"15.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"a34b5fccd8a27c92817314dd942b79e76896cd1d9a8d4be21c81b02227850b4a","size":33458,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_15_0","url":"https://github.com/postgres/postgres/blob/2a7ce2e2ce474504a707ec03e128fde66cfb8b48/src/backend/utils/errcodes.txt","version":"15.0"},{"blob_id":"sha256:1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","channel":"formal","code_count":260,"commit":"c372fbbd8e911f2412b80a8c39d7079366565d67","id":"postgresql:REL_16_0:src/backend/utils/errcodes.txt","major":"16","parsed_path":"raw/definitions/REL_16_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_16_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/c372fbbd8e911f2412b80a8c39d7079366565d67/src/backend/utils/errcodes.txt","record_count":266,"release":"16.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"1d1d741b7b7c6dfd8275287e31c79befed75f3b9349e1a42ef0ca147c429ff88","size":33458,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_16_0","url":"https://github.com/postgres/postgres/blob/c372fbbd8e911f2412b80a8c39d7079366565d67/src/backend/utils/errcodes.txt","version":"16.0"},{"blob_id":"sha256:bb53279934510355eb4135a807c90d989f07650bd90f87026a4441f11d3296b1","channel":"formal","code_count":260,"commit":"d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e","id":"postgresql:REL_17_0:src/backend/utils/errcodes.txt","major":"17","parsed_path":"raw/definitions/REL_17_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_17_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e/src/backend/utils/errcodes.txt","record_count":266,"release":"17.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"bb53279934510355eb4135a807c90d989f07650bd90f87026a4441f11d3296b1","size":33392,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_17_0","url":"https://github.com/postgres/postgres/blob/d7ec59a63d745ba74fba0e280bbf85dc6d1caa3e/src/backend/utils/errcodes.txt","version":"17.0"},{"blob_id":"sha256:6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","channel":"formal","code_count":262,"commit":"3d6a828938a5fa0444275d3d2f67b64ec3199eb7","id":"postgresql:REL_18_0:src/backend/utils/errcodes.txt","major":"18","parsed_path":"raw/definitions/REL_18_0.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_18_0.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/3d6a828938a5fa0444275d3d2f67b64ec3199eb7/src/backend/utils/errcodes.txt","record_count":268,"release":"18.0","release_date":null,"repository":"https://github.com/postgres/postgres.git","sha256":"6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","size":33739,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_18_0","url":"https://github.com/postgres/postgres/blob/3d6a828938a5fa0444275d3d2f67b64ec3199eb7/src/backend/utils/errcodes.txt","version":"18.0"},{"blob_id":"sha256:cadb9e83cde9a8699a7e74448891ca623af8579ccc8e11c7e533fb47cbc42f89","channel":"preview","code_count":262,"commit":"3638289fb57bdabec00deda98ee9624a35f5d66a","id":"postgresql:REL_19_BETA3:src/backend/utils/errcodes.txt","major":"19","parsed_path":"raw/definitions/REL_19_BETA3.parsed.json","path":"src/backend/utils/errcodes.txt","raw_path":"raw/definitions/REL_19_BETA3.txt","raw_url":"https://raw.githubusercontent.com/postgres/postgres/3638289fb57bdabec00deda98ee9624a35f5d66a/src/backend/utils/errcodes.txt","record_count":268,"release":"19beta3","release_date":"2026-08-13","repository":"https://github.com/postgres/postgres.git","sha256":"cadb9e83cde9a8699a7e74448891ca623af8579ccc8e11c7e533fb47cbc42f89","size":33739,"source_format":"errcodes.txt","source_role":"primary_definition","tag":"REL_19_BETA3","url":"https://github.com/postgres/postgres/blob/3638289fb57bdabec00deda98ee9624a35f5d66a/src/backend/utils/errcodes.txt","version":"19beta3"}],"sqlstate":"428C9","status":"active","usage_evidence":[{"evidence_ids":["postgresql:REL_10_0:src/backend/utils/errcodes.txt","postgresql:REL_10_10:src/backend/utils/errcodes.txt","postgresql:REL_10_11:src/backend/utils/errcodes.txt","postgresql:REL_10_12:src/backend/utils/errcodes.txt","postgresql:REL_10_13:src/backend/utils/errcodes.txt","postgresql:REL_10_14:src/backend/utils/errcodes.txt","postgresql:REL_10_15:src/backend/utils/errcodes.txt","postgresql:REL_10_16:src/backend/utils/errcodes.txt","postgresql:REL_10_17:src/backend/utils/errcodes.txt","postgresql:REL_10_18:src/backend/utils/errcodes.txt","postgresql:REL_10_19:src/backend/utils/errcodes.txt","postgresql:REL_10_1:src/backend/utils/errcodes.txt","postgresql:REL_10_20:src/backend/utils/errcodes.txt","postgresql:REL_10_21:src/backend/utils/errcodes.txt","postgresql:REL_10_22:src/backend/utils/errcodes.txt","postgresql:REL_10_23:src/backend/utils/errcodes.txt","postgresql:REL_10_2:src/backend/utils/errcodes.txt","postgresql:REL_10_3:src/backend/utils/errcodes.txt","postgresql:REL_10_4:src/backend/utils/errcodes.txt","postgresql:REL_10_5:src/backend/utils/errcodes.txt","postgresql:REL_10_6:src/backend/utils/errcodes.txt","postgresql:REL_10_7:src/backend/utils/errcodes.txt","postgresql:REL_10_8:src/backend/utils/errcodes.txt","postgresql:REL_10_9:src/backend/utils/errcodes.txt","postgresql:REL_11_0:src/backend/utils/errcodes.txt","postgresql:REL_11_10:src/backend/utils/errcodes.txt","postgresql:REL_11_11:src/backend/utils/errcodes.txt","postgresql:REL_11_12:src/backend/utils/errcodes.txt","postgresql:REL_11_13:src/backend/utils/errcodes.txt","postgresql:REL_11_14:src/backend/utils/errcodes.txt","postgresql:REL_11_15:src/backend/utils/errcodes.txt","postgresql:REL_11_16:src/backend/utils/errcodes.txt","postgresql:REL_11_17:src/backend/utils/errcodes.txt","postgresql:REL_11_18:src/backend/utils/errcodes.txt","postgresql:REL_11_19:src/backend/utils/errcodes.txt","postgresql:REL_11_1:src/backend/utils/errcodes.txt","postgresql:REL_11_20:src/backend/utils/errcodes.txt","postgresql:REL_11_21:src/backend/utils/errcodes.txt","postgresql:REL_11_22:src/backend/utils/errcodes.txt","postgresql:REL_11_2:src/backend/utils/errcodes.txt","postgresql:REL_11_3:src/backend/utils/errcodes.txt","postgresql:REL_11_4:src/backend/utils/errcodes.txt","postgresql:REL_11_5:src/backend/utils/errcodes.txt","postgresql:REL_11_6:src/backend/utils/errcodes.txt","postgresql:REL_11_7:src/backend/utils/errcodes.txt","postgresql:REL_11_8:src/backend/utils/errcodes.txt","postgresql:REL_11_9:src/backend/utils/errcodes.txt","postgresql:REL_12_0:src/backend/utils/errcodes.txt","postgresql:REL_12_10:src/backend/utils/errcodes.txt","postgresql:REL_12_11:src/backend/utils/errcodes.txt","postgresql:REL_12_12:src/backend/utils/errcodes.txt","postgresql:REL_12_13:src/backend/utils/errcodes.txt","postgresql:REL_12_14:src/backend/utils/errcodes.txt","postgresql:REL_12_15:src/backend/utils/errcodes.txt","postgresql:REL_12_16:src/backend/utils/errcodes.txt","postgresql:REL_12_17:src/backend/utils/errcodes.txt","postgresql:REL_12_18:src/backend/utils/errcodes.txt","postgresql:REL_12_19:src/backend/utils/errcodes.txt","postgresql:REL_12_1:src/backend/utils/errcodes.txt","postgresql:REL_12_20:src/backend/utils/errcodes.txt","postgresql:REL_12_21:src/backend/utils/errcodes.txt","postgresql:REL_12_22:src/backend/utils/errcodes.txt","postgresql:REL_12_2:src/backend/utils/errcodes.txt","postgresql:REL_12_3:src/backend/utils/errcodes.txt","postgresql:REL_12_4:src/backend/utils/errcodes.txt","postgresql:REL_12_5:src/backend/utils/errcodes.txt","postgresql:REL_12_6:src/backend/utils/errcodes.txt","postgresql:REL_12_7:src/backend/utils/errcodes.txt","postgresql:REL_12_8:src/backend/utils/errcodes.txt","postgresql:REL_12_9:src/backend/utils/errcodes.txt","postgresql:REL_13_0:src/backend/utils/errcodes.txt","postgresql:REL_13_10:src/backend/utils/errcodes.txt","postgresql:REL_13_11:src/backend/utils/errcodes.txt","postgresql:REL_13_12:src/backend/utils/errcodes.txt","postgresql:REL_13_13:src/backend/utils/errcodes.txt","postgresql:REL_13_14:src/backend/utils/errcodes.txt","postgresql:REL_13_15:src/backend/utils/errcodes.txt","postgresql:REL_13_16:src/backend/utils/errcodes.txt","postgresql:REL_13_17:src/backend/utils/errcodes.txt","postgresql:REL_13_18:src/backend/utils/errcodes.txt","postgresql:REL_13_19:src/backend/utils/errcodes.txt","postgresql:REL_13_1:src/backend/utils/errcodes.txt","postgresql:REL_13_20:src/backend/utils/errcodes.txt","postgresql:REL_13_21:src/backend/utils/errcodes.txt","postgresql:REL_13_22:src/backend/utils/errcodes.txt","postgresql:REL_13_23:src/backend/utils/errcodes.txt","postgresql:REL_13_2:src/backend/utils/errcodes.txt","postgresql:REL_13_3:src/backend/utils/errcodes.txt","postgresql:REL_13_4:src/backend/utils/errcodes.txt","postgresql:REL_13_5:src/backend/utils/errcodes.txt","postgresql:REL_13_6:src/backend/utils/errcodes.txt","postgresql:REL_13_7:src/backend/utils/errcodes.txt","postgresql:REL_13_8:src/backend/utils/errcodes.txt","postgresql:REL_13_9:src/backend/utils/errcodes.txt","postgresql:REL_14_0:src/backend/utils/errcodes.txt","postgresql:REL_14_10:src/backend/utils/errcodes.txt","postgresql:REL_14_11:src/backend/utils/errcodes.txt","postgresql:REL_14_12:src/backend/utils/errcodes.txt","postgresql:REL_14_13:src/backend/utils/errcodes.txt","postgresql:REL_14_14:src/backend/utils/errcodes.txt","postgresql:REL_14_15:src/backend/utils/errcodes.txt","postgresql:REL_14_16:src/backend/utils/errcodes.txt","postgresql:REL_14_17:src/backend/utils/errcodes.txt","postgresql:REL_14_18:src/backend/utils/errcodes.txt","postgresql:REL_14_19:src/backend/utils/errcodes.txt","postgresql:REL_14_1:src/backend/utils/errcodes.txt","postgresql:REL_14_20:src/backend/utils/errcodes.txt","postgresql:REL_14_21:src/backend/utils/errcodes.txt","postgresql:REL_14_22:src/backend/utils/errcodes.txt","postgresql:REL_14_23:src/backend/utils/errcodes.txt","postgresql:REL_14_24:src/backend/utils/errcodes.txt","postgresql:REL_14_2:src/backend/utils/errcodes.txt","postgresql:REL_14_3:src/backend/utils/errcodes.txt","postgresql:REL_14_4:src/backend/utils/errcodes.txt","postgresql:REL_14_5:src/backend/utils/errcodes.txt","postgresql:REL_14_6:src/backend/utils/errcodes.txt","postgresql:REL_14_7:src/backend/utils/errcodes.txt","postgresql:REL_14_8:src/backend/utils/errcodes.txt","postgresql:REL_14_9:src/backend/utils/errcodes.txt","postgresql:REL_15_0:src/backend/utils/errcodes.txt","postgresql:REL_15_10:src/backend/utils/errcodes.txt","postgresql:REL_15_11:src/backend/utils/errcodes.txt","postgresql:REL_15_12:src/backend/utils/errcodes.txt","postgresql:REL_15_13:src/backend/utils/errcodes.txt","postgresql:REL_15_14:src/backend/utils/errcodes.txt","postgresql:REL_15_15:src/backend/utils/errcodes.txt","postgresql:REL_15_16:src/backend/utils/errcodes.txt","postgresql:REL_15_17:src/backend/utils/errcodes.txt","postgresql:REL_15_18:src/backend/utils/errcodes.txt","postgresql:REL_15_19:src/backend/utils/errcodes.txt","postgresql:REL_15_1:src/backend/utils/errcodes.txt","postgresql:REL_15_2:src/backend/utils/errcodes.txt","postgresql:REL_15_3:src/backend/utils/errcodes.txt","postgresql:REL_15_4:src/backend/utils/errcodes.txt","postgresql:REL_15_5:src/backend/utils/errcodes.txt","postgresql:REL_15_6:src/backend/utils/errcodes.txt","postgresql:REL_15_7:src/backend/utils/errcodes.txt","postgresql:REL_15_8:src/backend/utils/errcodes.txt","postgresql:REL_15_9:src/backend/utils/errcodes.txt","postgresql:REL_16_0:src/backend/utils/errcodes.txt","postgresql:REL_16_10:src/backend/utils/errcodes.txt","postgresql:REL_16_11:src/backend/utils/errcodes.txt","postgresql:REL_16_12:src/backend/utils/errcodes.txt","postgresql:REL_16_13:src/backend/utils/errcodes.txt","postgresql:REL_16_14:src/backend/utils/errcodes.txt","postgresql:REL_16_15:src/backend/utils/errcodes.txt","postgresql:REL_16_1:src/backend/utils/errcodes.txt","postgresql:REL_16_2:src/backend/utils/errcodes.txt","postgresql:REL_16_3:src/backend/utils/errcodes.txt","postgresql:REL_16_4:src/backend/utils/errcodes.txt","postgresql:REL_16_5:src/backend/utils/errcodes.txt","postgresql:REL_16_6:src/backend/utils/errcodes.txt","postgresql:REL_16_7:src/backend/utils/errcodes.txt","postgresql:REL_16_8:src/backend/utils/errcodes.txt","postgresql:REL_16_9:src/backend/utils/errcodes.txt","postgresql:REL_17_0:src/backend/utils/errcodes.txt","postgresql:REL_17_10:src/backend/utils/errcodes.txt","postgresql:REL_17_11:src/backend/utils/errcodes.txt","postgresql:REL_17_1:src/backend/utils/errcodes.txt","postgresql:REL_17_2:src/backend/utils/errcodes.txt","postgresql:REL_17_3:src/backend/utils/errcodes.txt","postgresql:REL_17_4:src/backend/utils/errcodes.txt","postgresql:REL_17_5:src/backend/utils/errcodes.txt","postgresql:REL_17_6:src/backend/utils/errcodes.txt","postgresql:REL_17_7:src/backend/utils/errcodes.txt","postgresql:REL_17_8:src/backend/utils/errcodes.txt","postgresql:REL_17_9:src/backend/utils/errcodes.txt","postgresql:REL_18_0:src/backend/utils/errcodes.txt","postgresql:REL_18_1:src/backend/utils/errcodes.txt","postgresql:REL_18_2:src/backend/utils/errcodes.txt","postgresql:REL_18_3:src/backend/utils/errcodes.txt","postgresql:REL_18_4:src/backend/utils/errcodes.txt","postgresql:REL_18_6:src/backend/utils/errcodes.txt","postgresql:REL_19_BETA3:src/backend/utils/errcodes.txt"],"notes":"Presence in a PostgreSQL release definition file is established; runtime throw/use scanning is maintained separately.","scope":"release-definition-catalogue","status":"definition_only"},{"evidence_ids":[],"notes":"No occurrence was found in the locked 7.4..8.4 definition files; 7.0..7.3 source gaps remain explicit.","scope":"pre9-definition-history","status":"unknown"}]},"Evidence":[{"Kind":"claims","Ordinal":0,"ID":"identity.class-and-condition","ServerVersion":null,"Status":null,"Payload":{"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.428C9.18.6"],"statement":"428C9 is the generated_always condition in Class 42."}},{"Kind":"claims","Ordinal":1,"ID":"mechanism.selected-source-path","ServerVersion":null,"Status":null,"Payload":{"claim_id":"mechanism.selected-source-path","limits":"Representative confirmed core paths only; not exhaustive historical or extension coverage.","method":"Read complete resolved REL_18_6 report groups and message roles.","position":1,"runtime":[],"sources":["src.call.428C9.353c4cc772b5ae9adad09c67","src.call.428C9.47aaa60ecb1566d462ffaa86","src.call.428C9.8585d423db2446a6222cbf57","src.call.428C9.generated-update"],"statement":"The fixed rewrite branches compute apply_default for omitted INSERT targets and DEFAULT nodes. GENERATED ALWAYS identity INSERTs reject non-default values unless OVERRIDING SYSTEM VALUE is present; OVERRIDING USER VALUE forces the default, while BY DEFAULT identity accepts a supplied value unless USER VALUE is requested. Generated columns accept only DEFAULT. UPDATE guards reject non-default assignments to GENERATED ALWAYS identity and generated columns; virtual generated columns receive a null target entry and stored generated columns are filled by the executor."}},{"Kind":"claims","Ordinal":2,"ID":"versions.catalogue-boundary","ServerVersion":null,"Status":null,"Payload":{"claim_id":"versions.catalogue-boundary","limits":"First observed release is a lower bound, not precise behavioral introduction.","method":"Read locked catalogue facts and definition snapshots.","position":2,"runtime":[],"sources":["src.errcodes.428C9.18.6"],"statement":"The catalogue records the condition by 10.0 and locks snapshots through 18.6 and 19beta3; this is a definition lower bound, not a shared introduction point for identity, stored-generated, and virtual-generated features. The selected mechanism is fixed 18.6 source and runtime was not run."}},{"Kind":"messages","Ordinal":0,"ID":"message.variant-1","ServerVersion":null,"Status":null,"Payload":{"limits":"Placeholders remain dynamic source fields; no concrete runtime value is claimed.","message_id":"message.variant-1","path":"","position":0,"raw":{"detail_templates":["Column \"%s\" is an identity column defined as GENERATED ALWAYS."],"hint_templates":["Use OVERRIDING SYSTEM VALUE to override."],"id":"message.variant-1","limits":"Placeholders remain dynamic source fields; no concrete runtime value is claimed.","primary_template":"cannot insert a non-DEFAULT value into column \"%s\"","roles":[{"role":"errmsg","template":"cannot insert a non-DEFAULT value into column \"%s\""},{"role":"errdetail","template":"Column \"%s\" is an identity column defined as GENERATED ALWAYS."},{"role":"errhint","template":"Use OVERRIDING SYSTEM VALUE to override."}],"severity_source":"explicit ERROR","sources":["src.call.428C9.353c4cc772b5ae9adad09c67"],"sqlstate":"428C9"},"severity":"explicit ERROR","sources":["src.call.428C9.353c4cc772b5ae9adad09c67"],"templates":[{"kind":"primary","literal":"cannot insert a non-DEFAULT value into column \" \"","position":0,"role":"","template":"cannot insert a non-DEFAULT value into column \"%s\""},{"kind":"detail","literal":"Column \" \" is an identity column defined as GENERATED ALWAYS.","position":1,"role":"","template":"Column \"%s\" is an identity column defined as GENERATED ALWAYS."},{"kind":"hint","literal":"Use OVERRIDING SYSTEM VALUE to override.","position":2,"role":"","template":"Use OVERRIDING SYSTEM VALUE to override."},{"kind":"primary","literal":"Column \" \" is an identity column defined as GENERATED ALWAYS.","position":3,"role":"errdetail","template":"Column \"%s\" is an identity column defined as GENERATED ALWAYS."},{"kind":"primary","literal":"Use OVERRIDING SYSTEM VALUE to override.","position":4,"role":"errhint","template":"Use OVERRIDING SYSTEM VALUE to override."}]}},{"Kind":"messages","Ordinal":1,"ID":"message.variant-2","ServerVersion":null,"Status":null,"Payload":{"limits":"Placeholders remain dynamic source fields; no concrete runtime value is claimed.","message_id":"message.variant-2","path":"","position":1,"raw":{"detail_templates":["Column \"%s\" is a generated column."],"hint_templates":[],"id":"message.variant-2","limits":"Placeholders remain dynamic source fields; no concrete runtime value is claimed.","primary_template":"cannot insert a non-DEFAULT value into column \"%s\"","roles":[{"role":"errmsg","template":"cannot insert a non-DEFAULT value into column \"%s\""},{"role":"errdetail","template":"Column \"%s\" is a generated column."}],"severity_source":"explicit ERROR","sources":["src.call.428C9.47aaa60ecb1566d462ffaa86"],"sqlstate":"428C9"},"severity":"explicit ERROR","sources":["src.call.428C9.47aaa60ecb1566d462ffaa86"],"templates":[{"kind":"primary","literal":"cannot insert a non-DEFAULT value into column \" \"","position":0,"role":"","template":"cannot insert a non-DEFAULT value into column \"%s\""},{"kind":"detail","literal":"Column \" \" is a generated column.","position":1,"role":"","template":"Column \"%s\" is a generated column."},{"kind":"primary","literal":"Column \" \" is a generated column.","position":2,"role":"errdetail","template":"Column \"%s\" is a generated column."}]}},{"Kind":"messages","Ordinal":2,"ID":"message.variant-3","ServerVersion":null,"Status":null,"Payload":{"limits":"Placeholders remain dynamic source fields; no concrete runtime value is claimed.","message_id":"message.variant-3","path":"","position":2,"raw":{"detail_templates":["Column \"%s\" is an identity column defined as GENERATED ALWAYS."],"hint_templates":[],"id":"message.variant-3","limits":"Placeholders remain dynamic source fields; no concrete runtime value is claimed.","primary_template":"column \"%s\" can only be updated to DEFAULT","roles":[{"role":"errmsg","template":"column \"%s\" can only be updated to DEFAULT"},{"role":"errdetail","template":"Column \"%s\" is an identity column defined as GENERATED ALWAYS."}],"severity_source":"explicit ERROR","sources":["src.call.428C9.8585d423db2446a6222cbf57"],"sqlstate":"428C9"},"severity":"explicit ERROR","sources":["src.call.428C9.8585d423db2446a6222cbf57"],"templates":[{"kind":"primary","literal":"column \" \" can only be updated to DEFAULT","position":0,"role":"","template":"column \"%s\" can only be updated to DEFAULT"},{"kind":"detail","literal":"Column \" \" is an identity column defined as GENERATED ALWAYS.","position":1,"role":"","template":"Column \"%s\" is an identity column defined as GENERATED ALWAYS."},{"kind":"primary","literal":"Column \" \" is an identity column defined as GENERATED ALWAYS.","position":2,"role":"errdetail","template":"Column \"%s\" is an identity column defined as GENERATED ALWAYS."}]}},{"Kind":"messages","Ordinal":3,"ID":"message.variant-4","ServerVersion":null,"Status":null,"Payload":{"limits":"Placeholders remain dynamic source fields; no concrete runtime value is claimed.","message_id":"message.variant-4","path":"","position":3,"raw":{"detail_templates":["Column \"%s\" is a generated column."],"hint_templates":[],"id":"message.variant-4","limits":"Placeholders remain dynamic source fields; no concrete runtime value is claimed.","primary_template":"column \"%s\" can only be updated to DEFAULT","roles":[{"role":"errmsg","template":"column \"%s\" can only be updated to DEFAULT"},{"role":"errdetail","template":"Column \"%s\" is a generated column."}],"severity_source":"explicit ERROR","sources":["src.call.428C9.generated-update"],"sqlstate":"428C9"},"severity":"explicit ERROR","sources":["src.call.428C9.generated-update"],"templates":[{"kind":"primary","literal":"column \" \" can only be updated to DEFAULT","position":0,"role":"","template":"column \"%s\" can only be updated to DEFAULT"},{"kind":"detail","literal":"Column \" \" is a generated column.","position":1,"role":"","template":"Column \"%s\" is a generated column."},{"kind":"primary","literal":"Column \" \" is a generated column.","position":2,"role":"errdetail","template":"Column \"%s\" is a generated column."}]}},{"Kind":"sources","Ordinal":0,"ID":"src.errcodes.428C9.18.6","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"line 355","path":"src/backend/utils/errcodes.txt","position":0,"sha256":"6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba","source_id":"src.errcodes.428C9.18.6","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L355"}},{"Kind":"sources","Ordinal":1,"ID":"src.call.428C9.353c4cc772b5ae9adad09c67","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"lines 942-948","path":"src/backend/rewrite/rewriteHandler.c","position":1,"sha256":"5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a","source_id":"src.call.428C9.353c4cc772b5ae9adad09c67","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L942-L948"}},{"Kind":"sources","Ordinal":2,"ID":"src.call.428C9.47aaa60ecb1566d462ffaa86","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"lines 981-986","path":"src/backend/rewrite/rewriteHandler.c","position":2,"sha256":"5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a","source_id":"src.call.428C9.47aaa60ecb1566d462ffaa86","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L981-L986"}},{"Kind":"sources","Ordinal":3,"ID":"src.call.428C9.8585d423db2446a6222cbf57","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"lines 1008-1013","path":"src/backend/rewrite/rewriteHandler.c","position":3,"sha256":"5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a","source_id":"src.call.428C9.8585d423db2446a6222cbf57","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L1008-L1013"}},{"Kind":"sources","Ordinal":4,"ID":"src.call.428C9.generated-update","ServerVersion":null,"Status":null,"Payload":{"commit":"724edf9bde9d356724ad384a2e196edc3c9f80f7","docs_url":"","kind":"upstream_source","location":"lines 1015-1030","path":"src/backend/rewrite/rewriteHandler.c","position":4,"sha256":"5a34bf31f424abbf46cd926da1fefcd9360c4d527a87d8a0ac9f653d67c2206a","source_id":"src.call.428C9.generated-update","tag":"REL_18_6","url":"https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/rewrite/rewriteHandler.c#L1015-L1030"}},{"Kind":"sources","Ordinal":5,"ID":"src.calls.REL_18_6.428C9","ServerVersion":null,"Status":null,"Payload":{"commit":"","docs_url":"","kind":"local_artifact","location":"","path":"raw/calls/REL_18_6.jsonl","position":5,"sha256":"9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf","source_id":"src.calls.REL_18_6.428C9","tag":"","url":""}}]}
