You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "mistercrunch (via GitHub)" <gi...@apache.org> on 2026/04/14 14:10:48 UTC

[PR] fix(charts): use separator-aware matching for time shift column grouping [superset]

mistercrunch opened a new pull request, #39344:
URL: https://github.com/apache/superset/pull/39344

   ### SUMMARY
   
   When using time comparison with offsets that share a numeric suffix (e.g. "2 weeks ago" and "22 weeks ago"), charts could fail because the column grouping logic in `get_column_groups()` used a bare `endswith(ts)` check. Since `"metric__22 weeks ago".endswith("2 weeks ago")` is `True` (the string "22 weeks ago" literally ends with "2 weeks ago"), columns were misclassified into the wrong time shift group.
   
   **Fix:** Changed `col_0.endswith(ts)` β†’ `col_0.endswith(TIME_COMPARISON + ts)` to include the `__` separator in the suffix match. This ensures `"metric__22 weeks ago".endswith("__2 weeks ago")` correctly returns `False`.
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   N/A β€” backend-only logic fix
   
   ### TESTING INSTRUCTIONS
   1. Create a chart with two time comparison offsets where one is a numeric suffix of the other (e.g. "2 weeks ago" and "22 weeks ago")
   2. Enable contribution mode (row orientation)
   3. Verify the chart renders without errors and contribution percentages are correct per time shift group
   
   Or run the unit test:
   ```bash
   pytest tests/unit_tests/pandas_postprocessing/test_contribution.py::test_contribution_with_numeric_prefix_time_shifts -v
   ```
   
   ### ADDITIONAL INFORMATION
   - [ ] Has associated issue:
   - [ ] Required feature flags:
   - [ ] Changes UI
   - [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))
     - [ ] Migration is atomic, supports rollback & is backwards-compatible
     - [ ] Confirm DB migration upgrade and downgrade tested
     - [ ] Runtime estimates and downtime expectations provided
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   
   πŸ€– Generated with [Claude Code](https://claude.com/claude-code)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "mistercrunch (via GitHub)" <gi...@apache.org>.
mistercrunch commented on code in PR #39344:
URL: https://github.com/apache/superset/pull/39344#discussion_r3197088958


##########
superset/models/helpers.py:
##########
@@ -1881,10 +1881,20 @@ def join_offset_dfs(
             time_grain
         )
 
-        if join_column_producer and not time_grain:
-            raise QueryObjectValidationError(
-                _("Time Grain must be specified when using Time Shift.")
+        if not time_grain:
+            has_relative_offset = any(
+                not (
+                    self.is_valid_date_range(offset)
+                    and feature_flag_manager.is_feature_enabled(
+                        "DATE_RANGE_TIMESHIFTS_ENABLED"
+                    )
+                )
+                for offset in offset_dfs
             )
+            if has_relative_offset:

Review Comment:
   Addressed in commit c08706e4 β€” validation now checks whether any join key is temporal before requiring time grain, so non-timeseries comparisons (e.g., table chart grouped by text dimension) work without time grain.



##########
tests/unit_tests/utils/test_core.py:
##########
@@ -1688,3 +1690,10 @@ def test_sanitize_url_blocks_dangerous():
     """Test that dangerous URL schemes are blocked."""
     assert sanitize_url("javascript:alert('xss')") == ""
     assert sanitize_url("data:text/html,<script>alert(1)</script>") == ""
+
+
+def test_extract_dataframe_dtypes_with_duplicate_columns():

Review Comment:
   Added return type annotation in b89364531f.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): use separator-aware matching for time shift column grouping [superset]

Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39344:
URL: https://github.com/apache/superset/pull/39344#issuecomment-4285773795

   AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
   
   <details>
   <summary>
   Bito Usage Guide
   </summary>
   
   **Commands**
         
   Type the following command in the pull request comment and save the comment.
         
   - `/review` - Manually triggers a full AI review.
   
   - `/pause` - Pauses automatic reviews on this pull request.
   - `/resume` - Resumes automatic reviews.
   - `/resolve` - Marks all Bito-posted review comments as resolved.
   - `/abort` - Cancels all in-progress reviews.
   
         
   Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
         
   **Configuration**
   
   This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
         
   **Documentation & Help**
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
   
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39344:
URL: https://github.com/apache/superset/pull/39344#issuecomment-4724186992

   AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
   
   <details>
   <summary>
   Bito Usage Guide
   </summary>
   
   **Commands**
         
   Type the following command in the pull request comment and save the comment.
         
   - `/review` - Manually triggers a full AI review.
   
   - `/pause` - Pauses automatic reviews on this pull request.
   - `/resume` - Resumes automatic reviews.
   - `/resolve` - Marks all Bito-posted review comments as resolved.
   - `/abort` - Cancels all in-progress reviews.
   
         
   Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
         
   **Configuration**
   
   This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
         
   **Documentation & Help**
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
   
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): use separator-aware matching for time shift column grouping [superset]

Posted by "codeant-ai-for-open-source[bot] (via GitHub)" <gi...@apache.org>.
codeant-ai-for-open-source[bot] commented on code in PR #39344:
URL: https://github.com/apache/superset/pull/39344#discussion_r3114827539


##########
superset/models/helpers.py:
##########
@@ -1881,10 +1881,20 @@ def join_offset_dfs(
             time_grain
         )
 
