You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "aminghadersohi (via GitHub)" <gi...@apache.org> on 2026/09/15 06:08:37 UTC

[PR] fix(sql): preserve literal percents in where_in [superset]

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

   ## TL;DR
   
   Preserve literal percent signs in the `where_in` Jinja filter. On Athena, filtering for `50%` currently sends `50%%` and misses matching rows. This fixes the Superset literal-rendering boundary without changing driver behavior or rewriting raw SQL.
   
   ### SUMMARY
   
   SQLAlchemy's `format`/`pyformat` compilers double percent signs for DBAPI interpolation. `where_in` returns that compiled fragment as literal SQL, but SQL Lab calls `cursor.execute(query)` without parameters. PyAthena consequently preserves the doubled signs. The same behavior reproduces with PyAthena **2.25.0 and 3.35.4**, using SQLAlchemy **2.0.52**.
   
   Undo one compiler-escaping layer only within the macro's compiled literals, conditional on `identifier_preparer._double_percents`. This matches the existing `Database.compile_sqla_query` convention. It does not change dialect state, inject empty parameter dictionaries, change dependencies, or unescape an entire rendered query. Quote/backslash handling is retained.
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   
   No UI layout change. SQL/result comparison:
   
   | Input | Before | After |
   | --- | --- | --- |
   | `{{ ['50%'] \| where_in }}` | `('50%%')` | `('50%')` |
   | `{{ ['%%'] \| where_in }}` | `('%%%%')` | `('%%')` |
   | Athena equality/IN against a `50%` row | 0 matches | 1 match |
   
   ### TESTING INSTRUCTIONS
   
   1. Run `pytest tests/unit_tests/jinja_context_test.py` — **202 passed** locally, with PyAthena installed (no skips).
   2. On an Athena connection with template processing enabled, execute:
      ```sql
      WITH fixture(value) AS (VALUES ('50%'), ('not the value'))
      SELECT value FROM fixture
      WHERE value IN {{ ['50%'] | where_in }}
      ```
      Expect exactly one row containing `50%`.
   3. Repeat with `%%`, `%(value)s`, and a combined percent/underscore/apostrophe/backslash value; compare with a raw literal and a bound-parameter control.
   
   Regression coverage includes MySQL format/pyformat, PostgreSQL pyformat/named, SQLite qmark, MSSQL named, unchanged dialect compilation, numeric/NULL/empty values, and chart recompilation through `Database.compile_sqla_query` with an unrelated `%%` literal. A PyAthena formatter test exercises parameterless and bound paths; it is optional when PyAthena is not installed. Generic dialect regressions do not depend on PyAthena.
   
   Removing the fix made **33 new regression cases fail** before adding the chart-compilation cases. Live AWS verification ran **12 queries per PyAthena version** (four baseline/fixed payload pairs and four bound controls): baseline doubled percents and matched zero rows; fixed preserved values and matched exactly one. The live harness used exact-source AST extraction of the macro and engine-spec execute method, real Jinja, and the real DBAPI; it was not a browser/API acceptance test. All 48 result objects were deleted; no persistent tables were created.
   
   Changed-file pre-commit validation includes mypy, ruff and pylint.
   
   ### ADDITIONAL INFORMATION
   
   - [ ] Has associated issue:
   - [x] Required feature flags: `ENABLE_TEMPLATE_PROCESSING` (existing)
   - [ ] Changes UI
   - [ ] Includes DB Migration
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   
   Risk is limited to `where_in` output for percent-escaping dialects; rollback is a revert. SQLAlchemy's separate positional-placeholder rewriting behavior is not changed by this patch.
   


