This is an automated email from the ASF dual-hosted git repository.

github-merge-queue[bot] pushed a commit to branch 
gh-readonly-queue/main/pr-6894-f972d9f69a4226392628ef2b5f0d6bbe74e951bc
in repository https://gitbox.apache.org/repos/asf/texera.git

commit 16234049a6619015635f7d36622eb3617b22c77e
Author: Martin Vu <[email protected]>
AuthorDate: Mon Jul 27 13:46:07 2026 -0700

    fix: Correct FilledAreaPlot x-value validation across groups (#6894)
    
    ### What changes were proposed in this PR?
    
    Fixed the FilledAreaPlot validation logic for grouped data with shared
    X-values.
    
    ```diff
    - X_values = x_values.union(set(group[$x].unique()))
    + x_values = x_values.union(set(group[$x].unique()))
    ```
    Previously, the validation incorrectly handled X-value comparisons
    between groups, causing valid charts to be rejected. The logic was
    updated so that X-values are tracked across groups correctly when
    checking whether groups share compatible X attributes.
    
    Before:
    <img width="1197" height="684" alt="Screenshot 2026-07-23 at 2 42 16 AM"
    
src="https://github.com/user-attachments/assets/51936cc6-a207-4afd-94e4-a0206db651ba";
    />
    
    After:
    <img width="1198" height="601" alt="Screenshot 2026-07-25 at 2 17 10 AM"
    
src="https://github.com/user-attachments/assets/50dbb422-cad3-4623-92c8-ba5c7ca79dde";
    />
    
    
    ### Any related issues, documentation, discussions?
    
    Fixes #6728
    
    ### How was this PR tested?
    
    Tested by running Texera locally and executing a FilledAreaPlot workflow
    with grouped data.
    CSV File:
    
    
[filled_area_test.csv](https://github.com/user-attachments/files/30370844/filled_area_test.csv)
    
    Verified:
    - Valid grouped charts are accepted and rendered.
    - Invalid inputs missing X/Y attributes still return the appropriate
    error message.
    - Python UDF execution works after generating Python proto bindings and
    installing required Python dependencies.
    
    
    ### Was this PR authored or co-authored using generative AI tooling?
    
    Generated-by: ChatGPT (GPT-5.5-mini)
---
 .../operator/visualization/filledAreaPlot/FilledAreaPlotOpDesc.scala    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/visualization/filledAreaPlot/FilledAreaPlotOpDesc.scala
 
b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/visualization/filledAreaPlot/FilledAreaPlotOpDesc.scala
index 92435342db..975cc4d892 100644
--- 
a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/visualization/filledAreaPlot/FilledAreaPlotOpDesc.scala
+++ 
b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/visualization/filledAreaPlot/FilledAreaPlotOpDesc.scala
@@ -121,7 +121,7 @@ class FilledAreaPlotOpDesc extends PythonOperatorDescriptor 
{
        |                if x_values == None:
        |                    x_values = set(group[$x].unique())
        |                elif set(group[$x].unique()).intersection(x_values):
-       |                    X_values = x_values.union(set(group[$x].unique()))
+       |                    x_values = x_values.union(set(group[$x].unique()))
        |                elif not 
set(group[$x].unique()).intersection(x_values):
        |                    count += 1
        |                    if count > tolerance:

Reply via email to