-        if join_column_producer and not time_grain:
-            raise QueryObjectValidationError(
-                _("Time Grain must be specified when using Time Shift.")
+        if not time_grain:
+            has_relative_offset = any(
+                not (
+                    self.is_valid_date_range(offset)
+                    and feature_flag_manager.is_feature_enabled(
+                        "DATE_RANGE_TIMESHIFTS_ENABLED"
+                    )
+                )
+                for offset in offset_dfs
             )
+            if has_relative_offset:

Review Comment:
   **Suggestion:** The new validation raises whenever `time_grain` is missing and there is a relative offset, but that also blocks valid non-timeseries comparisons where data is joined on non-temporal dimensions (or totals with no temporal join key). This breaks existing behavior in `processing_time_offsets`, which explicitly supports non-datetime index flows. Only require time grain when the join actually depends on a temporal key. [logic error]
   
   <details>
   <summary><b>Severity Level:</b> Major ⚠️</summary>
   
   ```mdx
   - ❌ Non-timeseries charts with relative offsets raise validation errors.
   - ❌ Totals queries with time comparison fail in `join_offset_dfs`.
   - ⚠️ `/api/v1/chart/data` time comparison breaks for some payloads.
   - ⚠️ Advanced analytics time offset unusable without time grain set.
   ```
   </details>
   
   ```suggestion
               has_temporal_join_key = bool(join_keys) and (
                   join_keys[0] in {"ds", "__timestamp", "dttm"}
                   or pd.api.types.is_datetime64_any_dtype(df[join_keys[0]])
               )
               if has_relative_offset and has_temporal_join_key:
   ```
   <details>
   <summary><b>Steps of Reproduction βœ… </b></summary>
   
   ```mdx
   1. Create a `QueryObject` (from `superset/common/query_object.py:79`) that uses time
   comparison with a relative offset but no explicit time grain, e.g. `granularity=None`,
   `extras={}`, `time_offsets=["1 year ago"]`, `columns=["dim1"]`, and a valid `time_range`
   so that `get_since_until_from_query_object` in `superset/models/helpers.py:1386` returns
   non-null `outer_from_dttm`/`outer_to_dttm`.
   
   2. Execute a query through a datasource using `ExploreMixin.query()` so that, after the
   main query runs and `df` is normalized, `processing_time_offsets()` is invoked from
   `superset/models/helpers.py:1320-1336` when `query_object.time_offsets` is non-empty.
   
   3. Inside `processing_time_offsets()` (`superset/models/helpers.py:1355-1606`), for the
   relative offset `"1 year ago"` the method computes shifted `from_dttm`/`to_dttm`, adjusts
   filters even when the x-axis/index is non-datetime (branch at lines ~1511–1527 using
   `dataframe_utils.is_datetime_series`), builds `offset_dfs`, and then computes `time_grain
   = self.get_time_grain(query_object)` at line 48, which returns `None` because both
   `query_object.columns[0].get("timeGrain")` and
   `query_object.extras.get("time_grain_sqla")` are absent.
   
   4. When `offset_dfs` is non-empty, `processing_time_offsets()` calls
   `self.join_offset_dfs(df, offset_dfs, time_grain, join_keys)` at
   `superset/models/helpers.py:1606-1634`; in `join_offset_dfs()` the new guard at lines
   1884–1893 sees `not time_grain` and that the offset `"1 year ago"` is *not* a valid date
   range (`is_valid_date_range` is False), so `has_relative_offset` is True and it raises
   `QueryObjectValidationError("Time Grain must be specified when using Time Comparison.")`
   at line 1895–1897, even though the join keys are purely non-temporal (e.g. `["dim1"]`) and
   previous behavior supported this non-timeseries time comparison path without requiring a
   time grain.
   ```
   </details>
   
   [Fix in Cursor](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt=This%20is%20a%20comment%20left%20during%20a%20code%20review.%0A%0A%2A%2APath%3A%2A%2A%20superset%2Fmodels%2Fhelpers.py%0A%2A%2ALine%3A%2A%2A%201894%3A1894%0A%2A%2AComment%3A%2A%2A%0A%09%2ALogic%20Error%3A%20The%20new%20validation%20raises%20whenever%20%60time_grain%60%20is%20missing%20and%20there%20is%20a%20relative%20offset%2C%20but%20that%20also%20blocks%20valid%20non-timeseries%20comparisons%20where%20data%20is%20joined%20on%20non-temporal%20dimensions%20%28or%20totals%20with%20no%20temporal%20join%20key%29.%20This%20breaks%20existing%20behavior%20in%20%60processing_time_offsets%60%2C%20which%20explicitly%20supports%20non-datetime%20index%20flows.%20Only%20require%20time%20grain%20when%20the%20join%20actually%20depends%20on%20a%20temporal%20key.%0A%0AValidate%20the%20correctness%20of%20the%20flagged%20issue.%20If%20correct%2C%20How%20can%20I%20resolve%20this%3F%20If%20you%20propose%20a%20fix%2C%20implement%20i
 t%20and%20please%20make%20it%20concise.%0AOnce%20fix%20is%20implemented%2C%20also%20check%20other%20comments%20on%20the%20same%20PR%2C%20and%20ask%20user%20if%20the%20user%20wants%20to%20fix%20the%20rest%20of%20the%20comments%20as%20well.%20if%20said%20yes%2C%20then%20fetch%20all%20the%20comments%20validate%20the%20correctness%20and%20implement%20a%20minimal%20fix%0A) | [Fix in VSCode Claude](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt=This%20is%20a%20comment%20left%20during%20a%20code%20review.%0A%0A%2A%2APath%3A%2A%2A%20superset%2Fmodels%2Fhelpers.py%0A%2A%2ALine%3A%2A%2A%201894%3A1894%0A%2A%2AComment%3A%2A%2A%0A%09%2ALogic%20Error%3A%20The%20new%20validation%20raises%20whenever%20%60time_grain%60%20is%20missing%20and%20there%20is%20a%20relative%20offset%2C%20but%20that%20also%20blocks%20valid%20non-timeseries%20comparisons%20where%20data%20is%20joined%20on%20non-temporal%20dimensions%20%28or%20totals%20with%20no%20temporal%20join%20key%29.%20This%20breaks%20existi
 ng%20behavior%20in%20%60processing_time_offsets%60%2C%20which%20explicitly%20supports%20non-datetime%20index%20flows.%20Only%20require%20time%20grain%20when%20the%20join%20actually%20depends%20on%20a%20temporal%20key.%0A%0AValidate%20the%20correctness%20of%20the%20flagged%20issue.%20If%20correct%2C%20How%20can%20I%20resolve%20this%3F%20If%20you%20propose%20a%20fix%2C%20implement%20it%20and%20please%20make%20it%20concise.%0AOnce%20fix%20is%20implemented%2C%20also%20check%20other%20comments%20on%20the%20same%20PR%2C%20and%20ask%20user%20if%20the%20user%20wants%20to%20fix%20the%20rest%20of%20the%20comments%20as%20well.%20if%20said%20yes%2C%20then%20fetch%20all%20the%20comments%20validate%20the%20correctness%20and%20implement%20a%20minimal%20fix%0A)
   
   *(Use Cmd/Ctrl + Click for best experience)*
   <details>
   <summary><b>Prompt for AI Agent πŸ€– </b></summary>
   
   ```mdx
   This is a comment left during a code review.
   
   **Path:** superset/models/helpers.py
   **Line:** 1894:1894
   **Comment:**
   	*Logic Error: The new validation raises whenever `time_grain` is missing and there is a relative offset, but that also blocks valid non-timeseries comparisons where data is joined on non-temporal dimensions (or totals with no temporal join key). This breaks existing behavior in `processing_time_offsets`, which explicitly supports non-datetime index flows. Only require time grain when the join actually depends on a temporal key.
   
   Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
   Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
   ```
   </details>
   <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F39344&comment_hash=e59b8610460b6cc39ea16e0dbf291a27c53ad4bdafd91d5739473a88af450eea&reaction=like'>πŸ‘</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F39344&comment_hash=e59b8610460b6cc39ea16e0dbf291a27c53ad4bdafd91d5739473a88af450eea&reaction=dislike'>πŸ‘Ž</a>



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "codeant-ai-for-open-source[bot] (via GitHub)" <gi...@apache.org>.
codeant-ai-for-open-source[bot] commented on code in PR #39344:
URL: https://github.com/apache/superset/pull/39344#discussion_r3197093142


##########
superset/models/helpers.py:
##########
@@ -1881,10 +1881,26 @@ def join_offset_dfs(
             time_grain
         )
 
-        if join_column_producer and not time_grain:
-            raise QueryObjectValidationError(
-                _("Time Grain must be specified when using Time Shift.")
+        if not time_grain:
+            has_temporal_join_key = any(
+                pd.api.types.is_datetime64_any_dtype(df[key])
+                for key in join_keys
+                if key in df.columns
             )

Review Comment:
   βœ… **Customized review instruction saved!**
   
   **Instruction:**
   > Do not flag `is_datetime64_any_dtype` in `join_offset_dfs`; temporal columns are normalized to `datetime64` upstream, so this guard is sufficient as a defense-in-depth check.
   
   **Applied to:**
     - `superset/models/helpers.py`
   
   ---
   πŸ’‘ *To manage or update this instruction, visit: [CodeAnt AI Settings](https://app.codeant.ai/settings/learnings)*



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "codeant-ai-for-open-source[bot] (via GitHub)" <gi...@apache.org>.
codeant-ai-for-open-source[bot] commented on code in PR #39344:
URL: https://github.com/apache/superset/pull/39344#discussion_r3120944243


##########
superset/models/helpers.py:
##########
@@ -1881,10 +1881,26 @@ def join_offset_dfs(
             time_grain
         )
 
-        if join_column_producer and not time_grain:
-            raise QueryObjectValidationError(
-                _("Time Grain must be specified when using Time Shift.")
+        if not time_grain:
+            has_temporal_join_key = any(
+                pd.api.types.is_datetime64_any_dtype(df[key])
+                for key in join_keys
+                if key in df.columns
             )

Review Comment:
   **Suggestion:** Temporal join-key detection is too narrow here: `is_datetime64_any_dtype` only catches pandas datetime64 dtypes, but Superset also treats object-backed `datetime.date`/datetime-like series as temporal in other paths. When the join key is temporal but not datetime64, this check returns false, the validation is skipped, and relative time comparison without time grain can still reach the downstream pandas failure. Use the same temporal detection helper used elsewhere (for example `dataframe_utils.is_datetime_series`) so temporal keys are consistently recognized. [logic error]
   
   <details>
   <summary><b>Severity Level:</b> Major ⚠️</summary>
   
   ```mdx
   - ❌ Temporal validation skipped for object-typed date join columns.
   - ❌ Some time-comparison queries still hit cryptic pandas errors.
   - ⚠️ Behavior differs by backend/dataframe datetime representation.
   - ⚠️ Inconsistent error messaging for identical semantic configurations.
   ```
   </details>
   <details>
   <summary><b>Steps of Reproduction βœ… </b></summary>
   
   ```mdx
   1. Create a temporal join DataFrame mimicking a time-series query: in a Python shell or
   test, build `df = pd.DataFrame({"ds": [datetime.date(2021, 1, 1), datetime.date(2021, 2,
   1)]})` so that `df["ds"]` is a `pd.Series` of `datetime.date` with dtype `object` (no
   explicit `to_datetime`), matching the temporal detection semantics in
   `superset/common/utils/dataframe_utils.py:63-72`.
   
   2. Create a matching offset DataFrame and offsets dict, e.g. `offset_df =
   pd.DataFrame({"ds": [datetime.date(2021, 1, 1), datetime.date(2021, 2, 1)], "metric__1
   year ago": [1, 2]})` and `offset_dfs = {"1 year ago": offset_df}`, and call
   `ExploreMixin().join_offset_dfs(df, offset_dfs, time_grain=None, join_keys=["ds"])` where
   `join_offset_dfs` is implemented at `superset/models/helpers.py:1878-1888`.
   
   3. Inside `join_offset_dfs`, the new validation block at
   `superset/models/helpers.py:1884-1903` executes `has_temporal_join_key =
   any(pd.api.types.is_datetime64_any_dtype(df[key]) for key in join_keys if key in
   df.columns)` (lines 1885-1889); because `df["ds"]` is an `object`-typed series of
   `datetime.date`, `is_datetime64_any_dtype(df["ds"])` returns `False`, so
   `has_temporal_join_key` is `False` and the `QueryObjectValidationError("Time Grain must be
   specified when using Time Comparison.")` is never raised even though the join key is
   clearly temporal (and would be recognized as such by `dataframe_utils.is_datetime_series`,
   used elsewhere in the same file at `superset/models/helpers.py:1511`).
   
   4. The call then proceeds as if the join key were non-temporal: `join_offset_dfs` falls
   through to the join logic using the raw temporal key with `time_grain=None`, re‑exposing
   the invalid configuration this guard was meant to block; this leads to inconsistent
   behavior where queries whose time columns are `datetime64` (e.g. `Timestamp` in
   `tests/unit_tests/common/test_time_shifts.py:248-43`) correctly raise the helpful
   validation error, while equivalent queries backed by `datetime.date`/object‑typed series
   bypass validation and continue into the downstream pandas join and time-shift logic, where
   the original cryptic pandas failure can still occur.
   ```
   </details>
   
   [Fix in Cursor](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt=This%20is%20a%20comment%20left%20during%20a%20code%20review.%0A%0A%2A%2APath%3A%2A%2A%20superset%2Fmodels%2Fhelpers.py%0A%2A%2ALine%3A%2A%2A%201885%3A1889%0A%2A%2AComment%3A%2A%2A%0A%09%2ALogic%20Error%3A%20Temporal%20join-key%20detection%20is%20too%20narrow%20here%3A%20%60is_datetime64_any_dtype%60%20only%20catches%20pandas%20datetime64%20dtypes%2C%20but%20Superset%20also%20treats%20object-backed%20%60datetime.date%60%2Fdatetime-like%20series%20as%20temporal%20in%20other%20paths.%20When%20the%20join%20key%20is%20temporal%20but%20not%20datetime64%2C%20this%20check%20returns%20false%2C%20the%20validation%20is%20skipped%2C%20and%20relative%20time%20comparison%20without%20time%20grain%20can%20still%20reach%20the%20downstream%20pandas%20failure.%20Use%20the%20same%20temporal%20detection%20helper%20used%20elsewhere%20%28for%20example%20%60dataframe_utils.is_datetime_series%60%29%20so%20temporal%20keys%20are%20consiste
 ntly%20recognized.%0A%0AValidate%20the%20correctness%20of%20the%20flagged%20issue.%20If%20correct%2C%20How%20can%20I%20resolve%20this%3F%20If%20you%20propose%20a%20fix%2C%20implement%20it%20and%20please%20make%20it%20concise.%0AOnce%20fix%20is%20implemented%2C%20also%20check%20other%20comments%20on%20the%20same%20PR%2C%20and%20ask%20user%20if%20the%20user%20wants%20to%20fix%20the%20rest%20of%20the%20comments%20as%20well.%20if%20said%20yes%2C%20then%20fetch%20all%20the%20comments%20validate%20the%20correctness%20and%20implement%20a%20minimal%20fix%0A) | [Fix in VSCode Claude](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt=This%20is%20a%20comment%20left%20during%20a%20code%20review.%0A%0A%2A%2APath%3A%2A%2A%20superset%2Fmodels%2Fhelpers.py%0A%2A%2ALine%3A%2A%2A%201885%3A1889%0A%2A%2AComment%3A%2A%2A%0A%09%2ALogic%20Error%3A%20Temporal%20join-key%20detection%20is%20too%20narrow%20here%3A%20%60is_datetime64_any_dtype%60%20only%20catches%20pandas%20datetime64%20dtypes%2C%20b
 ut%20Superset%20also%20treats%20object-backed%20%60datetime.date%60%2Fdatetime-like%20series%20as%20temporal%20in%20other%20paths.%20When%20the%20join%20key%20is%20temporal%20but%20not%20datetime64%2C%20this%20check%20returns%20false%2C%20the%20validation%20is%20skipped%2C%20and%20relative%20time%20comparison%20without%20time%20grain%20can%20still%20reach%20the%20downstream%20pandas%20failure.%20Use%20the%20same%20temporal%20detection%20helper%20used%20elsewhere%20%28for%20example%20%60dataframe_utils.is_datetime_series%60%29%20so%20temporal%20keys%20are%20consistently%20recognized.%0A%0AValidate%20the%20correctness%20of%20the%20flagged%20issue.%20If%20correct%2C%20How%20can%20I%20resolve%20this%3F%20If%20you%20propose%20a%20fix%2C%20implement%20it%20and%20please%20make%20it%20concise.%0AOnce%20fix%20is%20implemented%2C%20also%20check%20other%20comments%20on%20the%20same%20PR%2C%20and%20ask%20user%20if%20the%20user%20wants%20to%20fix%20the%20rest%20of%20the%20comments%20as%20well.%2
 0if%20said%20yes%2C%20then%20fetch%20all%20the%20comments%20validate%20the%20correctness%20and%20implement%20a%20minimal%20fix%0A)
   
   *(Use Cmd/Ctrl + Click for best experience)*
   <details>
   <summary><b>Prompt for AI Agent πŸ€– </b></summary>
   
   ```mdx
   This is a comment left during a code review.
   
   **Path:** superset/models/helpers.py
   **Line:** 1885:1889
   **Comment:**
   	*Logic Error: Temporal join-key detection is too narrow here: `is_datetime64_any_dtype` only catches pandas datetime64 dtypes, but Superset also treats object-backed `datetime.date`/datetime-like series as temporal in other paths. When the join key is temporal but not datetime64, this check returns false, the validation is skipped, and relative time comparison without time grain can still reach the downstream pandas failure. Use the same temporal detection helper used elsewhere (for example `dataframe_utils.is_datetime_series`) so temporal keys are consistently recognized.
   
   Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
   Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
   ```
   </details>
   <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F39344&comment_hash=ee40e66f70b2fbf56b78f75df3c02f43aa19dcb95451a3ab37f124884a8812b2&reaction=like'>πŸ‘</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F39344&comment_hash=ee40e66f70b2fbf56b78f75df3c02f43aa19dcb95451a3ab37f124884a8812b2&reaction=dislike'>πŸ‘Ž</a>



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39344:
URL: https://github.com/apache/superset/pull/39344#issuecomment-4394994763

   AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
   
   <details>
   <summary>
   Bito Usage Guide
   </summary>
   
   **Commands**
         
   Type the following command in the pull request comment and save the comment.
         
   - `/review` - Manually triggers a full AI review.
   
   - `/pause` - Pauses automatic reviews on this pull request.
   - `/resume` - Resumes automatic reviews.
   - `/resolve` - Marks all Bito-posted review comments as resolved.
   - `/abort` - Cancels all in-progress reviews.
   
         
   Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
         
   **Configuration**
   
   This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
         
   **Documentation & Help**
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
   
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "netlify[bot] (via GitHub)" <gi...@apache.org>.
netlify[bot] commented on PR #39344:
URL: https://github.com/apache/superset/pull/39344#issuecomment-4391612012

   ### <span aria-hidden="true">βœ…</span> Deploy Preview for *superset-docs-preview* ready!
   
   
   |  Name | Link |
   |:-:|------------------------|
   |<span aria-hidden="true">πŸ”¨</span> Latest commit | b89364531f265996d80390468202907aa529429e |
   |<span aria-hidden="true">πŸ”</span> Latest deploy log | https://app.netlify.com/projects/superset-docs-preview/deploys/69fb9cbf370408000815a978 |
   |<span aria-hidden="true">😎</span> Deploy Preview | [https://deploy-preview-39344--superset-docs-preview.netlify.app](https://deploy-preview-39344--superset-docs-preview.netlify.app) |
   |<span aria-hidden="true">πŸ“±</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br />![QR Code](https://app.netlify.com/qr-code/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RlcGxveS1wcmV2aWV3LTM5MzQ0LS1zdXBlcnNldC1kb2NzLXByZXZpZXcubmV0bGlmeS5hcHAifQ.GYcjyYRZ6I-Svml0QlwthdLEfM6d35X5D268lrs3pLY)<br /><br />_Use your smartphone camera to open QR code link._</details> |
   |<span aria-hidden="true">πŸ€–</span> Make changes | [Run an agent on this branch](https://app.netlify.com/projects/superset-docs-preview/agent-runs#DctLDoAgDADRu3Rtkxr8gDfwGKVAIFEhyMYY7y67Wbx5odR8lgYbwAC28iWx9y04klJGYUunR-mEa7rzhRK5Ngycju6dL0d-dtePxQRrxAa10kSaiPQ4s1k1fD8) |
   ---
   <!-- [superset-docs-preview Preview](https://deploy-preview-39344--superset-docs-preview.netlify.app) -->
   _To edit notification comments on pull requests, go to your [Netlify project configuration](https://app.netlify.com/projects/superset-docs-preview/configuration/notifications#deploy-notifications)._


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "mistercrunch (via GitHub)" <gi...@apache.org>.
mistercrunch commented on code in PR #39344:
URL: https://github.com/apache/superset/pull/39344#discussion_r3197090226


##########
superset/models/helpers.py:
##########
@@ -1881,10 +1881,26 @@ def join_offset_dfs(
             time_grain
         )
 
-        if join_column_producer and not time_grain:
-            raise QueryObjectValidationError(
-                _("Time Grain must be specified when using Time Shift.")
+        if not time_grain:
+            has_temporal_join_key = any(
+                pd.api.types.is_datetime64_any_dtype(df[key])
+                for key in join_keys
+                if key in df.columns
             )

Review Comment:
   This is a fair point in theory, but in practice the temporal columns reaching `join_offset_dfs` have already been converted to proper datetime64 by `processing_time_offsets` upstream. The `is_datetime64_any_dtype` check here is a defense-in-depth guard β€” the primary fix is the separator-aware matching in `renameOperator.ts` that prevents duplicate column names from being generated in the first place. I think the current check is sufficient for the guardrail's purpose.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "rusackas (via GitHub)" <gi...@apache.org>.
rusackas merged PR #39344:
URL: https://github.com/apache/superset/pull/39344


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39344:
URL: https://github.com/apache/superset/pull/39344#issuecomment-4292903086

   AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
   
   <details>
   <summary>
   Bito Usage Guide
   </summary>
   
   **Commands**
         
   Type the following command in the pull request comment and save the comment.
         
   - `/review` - Manually triggers a full AI review.
   
   - `/pause` - Pauses automatic reviews on this pull request.
   - `/resume` - Resumes automatic reviews.
   - `/resolve` - Marks all Bito-posted review comments as resolved.
   - `/abort` - Cancels all in-progress reviews.
   
         
   Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
         
   **Configuration**
   
   This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
         
   **Documentation & Help**
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
   
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "codeant-ai-for-open-source[bot] (via GitHub)" <gi...@apache.org>.
codeant-ai-for-open-source[bot] commented on code in PR #39344:
URL: https://github.com/apache/superset/pull/39344#discussion_r3120935303


##########
tests/unit_tests/utils/test_core.py:
##########
@@ -1688,3 +1690,10 @@ def test_sanitize_url_blocks_dangerous():
     """Test that dangerous URL schemes are blocked."""
     assert sanitize_url("javascript:alert('xss')") == ""
     assert sanitize_url("data:text/html,<script>alert(1)</script>") == ""
+
+
+def test_extract_dataframe_dtypes_with_duplicate_columns():

Review Comment:
   **Suggestion:** Add an explicit return type annotation to this newly added test function (for example, annotate it as returning `None`) to satisfy the typing requirement for new Python definitions. [custom_rule]
   
   **Severity Level:** Minor ⚠️
   <details>
   <summary><b>Why it matters? πŸ€” </b></summary>
   
   The new test function is defined without an explicit return type annotation. If the custom rule requires new Python definitions to include type hints, this is a real violation because the function currently lacks `-> None`.
   </details>
   
   [Fix in Cursor](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt=This%20is%20a%20comment%20left%20during%20a%20code%20review.%0A%0A%2A%2APath%3A%2A%2A%20tests%2Funit_tests%2Futils%2Ftest_core.py%0A%2A%2ALine%3A%2A%2A%201695%3A1695%0A%2A%2AComment%3A%2A%2A%0A%09%2ACustom%20Rule%3A%20Add%20an%20explicit%20return%20type%20annotation%20to%20this%20newly%20added%20test%20function%20%28for%20example%2C%20annotate%20it%20as%20returning%20%60None%60%29%20to%20satisfy%20the%20typing%20requirement%20for%20new%20Python%20definitions.%0A%0AValidate%20the%20correctness%20of%20the%20flagged%20issue.%20If%20correct%2C%20How%20can%20I%20resolve%20this%3F%20If%20you%20propose%20a%20fix%2C%20implement%20it%20and%20please%20make%20it%20concise.%0AOnce%20fix%20is%20implemented%2C%20also%20check%20other%20comments%20on%20the%20same%20PR%2C%20and%20ask%20user%20if%20the%20user%20wants%20to%20fix%20the%20rest%20of%20the%20comments%20as%20well.%20if%20said%20yes%2C%20then%20fetch%20all%20the%20commen
 ts%20validate%20the%20correctness%20and%20implement%20a%20minimal%20fix%0A) | [Fix in VSCode Claude](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt=This%20is%20a%20comment%20left%20during%20a%20code%20review.%0A%0A%2A%2APath%3A%2A%2A%20tests%2Funit_tests%2Futils%2Ftest_core.py%0A%2A%2ALine%3A%2A%2A%201695%3A1695%0A%2A%2AComment%3A%2A%2A%0A%09%2ACustom%20Rule%3A%20Add%20an%20explicit%20return%20type%20annotation%20to%20this%20newly%20added%20test%20function%20%28for%20example%2C%20annotate%20it%20as%20returning%20%60None%60%29%20to%20satisfy%20the%20typing%20requirement%20for%20new%20Python%20definitions.%0A%0AValidate%20the%20correctness%20of%20the%20flagged%20issue.%20If%20correct%2C%20How%20can%20I%20resolve%20this%3F%20If%20you%20propose%20a%20fix%2C%20implement%20it%20and%20please%20make%20it%20concise.%0AOnce%20fix%20is%20implemented%2C%20also%20check%20other%20comments%20on%20the%20same%20PR%2C%20and%20ask%20user%20if%20the%20user%20wants%20to%20fix%20the%20rest%2
 0of%20the%20comments%20as%20well.%20if%20said%20yes%2C%20then%20fetch%20all%20the%20comments%20validate%20the%20correctness%20and%20implement%20a%20minimal%20fix%0A)
   
   *(Use Cmd/Ctrl + Click for best experience)*
   <details>
   <summary><b>Prompt for AI Agent πŸ€– </b></summary>
   
   ```mdx
   This is a comment left during a code review.
   
   **Path:** tests/unit_tests/utils/test_core.py
   **Line:** 1695:1695
   **Comment:**
   	*Custom Rule: Add an explicit return type annotation to this newly added test function (for example, annotate it as returning `None`) to satisfy the typing requirement for new Python definitions.
   
   Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
   Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
   ```
   </details>
   <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F39344&comment_hash=83be0a5265ed6414e4023d66ba3141fd444e5921cdd48689c94d89806f3e2fb7&reaction=like'>πŸ‘</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F39344&comment_hash=83be0a5265ed6414e4023d66ba3141fd444e5921cdd48689c94d89806f3e2fb7&reaction=dislike'>πŸ‘Ž</a>



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): use separator-aware matching for time shift column grouping [superset]

Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #39344:
URL: https://github.com/apache/superset/pull/39344#issuecomment-4244635679

   ## [Codecov](https://app.codecov.io/gh/apache/superset/pull/39344?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
   :x: Patch coverage is `50.00000%` with `1 line` in your changes missing coverage. Please review.
   :white_check_mark: Project coverage is 55.96%. Comparing base ([`de98fdc`](https://app.codecov.io/gh/apache/superset/commit/de98fdc37bae721ddc7e7f1889e9eb28684858ba?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`287c1bd`](https://app.codecov.io/gh/apache/superset/commit/287c1bd4c4b05cff40964c93b84a9c39e1b95f79?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
   :warning: Report is 8 commits behind head on master.
   
   | [Files with missing lines](https://app.codecov.io/gh/apache/superset/pull/39344?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
   |---|---|---|
   | [...perset/utils/pandas\_postprocessing/contribution.py](https://app.codecov.io/gh/apache/superset/pull/39344?src=pr&el=tree&filepath=superset%2Futils%2Fpandas_postprocessing%2Fcontribution.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VwZXJzZXQvdXRpbHMvcGFuZGFzX3Bvc3Rwcm9jZXNzaW5nL2NvbnRyaWJ1dGlvbi5weQ==) | 50.00% | [1 Missing :warning: ](https://app.codecov.io/gh/apache/superset/pull/39344?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   
   :x: Your project check has failed because the head coverage (99.81%) is below the target coverage (100.00%). You can increase the head coverage or adjust the [target](https://docs.codecov.com/docs/commit-status#target) coverage.
   > :exclamation:  There is a different number of reports uploaded between BASE (de98fdc) and HEAD (287c1bd). Click for more details.
   > 
   > <details><summary>HEAD has 9 uploads less than BASE</summary>
   >
   >| Flag | BASE (de98fdc) | HEAD (287c1bd) |
   >|------|------|------|
   >|python|10|3|
   >|unit|3|1|
   ></details>
   
   <details><summary>Additional details and impacted files</summary>
   
   
   
   ```diff
   @@            Coverage Diff             @@
   ##           master   #39344      +/-   ##
   ==========================================
   - Coverage   64.42%   55.96%   -8.46%     
   ==========================================
     Files        2554     2554              
     Lines      132662   132662              
     Branches    30780    30780              
   ==========================================
   - Hits        85461    74245   -11216     
   - Misses      45715    57775   +12060     
   + Partials     1486      642     -844     
   ```
   
   | [Flag](https://app.codecov.io/gh/apache/superset/pull/39344/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Ξ” | |
   |---|---|---|
   | [hive](https://app.codecov.io/gh/apache/superset/pull/39344/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `39.96% <50.00%> (ΓΈ)` | |
   | [mysql](https://app.codecov.io/gh/apache/superset/pull/39344/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
   | [postgres](https://app.codecov.io/gh/apache/superset/pull/39344/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
   | [presto](https://app.codecov.io/gh/apache/superset/pull/39344/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `41.75% <50.00%> (ΓΈ)` | |
   | [python](https://app.codecov.io/gh/apache/superset/pull/39344/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `43.22% <50.00%> (-19.05%)` | :arrow_down: |
   | [sqlite](https://app.codecov.io/gh/apache/superset/pull/39344/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
   | [unit](https://app.codecov.io/gh/apache/superset/pull/39344/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `100.00% <ΓΈ> (ΓΈ)` | |
   
   Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#carryforward-flags-in-the-pull-request-comment) to find out more.
   </details>
   
   [:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/superset/pull/39344?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).   
   :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
   <details><summary> :rocket: New features to boost your workflow: </summary>
   
   - :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
   - :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): use separator-aware matching for time shift column grouping [superset]

Posted by "netlify[bot] (via GitHub)" <gi...@apache.org>.
netlify[bot] commented on PR #39344:
URL: https://github.com/apache/superset/pull/39344#issuecomment-4285706307

   ### <span aria-hidden="true">βœ…</span> Deploy Preview for *superset-docs-preview* ready!
   
   
   |  Name | Link |
   |:-:|------------------------|
   |<span aria-hidden="true">πŸ”¨</span> Latest commit | 85bb879b2802b32e5399a86d467f10fa336d1793 |
   |<span aria-hidden="true">πŸ”</span> Latest deploy log | https://app.netlify.com/projects/superset-docs-preview/deploys/69e6eb3ce08e5b00080f4b20 |
   |<span aria-hidden="true">😎</span> Deploy Preview | [https://deploy-preview-39344--superset-docs-preview.netlify.app](https://deploy-preview-39344--superset-docs-preview.netlify.app) |
   |<span aria-hidden="true">πŸ“±</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br />![QR Code](https://app.netlify.com/qr-code/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RlcGxveS1wcmV2aWV3LTM5MzQ0LS1zdXBlcnNldC1kb2NzLXByZXZpZXcubmV0bGlmeS5hcHAifQ.GYcjyYRZ6I-Svml0QlwthdLEfM6d35X5D268lrs3pLY)<br /><br />_Use your smartphone camera to open QR code link._</details> |
   ---
   <!-- [superset-docs-preview Preview](https://deploy-preview-39344--superset-docs-preview.netlify.app) -->
   _To edit notification comments on pull requests, go to your [Netlify project configuration](https://app.netlify.com/projects/superset-docs-preview/configuration/notifications#deploy-notifications)._


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39344:
URL: https://github.com/apache/superset/pull/39344#issuecomment-4410954683

   AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
   
   <details>
   <summary>
   Bito Usage Guide
   </summary>
   
   **Commands**
         
   Type the following command in the pull request comment and save the comment.
         
   - `/review` - Manually triggers a full AI review.
   
   - `/pause` - Pauses automatic reviews on this pull request.
   - `/resume` - Resumes automatic reviews.
   - `/resolve` - Marks all Bito-posted review comments as resolved.
   - `/abort` - Cancels all in-progress reviews.
   
         
   Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
         
   **Configuration**
   
   This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
         
   **Documentation & Help**
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
   
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): use separator-aware matching for time shift column grouping [superset]

Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39344:
URL: https://github.com/apache/superset/pull/39344#issuecomment-4244550311

   AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39344:
URL: https://github.com/apache/superset/pull/39344#issuecomment-4286059127

   AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
   
   <details>
   <summary>
   Bito Usage Guide
   </summary>
   
   **Commands**
         
   Type the following command in the pull request comment and save the comment.
         
   - `/review` - Manually triggers a full AI review.
   
   - `/pause` - Pauses automatic reviews on this pull request.
   - `/resume` - Resumes automatic reviews.
   - `/resolve` - Marks all Bito-posted review comments as resolved.
   - `/abort` - Cancels all in-progress reviews.
   
         
   Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
         
   **Configuration**
   
   This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
         
   **Documentation & Help**
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
   - <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
   
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "netlify[bot] (via GitHub)" <gi...@apache.org>.
netlify[bot] commented on PR #39344:
URL: https://github.com/apache/superset/pull/39344#issuecomment-4391587553

   ### <span aria-hidden="true">βœ…</span> Deploy Preview for *superset-docs-preview* ready!
   
   
   |  Name | Link |
   |:-:|------------------------|
   |<span aria-hidden="true">πŸ”¨</span> Latest commit | 95ad8b81c781601a319303103af4eae466fa452b |
   |<span aria-hidden="true">πŸ”</span> Latest deploy log | https://app.netlify.com/projects/superset-docs-preview/deploys/69fb9c8818f81700080a5ed1 |
   |<span aria-hidden="true">😎</span> Deploy Preview | [https://deploy-preview-39344--superset-docs-preview.netlify.app](https://deploy-preview-39344--superset-docs-preview.netlify.app) |
   |<span aria-hidden="true">πŸ“±</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br />![QR Code](https://app.netlify.com/qr-code/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RlcGxveS1wcmV2aWV3LTM5MzQ0LS1zdXBlcnNldC1kb2NzLXByZXZpZXcubmV0bGlmeS5hcHAifQ.GYcjyYRZ6I-Svml0QlwthdLEfM6d35X5D268lrs3pLY)<br /><br />_Use your smartphone camera to open QR code link._</details> |
   |<span aria-hidden="true">πŸ€–</span> Make changes | [Run an agent on this branch](https://app.netlify.com/projects/superset-docs-preview/agent-runs#DcvBDYAgDEDRXXq2SQlRixs4Ri0QSVQIcjHG3eX2D--_UGo-S4MFYICtyqV771vRkLXOYktnQO1EarrzhbpLbRglHd37UI78rL4fk4ubU2bDkc1MREwyBm_g-wE) |
   ---
   <!-- [superset-docs-preview Preview](https://deploy-preview-39344--superset-docs-preview.netlify.app) -->
   _To edit notification comments on pull requests, go to your [Netlify project configuration](https://app.netlify.com/projects/superset-docs-preview/configuration/notifications#deploy-notifications)._


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [PR] fix(charts): fix time comparison crash when offsets share a numeric prefix [superset]

Posted by "sadpandajoe (via GitHub)" <gi...@apache.org>.
sadpandajoe commented on PR #39344:
URL: https://github.com/apache/superset/pull/39344#issuecomment-4381554228

   @mistercrunch looks like this may need a rebase.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org