-- 
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(sql): preserve literal percents in where_in [superset]

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

   ### <span aria-hidden="true">✅</span> Deploy Preview for *superset-docs-preview* ready!
   
   
   |  Name | Link |
   |:-:|------------------------|
   |<span aria-hidden="true">🔨</span> Latest commit | 96a18dc44f094475de9d65202bb3d3a591b6415f |
   |<span aria-hidden="true">🔍</span> Latest deploy log | https://app.netlify.com/projects/superset-docs-preview/deploys/6aa8e0e51434350008cd6f38 |
   |<span aria-hidden="true">😎</span> Deploy Preview | [https://deploy-preview-44284--superset-docs-preview.netlify.app](https://deploy-preview-44284--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.eyJ1cmwiOiJodHRwczovL2RlcGxveS1wcmV2aWV3LTQ0Mjg0LS1zdXBlcnNldC1kb2NzLXByZXZpZXcubmV0bGlmeS5hcHAifQ.To2Q5vyChLD-nPb86gpLY4d_P2LheEijBoeQknHHdnk)<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#DctNCoAgEEDhu8w6yVBDukHHmHRKIX-Ygoro7rl7i--9ULmkesIE0MHCmF1ojSnmLaAnPkqI_RpvcQViEjGLSuwon417qnt5Zt-GEdGSJDNopZWRUlrnx1VZ-H4) |
   ---
   <!-- [superset-docs-preview Preview](https://deploy-preview-44284--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(sql): preserve literal percents in where_in [superset]

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

   The first [unit-test CI run](https://github.com/apache/superset/actions/runs/34935647838/job/104273039742) finished with **15,430 passed, 6 skipped, 2 xfailed, and one failure**: `test_stop_racing_normal_completion_keeps_payload_and_results_write_consistent` timed out waiting for its thread pause point. No `jinja_context_test.py` case failed.
   
   The race-test file and its query execution/DAO code are unchanged. Its complete 13-test module passes locally on both this head and a clean worktree of base `ae240a8e6f0332acb709943d0884eae73927c9de`. The CI suite-level timing/thread failure is not reproduced locally; I am treating it as an apparently unrelated CI failure, not claiming a proven root cause. One bounded retry of the unit job is queued. No unrelated test changes were added.
   
   [Pre-commit CI passed](https://github.com/apache/superset/actions/runs/34935647846/job/104272834209). The integration/browser/dev-image checks remain blocked by the independently verified base migration graph. Review requested from @rusackas; PR remains open and non-draft.
   


-- 
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(sql): preserve literal percents in where_in [superset]

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

   @rusackas — Amin has assigned you for review. When you have a moment, could you please take a look? Thank you.


-- 
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(sql): preserve literal percents in where_in [superset]

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

   CI update for `96a18dc44f094475de9d65202bb3d3a591b6415f`: the integration/browser jobs are blocked during database initialization by **pre-existing multiple Alembic heads**, before these tests run.
   
   - [PostgreSQL initialization failure](https://github.com/apache/superset/actions/runs/34935647755/job/104272958898): `Multiple head revisions are present for given argument 'head'`.
   - [Playwright initialization failure](https://github.com/apache/superset/actions/runs/34935647803/job/104272984789): same error.
   - Actual Alembic inspection finds heads `c7f53d184ea2` and `88a01c781622`. The migration tree is byte-identical between base `ae240a8e6f0332acb709943d0884eae73927c9de` and this head: Git tree `8e763047ee8802b1dca0339be4dc0897279def46`.
   
   This PR changes only the macro, its tests, and documentation. I am not adding an unrelated migration repair or repeatedly rerunning deterministically blocked jobs. The local Jinja module remains **202 passed**, and all changed-file pre-commit hooks passed. CI unit tests/pre-commit are still running; this is **not an all-green claim**.
   


-- 
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(sql): preserve literal percents in where_in [superset]

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


-- 
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(sql): preserve literal percents in where_in [superset]

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

   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(sql): preserve literal percents in where_in [superset]

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

   ## [Codecov](https://app.codecov.io/gh/apache/superset/pull/44284?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
   :white_check_mark: All modified and coverable lines are covered by tests.
   :white_check_mark: Project coverage is 75.91%. Comparing base ([`b6de64f`](https://app.codecov.io/gh/apache/superset/commit/b6de64fce749f9d537a32893ef957a70b0b4cb25?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`96a18dc`](https://app.codecov.io/gh/apache/superset/commit/96a18dc44f094475de9d65202bb3d3a591b6415f?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
   :warning: Report is 1 commits behind head on master.
   
   <details><summary>Additional details and impacted files</summary>
   
   
   
   ```diff
   @@            Coverage Diff             @@
   ##           master   #44284      +/-   ##
   ==========================================
   - Coverage   75.91%   75.91%   -0.01%     
   ==========================================
     Files        2926     2926              
     Lines      173023   173025       +2     
     Branches    40139    40140       +1     
   ==========================================
     Hits       131351   131351              
   - Misses      38993    38995       +2     
     Partials     2679     2679              
   ```
   
   | [Flag](https://app.codecov.io/gh/apache/superset/pull/44284/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
   |---|---|---|
   | [python](https://app.codecov.io/gh/apache/superset/pull/44284/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `76.14% <100.00%> (-0.01%)` | :arrow_down: |
   | [unit](https://app.codecov.io/gh/apache/superset/pull/44284/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `76.14% <100.00%> (-0.01%)` | :arrow_down: |
   
   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 Harness](https://app.codecov.io/gh/apache/superset/pull/44284?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(sql): preserve literal percents in where_in [superset]

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

   Ownership update: rechecked every current check and all reviews. There are no review threads (resolved or unresolved), and @rusackas remains requested. All 15 red checks were inspected: 12 execution jobs fail on the shared multiple-Alembic-head startup error, plus three dependent required gates. No required check is skipped; the skipped frontend/release/bot jobs are conditionally inapplicable. This remains blocked, not acceptable CI. I have coordinated #44288 / #44317 / #44283 to avoid landing duplicate merge heads, and will rebase onto the chosen upstream repair once it lands, then rerun CI here.\n\nRegarding the bot suggestion: the before/after compile assertion intentionally guards against WhereInMacro mutating the shared dialect; deterministic compilation alone does not make that assertion tautological because the macro is called between the two compilations. I have strengthened the test locally with an explicit expected compiler-escaped literal and an explanatory comment. The
  full Jinja module passes (202 tests), and changed-file pre-commit including mypy/ruff/pylint passes. I am holding the push for the baseline rebase to avoid a predictably blocked duplicate CI run.


-- 
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(sql): preserve literal percents in where_in [superset]

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

   Ownership update for `144a0df5e0075905aeabcbb449a82f761922b6dc` (rebased onto master `a184395eca7c291d0b8b438f00690c633112f4d7`).
   
   ### What changed in this push
   
   1. **Rebase.** Clean rebase onto current master, no conflicts. The diff is still exactly three files: `superset/jinja_context.py` (+5), `tests/unit_tests/jinja_context_test.py`, and `docs/docs/using-superset/sql-templating.mdx`. `git rev-parse HEAD:superset/migrations` equals `master:superset/migrations` (`8e763047ee8802b1dca0339be4dc0897279def46`) — this PR does not touch migrations.
   
   2. **Addressed the bot suggestion on `test_where_in_literal_percent`.** The before/after pair was never tautological — `where_in` is invoked between the two compilations, so the pair is what proves the macro does not unescape the shared dialect globally. But the assertion compared against an opaque value, which is a fair thing to object to. It now pins both compilations to an **explicitly computed** literal derived from the `paramstyle` rather than read back off the dialect:
   
      ```python
      compiler_escaped = (
          escaped.replace("%", "%%") if paramstyle in {"format", "pyformat"} else escaped
      )
      assert str(bind.compile(...)) == f"'{compiler_escaped}'"
      assert where_in([value]) == f"('{escaped}')"
      # macro ran between the two compilations
      assert str(bind.compile(...)) == f"'{compiler_escaped}'"
      ```
   
      Both assertions are mutation-tested. Deleting the fix from `jinja_context.py` fails **35** cases; making the macro mutate the dialect (`_double_percents = False` after unescaping) fails **18** cases. Full module: **202 passed**, including `test_where_in_athena_parameterless_execution`, which genuinely runs here (PyAthena 2.25.0 installed, not skipped). All changed-file pre-commit hooks pass (mypy, ruff, ruff-format, pylint).
   
   ### CI: 46 pass, 12 skipped-as-inapplicable, 15 fail — all 15 from one master defect
   
   Every required gate that can run is green, including **`unit-tests (current)`**, **`unit-tests-required`**, **`pre-commit (current)`**, `lint-check`, `enforce-single-migration-head`, `codecov/patch`, `Analyze (python)`, and `docker-build (superset)` / `docker-build (lean)`. The earlier `test_stop_racing_normal_completion_...` flake did not recur.
   
   The 15 failures are **12 execution jobs plus 3 aggregator gates**, and I opened the log of each of the 12 individually. All 12 fail at database initialization, before any test in this PR runs, with the identical error:
   
   ```
   ERROR [flask_migrate] Error: Multiple head revisions are present for given argument 'head'
   ```
   
   `test-postgres (current)`, `test-mysql`, `test-sqlite`, `test-load-examples`, `test-postgres-hive`, `test-postgres-presto`, `cypress-matrix (chrome)`, `playwright-tests (chromium)`, `playwright-tests (chromium, /app/prefix)`, `playwright-tests-experimental (chromium)`, `playwright-tests-experimental (chromium, /app/prefix)`, `docker-build (dev)`. `test-postgres-required`, `playwright-tests-required`, and `cypress-matrix-required` are aggregators with no failure of their own.
   
   This is a master defect, not a defect in this PR:
   
   - Parsing every revision under `superset/migrations/versions` at master `a184395` yields **two heads**: `c7f53d184ea2` (coordinate purge audit pruning) and `88a01c781622` (index `ab_user(lower(username))`).
   - The migration tree on this branch is byte-identical to master's, as shown above.
   - Unrelated, frontend-only open PRs on the same base show the same `docker-build (dev)` and `playwright-tests (chromium)` failures — e.g. #44313 and #44308.
   
   I am not adding a migration repair to this PR, and I am not re-running deterministically blocked jobs. **This is explicitly not an all-green claim.**
   
   ### The one human action needed
   
   A committer needs to merge a merge-head migration to master. #44288 already does exactly that — it adds `e2f3a1b9c640` with `down_revision = ("c7f53d184ea2", "88a01c781622")`, no schema or data change — and **its own CI is fully green (65 pass, 16 skipped, 0 fail)**, which independently confirms the double head is the sole blocker. It is `MERGEABLE` and waiting on `REVIEW_REQUIRED`.
   
   Once #44288 (or an equivalent repair) lands, I will rebase this PR onto it and re-run CI here.
   
   Review still requested from @rusackas. No approval claimed; PR remains open and non-draft.
   


-- 
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(sql): preserve literal percents in where_in [superset]

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

   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 an incremental AI Review.
   - `/review full` - 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(sql): preserve literal percents in where_in [superset]

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

   ### CI is now fully green on `6329ca06d2c456c751488dfb85a9656c0622c943`
   
   The master blocker cleared: **#44288 merged upstream at 2026-09-15T20:50:43Z** (`4c27cbd007efa298c2c1101b85a1ea158ed0502a`). Master now has a **single** Alembic head, `e2f3a1b9c640` (388 revisions, verified by AST-parsing every file under `superset/migrations/versions`).
   
   I rebased this PR onto master `6cfb33197444cbf74590c2803b6dcc06180439f4` — clean, no conflicts — and re-ran CI.
   
   **Result: 64 pass, 12 skipped-as-inapplicable, 0 fail.** `statusCheckRollup.state = SUCCESS` across 76 contexts.
   
   Every job that was failing on the previous head now passes, with no change on this branch other than the rebase:
   
   | Previously failing | Now |
   | --- | --- |
   | `test-postgres (current)`, `test-mysql`, `test-sqlite`, `test-load-examples` | pass |
   | `test-postgres-hive`, `test-postgres-presto` | pass |
   | `cypress-matrix (chrome)` | pass |
   | `playwright-tests (chromium)`, `playwright-tests (chromium, /app/prefix)` | pass |
   | `playwright-tests-experimental (chromium)`, `playwright-tests-experimental (chromium, /app/prefix)` | pass |
   | `docker-build (dev)` | pass |
   | `test-postgres-required`, `playwright-tests-required`, `cypress-matrix-required` | pass |
   
   Also green: `unit-tests (current)`, `unit-tests-required`, `pre-commit (current)`, `lint-check`, `enforce-single-migration-head`, `codecov/patch`, `codecov/project`, `Analyze (python)`, `Analyze (javascript)`, `docker-build (superset)`, `docker-build (lean)`, `License Check`, `check-python-deps`, `dependency-review`, `python-dependency-liccheck`, `check-openapi-spec-drift`.
   
   I checked for hidden failures rather than trusting the checks summary alone. Enumerating **all 24 workflow runs** at this SHA gives `success=21, skipped=3` — no failed, cancelled, `action_required`, or zero-job run. The 3 skipped workflows are Superset Showtime, Dependabot patch auto-approve, and the Python dependency-requirements sync, none of which apply to a three-file Python/docs PR. Check-run conclusions across every app are `success=63, skipped=10, neutral=2`; the two neutral ones are Netlify informational ("No header rules processed", "1898 new files uploaded"). Combined commit status is `success`. The 12 skipped checks are the frontend path-filtered gates (`lint-frontend`, `validate-frontend`, `sharded-jest-tests`, `test-storybook`, `bundle-size`, `report-coverage`) plus bot/Netlify-informational jobs — this PR touches no frontend files.
   
   **No failures were waived and nothing was re-run to mask a result.**
   
   ### Unchanged since the last push
   
   Diff is still exactly three files: `superset/jinja_context.py` (+5), `tests/unit_tests/jinja_context_test.py`, `docs/docs/using-superset/sql-templating.mdx`. `HEAD:superset/migrations` equals `master:superset/migrations` (`df1419fdb9ae79b3fa1f5973fe05fbea22b4338c`) — this PR adds no migration.
   
   Locally on this head: `tests/unit_tests/jinja_context_test.py` = **202 passed**, with `test_where_in_athena_parameterless_execution` genuinely executing (PyAthena 2.25.0 installed, not skipped). All changed-file pre-commit hooks pass: mypy, ruff, ruff-format, pylint.
   
   The one piece of review feedback — the bito suggestion about the before/after recompile assertion — was addressed in the previous push and carries forward: both compilations are pinned to an explicitly computed compiler-escaped literal derived from the `paramstyle`, and the assertions are mutation-tested (deleting the fix fails 35 cases; making the macro mutate the shared dialect fails 18).
   
   ### Remaining gate
   
   `mergeStateStatus` is `BLOCKED` solely because `reviewDecision` is `REVIEW_REQUIRED`. There is no failing or missing check. **The only remaining action is a committer's approving review** — @rusackas is requested. I am not merging and not converting this to a draft.
   


-- 
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