From cc427f61a6aff4606338a3e8a4e8ee5431a52cc2 Mon Sep 17 00:00:00 2001 From: Widthdom Date: Fri, 31 Jul 2026 22:40:42 +0900 Subject: [PATCH] Fix SQL generated-column reference persistence --- DEVELOPER_GUIDE.md | 2 ++ .../+sql-generated-column-reference-kind.fixed.md | 15 +++++++++++++++ src/CodeIndex/Models/SymbolKindCatalog.cs | 1 + tests/CodeIndex.Tests/ReferenceExtractorTests.cs | 5 +++++ 4 files changed, 23 insertions(+) create mode 100644 changelog.d/unreleased/+sql-generated-column-reference-kind.fixed.md diff --git a/DEVELOPER_GUIDE.md b/DEVELOPER_GUIDE.md index 6d9c34b89..b00bb7130 100644 --- a/DEVELOPER_GUIDE.md +++ b/DEVELOPER_GUIDE.md @@ -864,6 +864,7 @@ filters remain exact, so `--kind import` does not include local type declaration | `extends` | Inheritance or type-extension relationship | | `from` | Dockerfile `FROM ` dependency | | `friend` | C++ friend declaration relationship | +| `generated_column_dependency` | SQL generated/computed-column expression dependency | | `generic_type_argument` | Generic type argument attached to an explicit invocation | | `implement` | Interface implementation relationship | | `implicit_implementation` | C# implicit interface implementation relationship | @@ -4271,6 +4272,7 @@ filter、downstream JSON consumer が同じ値を理解できるようにして | `extends` | inheritance または type-extension relationship | | `from` | Dockerfile `FROM ` dependency | | `friend` | C++ friend declaration relationship | +| `generated_column_dependency` | SQL generated / computed column 式の dependency | | `generic_type_argument` | explicit invocation に付随する generic type argument | | `implement` | interface implementation relationship | | `implicit_implementation` | C# implicit interface implementation relationship | diff --git a/changelog.d/unreleased/+sql-generated-column-reference-kind.fixed.md b/changelog.d/unreleased/+sql-generated-column-reference-kind.fixed.md new file mode 100644 index 000000000..457837444 --- /dev/null +++ b/changelog.d/unreleased/+sql-generated-column-reference-kind.fixed.md @@ -0,0 +1,15 @@ +--- +category: fixed +affected: + - src/CodeIndex/Models/SymbolKindCatalog.cs + - tests/CodeIndex.Tests/ReferenceExtractorTests.cs + - DEVELOPER_GUIDE.md +--- + +## English + +- **SQL generated-column references no longer fail during indexing** — registered the `generated_column_dependency` reference kind emitted for generated/computed-column expressions, so persisting SQL reference batches no longer raises `ArgumentException`. + +## 日本語 + +- **SQL generated column の参照で index が失敗しなくなりました** — generated / computed column 式で抽出される `generated_column_dependency` reference kind を登録し、SQL reference batch の永続化時に `ArgumentException` が発生しないようにしました。 diff --git a/src/CodeIndex/Models/SymbolKindCatalog.cs b/src/CodeIndex/Models/SymbolKindCatalog.cs index c77aae32a..f7db928f8 100644 --- a/src/CodeIndex/Models/SymbolKindCatalog.cs +++ b/src/CodeIndex/Models/SymbolKindCatalog.cs @@ -113,6 +113,7 @@ public static class SymbolKindCatalog "extends", "from", "friend", + "generated_column_dependency", "generic_type_argument", "implement", "implicit_implementation", diff --git a/tests/CodeIndex.Tests/ReferenceExtractorTests.cs b/tests/CodeIndex.Tests/ReferenceExtractorTests.cs index 4955ec884..bbb1fb0e9 100644 --- a/tests/CodeIndex.Tests/ReferenceExtractorTests.cs +++ b/tests/CodeIndex.Tests/ReferenceExtractorTests.cs @@ -8739,6 +8739,11 @@ created_at timestamp DEFAULT CURRENT_TIMESTAMP Assert.DoesNotContain(references, r => r.SymbolName == "GENERATED" && r.ReferenceKind == "generated_column_dependency"); Assert.DoesNotContain(references, r => r.SymbolName == "DEFAULT" && r.ReferenceKind == "generated_column_dependency"); Assert.DoesNotContain(references, r => r.SymbolName == "CURRENT_TIMESTAMP" && r.ReferenceKind == "generated_column_dependency"); + Assert.All( + references, + reference => Assert.True( + SymbolKindCatalog.IsValidReferenceKind(reference.ReferenceKind), + $"SQL extractor emitted unregistered reference kind '{reference.ReferenceKind}'.")); } [Fact]