Skip to content

[claude] Drop the shadow *Rows query-rewrite properties - #29

Closed
myieye wants to merge 2 commits into
claude/linq2db-il-patcher-removal-0d387afrom
claude/linq2db-drop-shadow-row-props
Closed

[claude] Drop the shadow *Rows query-rewrite properties#29
myieye wants to merge 2 commits into
claude/linq2db-il-patcher-removal-0d387afrom
claude/linq2db-drop-shadow-row-props

Conversation

@myieye

@myieye myieye commented Aug 19, 2026

Copy link
Copy Markdown
Owner

[Claude, autonomous]

Staging PR — never merge; promoted to sillsdev when polished (see FORK.md). Stacked on #28.

linq2db 6.4.0 honors IsColumn=false at entity materialization (linq2db/linq2db#5578), so the Json.Query rewrite moves back onto the real Sense.SemanticDomains / Entry.PublishIn properties and the shadow *Rows accessors leave the MiniLcm domain model (sillsdev#2291, revert steps 1+2).

The empty-list filter projections now reach the raw column via Sql.Property: linq2db still expands the rewrite inside comparison operands (upstream "PR B" was never filed), so comparing the bare property to '[]' stopped translating. The Sql.Alias peel in Json.cs also stays ("PR C" not filed either).

Verified: the 145 LcmCrdt query/filter tests pass (the 6 missing-publishIn/semanticDomains ones failed before the Sql.Property fix).

Summary by CodeRabbit

  • Bug Fixes
    • Improved filtering for semantic domains and publication data stored in JSON.
    • Ensured nested values are queried and projected correctly.
    • Removed obsolete internal query-rewrite behavior, improving consistency between stored data and application results.

linq2db 6.4.0 honors IsColumn=false at entity materialization
(linq2db/linq2db#5578), so the Json.Query rewrite can live on the real
Sense.SemanticDomains / Entry.PublishIn properties again instead of
shadow accessors leaking into the MiniLcm domain model (issue 2291).

The empty-list filter projections now reach the raw column via
Sql.Property: linq2db still expands the rewrite inside a comparison
operand (upstream "PR B" was never filed), so comparing the bare
property to '[]' stopped translating.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: d1c9f1d4-a25a-4d7e-8cf6-6977e1b957bd

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ec7f01fd-8a0e-46cb-be96-69215b34b2f0

📥 Commits

Reviewing files that changed from the base of the PR and between 68421cb and 6a991b7.

📒 Files selected for processing (5)
  • backend/FwLite/LcmCrdt/EntryFilterMapProvider.cs
  • backend/FwLite/LcmCrdt/LcmCrdtKernel.cs
  • backend/FwLite/MiniLcm.Tests/FluentAssertGlobalConfig.cs
  • backend/FwLite/MiniLcm/Models/Entry.cs
  • backend/FwLite/MiniLcm/Models/Sense.cs
💤 Files with no reviewable changes (3)
  • backend/FwLite/MiniLcm.Tests/FluentAssertGlobalConfig.cs
  • backend/FwLite/MiniLcm/Models/Sense.cs
  • backend/FwLite/MiniLcm/Models/Entry.cs

Included review availability: 3 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.


📝 Walkthrough

Walkthrough

The change updates JSON query mappings to use public SemanticDomains and PublishIn properties. It removes the obsolete row-based rewrite properties and their assertion exclusions.

Changes

JSON property query mapping

Layer / File(s) Summary
Public property query mappings
backend/FwLite/LcmCrdt/EntryFilterMapProvider.cs, backend/FwLite/LcmCrdt/LcmCrdtKernel.cs
Filters and LinqToDB mappings now access SemanticDomains and PublishIn through Sql.Property and Json.Query. Nested codes and IDs are projected from the public collections.
Row property removal and assertion updates
backend/FwLite/MiniLcm/Models/Entry.cs, backend/FwLite/MiniLcm/Models/Sense.cs, backend/FwLite/MiniLcm.Tests/FluentAssertGlobalConfig.cs
The PublishInRows and SemanticDomainRows properties are removed. FluentAssertions no longer excludes those properties.
Estimated code review effort: 2 (Simple) ~15 minutes

Merge Risk: ⚪ Minimal · up to 6a991

The PR updates query rewriting and removes obsolete shadow accessors, with the supplied targeted tests passing. No actionable merge-blocking risk remains beyond normal checks and review.

Suggested reviewers: hahn-kev, rmunn

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: removing the shadow *Rows query-rewrite properties.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/linq2db-drop-shadow-row-props

Comment @coderabbitai help to get the list of available commands.

@myieye

myieye commented Aug 19, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@myieye myieye closed this Aug 19, 2026
@myieye myieye reopened this Aug 19, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@myieye

myieye commented Aug 19, 2026

Copy link
Copy Markdown
Owner Author

Promoted to sillsdev#2582

@myieye myieye closed this Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant