Skip to content

fix(visualization): retarget attributeTypeRules at the properties they name - #7249

Open
kz930 wants to merge 2 commits into
apache:mainfrom
kz930:fix/7210-dead-attribute-type-rules
Open

fix(visualization): retarget attributeTypeRules at the properties they name#7249
kz930 wants to merge 2 commits into
apache:mainfrom
kz930:fix/7210-dead-attribute-type-rules

Conversation

@kz930

@kz930 kz930 commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

Four attributeTypeRules name keys that match no property, so the property editor's findAttributeType returns undefined and checkConstraint returns without checking anything.

LineConfig used the Scala field names rather than the @JsonProperty names, and ScatterMatrixChartOpDesc named value where the property is Selected Attributes; both are retargeted at the property they meant. Scatter3dChartOpDesc and FunnelPlotOpDesc constrained a title that neither operator declares, and did so with the bare string "string" rather than an object, so even under a correct key constraint.enum / const / allOf would all be undefined and the check would still no-op; those two rules are removed rather than invented anew.

Why are the changes needed?

A line chart's x and y axes accept string columns today despite declaring ["integer", "long", "double"], and the same holds for the scatter matrix's dimensions. BandConfig extends LineConfig and inherited the same dead rule. Nothing reports a key that names no property, so the rules read as enforced while enforcing nothing.

Does this PR introduce any user-facing change?

Yes. Selecting a non-numeric column for a line chart's axes or the scatter matrix's Selected Attributes now shows the type warning the rule always intended. Nothing changes for a numeric column, and removing the two title rules changes nothing at all, since they never applied.

How was this patch tested?

WorkflowOperator/compile, WorkflowOperator/scalafmtCheckAll, and the four operators' existing descriptor specs (24 tests, all passing).

Closes #7210

Generated-by: Claude Code (Claude Opus 5)

…y name

LineConfig keyed its rule by the Scala field names and ScatterMatrixChart by
"value" where the property is "Selected Attributes", so the property editor
looked up a property that does not exist and skipped the check. Scatter3d and
FunnelPlot constrained a "title" neither operator declares, with a bare string
rather than an object, so those rules could not have applied under any key;
they are removed rather than invented anew.

Closes apache#7210

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Yicong-Huang Yicong-Huang added the release/v1.2 back porting to release/v1.2 label Aug 2, 2026
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

👋 Thanks for opening this pull request, @kz930!

It looks like the pull request description doesn't quite follow our template yet:

  • The What changes were proposed in this PR? section is missing; please keep the template's headings.
  • The How was this PR tested? section is missing; please keep the template's headings.
  • The Was this PR authored or co-authored using generative AI tooling? section is missing; please keep the template's headings.

Filling out the template helps reviewers understand and triage your contribution faster. Please edit the description to complete it. This message will disappear automatically once the template is followed.

You can find the template prompts by editing the description, or see CONTRIBUTING.md for the full contribution flow.

@github-actions
github-actions Bot requested a review from xuang7 August 2, 2026 07:24
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Backport auto-label report

