Repository navigation
Add nested categorical insights and "plan inventory" - #228
Merged
Merged
Conversation
vogelsgesang
commented
Oct 28, 2026
This commit generalizes the existing "categorical insights" to also support nested categories, rendered as tree views. This new capability is then used to render a "plan inventory", providing an overview over all expressions / operators in the plan. Furthermore, we also provide a list of scanned tables. We support this for almost all supported plan formats, except for the Tableau XML formats. The tree-views support linked graph and source highlighting. Furthermore, they support the usual keyboard navigation as recommended by the ARIA standard for tree-views (arrow-keys, Home, End, Space, and type-ahead navigation). Enter remains available for future per-row actions such as scrolling to a matching node. A collapsed section header indicates when it contains the current highlight.
vogelsgesang
force-pushed
the
feature/plan-inventory
branch
from
October 28, 2026 00:31
1b38a80 to
7f2067d
Compare
vogelsgesang
commented
Oct 28, 2026
vogelsgesang
commented
Oct 28, 2026
vogelsgesang
commented
Oct 28, 2026
vogelsgesang
commented
Oct 28, 2026
vogelsgesang
commented
Oct 28, 2026
vogelsgesang
commented
Oct 28, 2026
vogelsgesang
commented
Oct 28, 2026
vogelsgesang
commented
Oct 28, 2026
vogelsgesang
force-pushed
the
feature/plan-inventory
branch
3 times, most recently
from
October 28, 2026 21:46
bf3cec7 to
3a563d8
Compare
Remove default padding from collapsible panel bodies so each panel can control its content spacing. Give Plan Metadata its own margin and use consistent spacing around insight sections instead of divider borders. Organize the touched CSS around component rules and use a named insight toggle selector. Share one chevron SVG and rotation animation across panels, insight sections, and category trees, including reduced-motion behavior. Keep the focused tree row when its label matches the typed prefix, without special cycling behavior.
vogelsgesang
force-pushed
the
feature/plan-inventory
branch
from
October 28, 2026 22:00
3a563d8 to
92d3296
Compare
vogelsgesang
commented
Oct 28, 2026
Use one disclosure slot for both expandable and leaf categories, since the shared chevron already hides its graphic from assistive technology. Use classcat for the active row class to match other conditional classes in the UI.
Let ChevronIcon own its compact and regular size, flex basis, and stroke width. Callers now choose the regular variant where needed instead of overriding the SVG styles from panel and insight CSS.
Expansion choices now belong to computed category objects and reset when those objects are recomputed. Preserve descendants while a parent is temporarily collapsed, and clear local hover, focus, tab stop, and type-ahead state when the category data changes.
vogelsgesang
commented
Oct 28, 2026
The recursive component renders a tree item and its descendants, so CategoryTreeElement describes its scope more accurately than CategoryRow.
Split the broad inventory UI scenario into focused tree interaction and insight panel tests. Share only the JSDOM fixture setup, keep engine-specific expectations together, and use synthetic definitions to cover generic categorical aggregation. Add checks for empty results, malformed property values, expansion restoration and reset, and the deepest displayed highlight. This makes failures point to the relevant contract and leaves room to extend the inventory without growing one end-to-end test.
Allow the shared fixture to render components without a graph store, then use it for the collapsible panel tests. This removes duplicate JSDOM, React root, CSS import, and global cleanup setup while keeping each test's component-specific callbacks local.
Document why each assertion group matters across aggregation, engine presets, tree interaction, panel disclosure, and property queries. Keep the existing test behavior unchanged so future failures are easier to interpret.
vogelsgesang
commented
Oct 29, 2026
Dump all configured insight sections, category levels, and occurrence counts for analyzed TPC-H Q2 plans from Hyper, Umbra, CedarDB, Postgres, and DuckDB. Keep the baselines as readable trees, remove redundant basic scan examples, and retain focused tests for edge cases absent from Q2.
vogelsgesang
commented
Oct 29, 2026
Rename inventory baselines to insights so the same fixture setup can cover future insight definitions. Add golden output for set operations and alternate scan spellings, plus a small Hyper external-scan JSON plan. Document each plan's intended coverage in the test table and remove synthetic preset checks for missing values and unfamiliar tags.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This commit generalizes the existing "categorical insights" to also
support nested categories, rendered as tree views. This new capability
is then used to render a "plan inventory", providing an overview over
all expressions / operators in the plan. Furthermore, we also provide a
list of scanned tables. We support this for almost all supported plan
formats, except for the Tableau XML formats.
The tree-views support linked graph and source highlighting.
Furthermore, they support the usual keyboard navigation as recommended
by the ARIA standard for tree-views (arrow-keys, Home, End, Space, and
type-ahead navigation). Enter remains available for future per-row
actions such as scrolling to a matching node.
A collapsed section header indicates when it contains the current
highlight.