Skip to content

Support kebab-case Hyper plan JSON keys (backward compatible)#138

Open
PerFuchs wants to merge 1 commit into
mainfrom
worktree-kebab-case-plan-keys
Open

Support kebab-case Hyper plan JSON keys (backward compatible)#138
PerFuchs wants to merge 1 commit into
mainfrom
worktree-kebab-case-plan-keys

Conversation

@PerFuchs

@PerFuchs PerFuchs commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Hyper PR hyper-db#13364 renamed the plan JSON property keys from camelCase to kebab-case (e.g. operatorId → operator-id, debugName → debug-name, valueForComparison → value-for-comparison). Only keys changed — enum/tag values (operator tags, join types, window/aggregate function names) keep their camelCase spelling. This PR adds support for the new casing while keeping backward compatibility with the old casing.

Hyper PR #13364 (hyper-db) renamed plan JSON property keys from camelCase
to kebab-case (e.g. operatorId -> operator-id, debugName -> debug-name,
valueForComparison -> value-for-comparison). Only keys changed; enum/tag
values (operator tags, join types, ...) keep their camelCase spelling.

The Hyper loader is largely key-agnostic, but it reads three renamed keys
by literal name. Accept both spellings so plans produced before and after
the cutover both render:

- operatorId / operator-id (operator id map + crosslink resolution)
- debugName / debug-name   (display name + always-shown property)
- valueForComparison / value-for-comparison (fixed child ordering)

Other referenced keys (analyze, sqlpos, cpu-cycles, tuple-count, and the
crosslink source keys magic/builder/input/source) were not renamed by the
PR and are unchanged. Adds a kebab-case tablescan example plan.
@PerFuchs
PerFuchs marked this pull request as ready for review July 16, 2026 11:51
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