aminghadersohi commented on PR #44349: URL: https://github.com/apache/superset/pull/44349#issuecomment-5709083222
Done — merged #44262 at `db03401048de06282835bab5e86bf37db2f407ff` (not rebased; this branch has submitted reviews, so history is preserved). New head is `7a4eacca93f0c7f2bd2e29fbb90e5c2687bfc5e9`. Conflicts were in `prune_audit.py` and its two test modules. I resolved all three to your version wholesale, then re-applied only the named-window change on top, so your baseline is the substrate rather than something I merged around. The delta on top of `db03401048` is 3 files, +55/-6. All five properties verified by reading the merged code, not by assuming the merge kept them: 1. **MySQL<8 / unknown-version fallback** — `_repeat_path()` returns `"legacy"` for `server_version_info is None` and for `< (8, 0)`; `test_r2_unknown_mysql_version_falls_back` passes. 2. **Normalized MariaDB dispatch** — `_mariadb_normalized_version_info` gated at `>= (10, 2)`, reached via `is_mariadb` under both the `mysql` and `mariadb` dialect names; `test_r2_mariadb_uses_normalized_version` passes on all 6 params including `5.5.5-10.6.12-MariaDB-0+deb11u1`. 3. **Candidate self-filters** — the `status`/`entity_uuid`/`created_on`/`trigger` gates are intact on `_legacy_repeats_an_earlier_block`, so the two helpers still agree in isolation and under `NOT`; `test_r2_repeat_helpers_preserve_ineligible_candidates` passes. 4. **Cross-type UUID / differential tests** — present and passing: `test_repeat_paths_isolate_entity_types_and_agree`, `test_repeat_dispatch_uses_metadata_server_version`, `test_window_repeat_predicate_executes_on_sqlite` (both helpers), and the integration `test_rewritten_repeat_predicate_matches_legacy_on_random_histories` with its window/legacy/fallback three-way comparison. 5. **Unlocked entity discovery** — unchanged: discovery runs before `acquire_coordination_lock`, scope pairs are read post-lock only for the categories that consume them, and `needs_entity_scope=False` still short-circuits the evidence category. Your `_RecheckPredicates` protocol and the `_DuplicateRecheck`/`_OperationalRecheck`/`_EvidenceRecheck` adapters supersede the untyped `scope_kwargs` dict this branch was carrying, so I dropped ours and kept yours. `BATCH_SIZE = 50` / `MAX_BATCH_SIZE = 100` are as ratified. The named window is applied to the window path only, so servers routed to the legacy correlated form never emit the clause. Compiling the locked re-check for all three categories before and after the merge, the SQL is byte-identical on both PostgreSQL and MySQL — the merge did not change what runs under the lock. The MySQL locked statement still shows one `WINDOW w`, five `OVER w`, zero inline `OVER (PARTITION ...)`. Tests: 103 passed in `tests/unit_tests/commands/deletion_retention/test_prune_audit.py`, 31 in `tests/unit_tests/cli/deletion_retention_test.py`, 34 passed / 1 skipped in the integration suite (the skip is the REPEATABLE READ snapshot case, which needs MySQL or PG). CI is running at the new head. I left the acknowledged cross-product and whole-history-discovery limitations alone, as you asked. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
