Skip to content

W-23900223 : Hyper Query Plan - Replace raw property dumps with tidy node rows. - #173

Open
rbrahmachary wants to merge 1 commit into
tableau:mainfrom
rbrahmachary:rabrahma_qg_node_enhancements
Open

W-23900223 : Hyper Query Plan - Replace raw property dumps with tidy node rows.#173
rbrahmachary wants to merge 1 commit into
tableau:mainfrom
rbrahmachary:rabrahma_qg_node_enhancements

Conversation

@rbrahmachary

Copy link
Copy Markdown
Contributor

Hyper Query Plan - Replace raw property dumps with tidy node rows.
Node bodies previously dumped debug-name, statistics, and sqlpos verbatim via forceToString, producing noisy JSON blobs. Surface the useful figures as clean, curated rows instead.

  • Replace the raw dump with curated rows: table-or-alias (from debug-name.value), estimated-rows, output-rows, processed-rows, rows-matching, memory-bytes, cpu-cycles, execution-time
  • New : Add a grouped table-metadata block (identifier / partitioned-by /sort-order) for lakehouse scans, rendered as a header plus sub-items
  • Show memory-bytes in binary units via a new formatBytes helper (KiB/MiB/GiB), clearer than the decimal formatMetric
  • Display row order: identity/volume first, operator identifiers last
  • Echo the runtime hotspot flag onto the cpu-cycles row, reusing the node heat color so the tint intensity matches the label
  • Add getStatistic / getEstimatedRows / getActualRows helpers that read statistics and fall back to legacy analyze / cardinality
  • Add a firstNumber helper that skips non-numeric values instead of masking a real number further down the fallback chain
  • Reuse those helpers for the edge label, hotspot heatmap, and errored-icon detection, keeping tooltip figures and visual cues consistent (including on legacy-format plans)
  • Extract the hotspot and cardinality-mismatch magic numbers into constants
  • Add groupedProperties / highlightedProperties to TreeNode and the grouped-header / highlighted-row rendering in QueryNode

Query Graph node rows:-
Screenshot 2026-09-09 at 4 47 13 PM
Screenshot 2026-09-09 at 4 47 16 PM
Screenshot 2026-09-09 at 4 47 33 PM

  Node bodies previously dumped debug-name, statistics, and sqlpos verbatim via forceToString, producing noisy JSON blobs. Surface the useful figures as clean, curated rows instead.

  - Replace the raw dump with curated rows: table-or-alias (from debug-name.value), estimated-rows, output-rows, processed-rows, rows-matching, memory-bytes, cpu-cycles, execution-time
  - New : Add a grouped table-metadata block (identifier / partitioned-by /sort-order) for lakehouse scans, rendered as a header plus sub-items
  - Show memory-bytes in binary units via a new formatBytes helper (KiB/MiB/GiB), clearer than the decimal formatMetric
  - Display row order: identity/volume first, operator identifiers last
  - Echo the runtime hotspot flag onto the cpu-cycles row, reusing the node heat color so the tint intensity matches the label
  - Add getStatistic / getEstimatedRows / getActualRows helpers that read statistics and fall back to legacy analyze / cardinality
  - Add a firstNumber helper that skips non-numeric values instead of masking a real number further down the fallback chain
  - Reuse those helpers for the edge label, hotspot heatmap, and errored-icon detection, keeping tooltip figures and visual cues consistent (including on legacy-format plans)
  - Extract the hotspot and cardinality-mismatch magic numbers into constants
  - Add groupedProperties / highlightedProperties to TreeNode and the grouped-header / highlighted-row rendering in QueryNode
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant