Skip to content

fix(cubejs): strip emptyCube.emptyKey order placeholder (Tesseract compat)#63

Merged
acmeguy merged 1 commit into
mainfrom
fix/emptycube-order-guard
Jul 7, 2026
Merged

fix(cubejs): strip emptyCube.emptyKey order placeholder (Tesseract compat)#63
acmeguy merged 1 commit into
mainfrom
fix/emptycube-order-guard

Conversation

@acmeguy

@acmeguy acmeguy commented Jul 7, 2026

Copy link
Copy Markdown

The client query builder sends order: {"emptyCube.emptyKey":"asc"} as a "no order" sentinel. Legacy Cube ignored the unresolvable member; Tesseract rejects it (Cannot resolve: emptyCube) → 500. This strips any emptyCube.* order entry in the queryRewrite hook before the planner sees it (object + array forms) — restoring legacy tolerance and making the backend robust to the placeholder from any client version.

Verified locally on 1.6.68: the exact failing query went 400 → 200 on both legacy and Tesseract after the guard. Read-only, no data impact.

Pairs with the client-v2 root-cause fix (normalizeOrders filter).

🤖 Generated with Claude Code

The client query builder emits `order: {"emptyCube.emptyKey":"asc"}` as a
"no order selected" sentinel. The legacy Cube planner silently ignored the
unresolvable member; the Tesseract planner rejects it ("Cannot resolve:
emptyCube"), 500-ing the query. Strip any `emptyCube.*` order entry in the
queryRewrite hook before it reaches the planner (handles object + array
order forms) — restores legacy tolerance and makes the backend robust to
this placeholder regardless of client version.

Verified locally on 1.6.68: the exact failing query (order with
emptyCube.emptyKey) went 400 "Cannot resolve: emptyCube" → 200 OK on both
legacy and Tesseract planners after the guard.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@acmeguy acmeguy merged commit 643e74c into main Jul 7, 2026
3 checks passed
@acmeguy acmeguy deleted the fix/emptycube-order-guard branch July 7, 2026 20:18
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