This fix: PR was checked against each actively-supported release branch. release/* labels drive the post-merge backport, so add or remove one to change where this fix lands.

Release branch Analysis
release/v1.2 Change detected on this branch — label added; this fix is queued to backport here. Requested review from @xuang7.

Auto-label run.

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Automated Reviewer Suggestions

Based on the git blame history of the changed files, we recommend the following reviewers:

  • Contributors with relevant context: @eugenegujing, @carloea2
    You can notify them by mentioning @eugenegujing, @carloea2 in a comment.

@codecov-commenter

codecov-commenter commented Aug 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.64%. Comparing base (436b37e) to head (131e807).

Additional details and impacted files
@@            Coverage Diff            @@
##               main    #7249   +/-   ##
=========================================
  Coverage     82.64%   82.64%           
+ Complexity     4080     4079    -1     
=========================================
  Files          1162     1162           
  Lines         46282    46282           
  Branches       5160     5160           
=========================================
  Hits          38250    38250           
+ Misses         6341     6340    -1     
- Partials       1691     1692    +1     
Flag Coverage Δ *Carryforward flag
access-control-service 70.00% <ø> (ø)
agent-service 83.65% <ø> (ø) Carriedforward from 4b1d1f5
amber 79.30% <ø> (ø)
computing-unit-managing-service 43.60% <ø> (ø)
config-service 65.97% <ø> (ø)
file-service 66.80% <ø> (ø)
frontend 83.55% <ø> (ø) Carriedforward from 4b1d1f5
notebook-migration-service 78.89% <ø> (ø)
pyamber 97.36% <ø> (ø) Carriedforward from 4b1d1f5
workflow-compiling-service 26.31% <ø> (ø)

*This pull request uses carry forward flags. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

⚠️ Benchmark changes need a look

🟢 2 better · 🔴 3 worse · ⚪ 10 noise (<±5%) · 0 without baseline

Compared against main 436b37e benchmarked on this same runner, so the delta is largely free of cross-runner hardware noise. The "7d avg" column still reflects the gh-pages dashboard. Treat <±5% as noise unless repeated.

Dashboard · Run

config throughput MB/s latency max Δ latest / 7d
🟢 bs=10 sw=10 sl=64 391 0.239 25,391/33,133/33,133 us 🟢 -7.9% / 🔴 +115.3%
🔴 bs=100 sw=10 sl=64 795 0.485 125,568/138,268/138,268 us 🔴 +5.3% / 🔴 +30.6%
🔴 bs=1000 sw=10 sl=64 909 0.555 1,092,661/1,223,977/1,223,977 us 🔴 +8.9% / 🔴 +20.4%
Baseline details

Latest main 436b37e from same runner

config metric PR latest main 7d avg Δ latest Δ 7d
bs=10 sw=10 sl=64 throughput 391 tuples/sec 408 tuples/sec 790.88 tuples/sec -4.2% -50.6%
bs=10 sw=10 sl=64 MB/s 0.239 MB/s 0.249 MB/s 0.483 MB/s -4.0% -50.5%
bs=10 sw=10 sl=64 p50 25,391 us 25,043 us 12,348 us +1.4% +105.6%
bs=10 sw=10 sl=64 p95 33,133 us 35,993 us 15,390 us -7.9% +115.3%
bs=10 sw=10 sl=64 p99 33,133 us 35,993 us 18,935 us -7.9% +75.0%
bs=100 sw=10 sl=64 throughput 795 tuples/sec 828 tuples/sec 1,009 tuples/sec -4.0% -21.2%
bs=100 sw=10 sl=64 MB/s 0.485 MB/s 0.505 MB/s 0.616 MB/s -4.0% -21.2%
bs=100 sw=10 sl=64 p50 125,568 us 119,243 us 99,753 us +5.3% +25.9%
bs=100 sw=10 sl=64 p95 138,268 us 141,755 us 105,895 us -2.5% +30.6%
bs=100 sw=10 sl=64 p99 138,268 us 141,755 us 113,263 us -2.5% +22.1%
bs=1000 sw=10 sl=64 throughput 909 tuples/sec 913 tuples/sec 1,037 tuples/sec -0.4% -12.4%
bs=1000 sw=10 sl=64 MB/s 0.555 MB/s 0.557 MB/s 0.633 MB/s -0.4% -12.3%
bs=1000 sw=10 sl=64 p50 1,092,661 us 1,094,716 us 976,194 us -0.2% +11.9%
bs=1000 sw=10 sl=64 p95 1,223,977 us 1,124,462 us 1,016,411 us +8.9% +20.4%
bs=1000 sw=10 sl=64 p99 1,223,977 us 1,124,462 us 1,045,212 us +8.9% +17.1%
Raw CSV
config_idx,batch_size,schema_width,string_len,num_batches,total_ms,total_tuples,total_bytes,tuples_per_sec,mb_per_sec,lat_p50_us,lat_p95_us,lat_p99_us
0,10,10,64,20,511.38,200,128000,391,0.239,25391.01,33133.40,33133.40
1,100,10,64,20,2514.76,2000,1280000,795,0.485,125568.31,138267.75,138267.75
2,1000,10,64,20,21996.28,20000,12800000,909,0.555,1092661.33,1223977.14,1223977.14

The Required Checks summary read a cancelled precheck from a superseded run.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

common fix release/v1.2 back porting to release/v1.2

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Four attributeTypeRules declare keys that match no property, so the rules silently do nothing

3 participants