Skip to content

docs: correct stale support claims in README - #61

Merged
alex-clickhouse merged 1 commit into
mainfrom
docs/readme-accuracy-fixes
Aug 14, 2026
Merged

docs: correct stale support claims in README#61
alex-clickhouse merged 1 commit into
mainfrom
docs/readme-accuracy-fixes

Conversation

@alex-clickhouse

Copy link
Copy Markdown
Collaborator

Problem

The README Not Yet Implemented list said joins, subqueries, set operations, and JSON path query translation were missing. All four are implemented and covered by tests, so the README understated the provider.

Claim Reality
"JOINs, subqueries, set operations" Shipped in v0.2.0/v0.3.0. Covered by JoinAndSetOperationTests.cs and the inherited NorthwindJoinQueryRelationalTestBase / NorthwindSetOperationsQueryRelationalTestBase suites.
"No JSON path translation" (stated twice) Implemented in 93fb38b. JsonNode indexing translates to native dot and subscript syntax. Covered by JsonNodeTranslationTests.cs.

Changes

  • New Joins, Subqueries, and Set Operations sections. Each one records the ClickHouse-specific behaviour a user must know: the automatic join_use_nulls=1 with its DisableJoinNullSemantics() opt-out, the ifNull(..., 0) wrap for COUNT/SUM scalar subqueries, and the explicit ALL/DISTINCT modifier that ClickHouse needs because union_default_mode is empty.
  • JSON path querying and simpleJSON*. One worked example of a translated path filter, plus the seven EF.Functions.SimpleJson* helpers, which the README did not mention at all.
  • Rewritten Not Yet Implemented list. The two incorrect entries are replaced with real gaps found while verifying: server-generated values, .ToJson() owned entities, queries that EF Core lowers to CROSS APPLY/OUTER APPLY, and set operations after a client projection.
  • Clarified the JSON integer-precision note, which applies to in-memory JsonNode inspection and not to a translated path query.

Verification

Every added claim was checked against the source and the tests. Notable corrections made during review:

  • A variable JSON key does not "fall back to client evaluation". ClickHouseJsonNodeTranslator matches SqlConstantExpression only, so a Where throws. Client evaluation is possible only in a final Select.
  • The Join_Local_*Collection_Works tests are ContainsIN, not joins. Local-sequence joins are covered for int[]/string[]/byte[] through the Northwind base suite, so the two cases are now described separately.
  • An earlier draft claimed Include of a collection navigation hits the APPLY limit. That was unsupported speculation and was removed.

Docs only. No source changes, so no build or test impact.

🤖 Generated with Claude Code

The "Not Yet Implemented" list said joins, subqueries, set operations,
and JSON path translation were missing. All four are implemented and
covered by tests.

- Add Joins, Subqueries, and Set Operations sections. Each records the
  ClickHouse-specific behaviour: the automatic `join_use_nulls=1` and
  its `DisableJoinNullSemantics()` opt-out, the `ifNull(..., 0)` wrap
  for COUNT/SUM scalar subqueries, and the explicit ALL/DISTINCT
  modifier that ClickHouse needs for set operations.
- Document JSON path querying and the seven `EF.Functions.SimpleJson*`
  helpers, which the README did not mention.
- Replace the two incorrect "Not Yet Implemented" entries with the real
  gaps: server-generated values, `.ToJson()` owned entities, queries
  that lower to CROSS APPLY / OUTER APPLY, and set operations after a
  client projection.
- Clarify the JSON integer-precision note, which applies to in-memory
  inspection and not to a translated path query.

Docs only. No source changes.

Co-Authored-By: Claude <noreply@anthropic.com>
@codecov

codecov Bot commented Aug 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@alex-clickhouse
alex-clickhouse merged commit d7f1cb8 into main Aug 14, 2026
3 checks passed
@alex-clickhouse
alex-clickhouse deleted the docs/readme-accuracy-fixes branch August 14, 2026 09:58
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