prisma
prisma-engines
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
fix: fix partial index added diff (#5795) [TML-2063](https://linear.app/prisma-company/issue/TML-2063/fix-another-partial-index-diffing-issue) Fixes https://github.com/prisma/prisma/issues/29263 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Fixed migration diff detection for partial indexes so manual partial indexes are ignored when the preview feature is not enabled, preventing false positives when comparing schemas and migrations. * **Tests** * Added tests to validate that manual partial indexes without the preview feature do not produce migration differences. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
main
21 hours ago
chore: address comment
fix/fix-partial-index-added-diff
22 hours ago
fix: fix MySQL and stripped_partial_indexes test issues (#5793) Fixes: - outdated snapshots missing `stripped_partial_indexes` - missing `mariadb-mysql.js.wasm` for some MySQL tests that caused them not to be run - corrects some mysql tests to account for minor change in float precision behavior (see https://github.com/prisma/prisma/pull/29285) /test-all <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Tests** * Expanded query engine testing to support MariaDB MySQL WASM target compatibility alongside MySQL 8 configurations. * Refactored test validation methodology to use programmatic assertions for improved reliability. * Updated schema describer test expectations to reflect current field handling for index structures. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
main
22 hours ago
fix: fix partial index added diff
fix/fix-partial-index-added-diff
2 days ago
fix: handle PostgreSQL identifier quoting in partial index predicate comparison (#5788) ## Description Closes #5787 ## Problem After #5780, partial indexes with object literal `where` clauses are still recreated on every migration when predicates contain multiple conditions. PostgreSQL's `pg_get_expr()` returns unquoted identifiers for lowercase column names (`postcode`), while Prisma generates quoted identifiers (`"postcode"`). The AST comparison treats these as different, causing needless drop+recreate cycles. ```sql -- Prisma generates: ("deletedAt" IS NULL AND "postcode" IS NOT NULL) -- pg_get_expr() returns: ((("deletedAt" IS NULL) AND (postcode IS NOT NULL))) ``` ## Solution Extend `exprs_semantically_eq` to treat quoted and unquoted identifiers as equivalent when the unquoted form is a valid PostgreSQL identifier. Uses `sqlparser` with `PostgreSqlDialect` to verify that the identifier value can be safely used without quotes (i.e., it's not a reserved keyword and follows identifier rules). ## Changes - **PG `schema_differ.rs`** — Added identifier quoting comparison in `exprs_semantically_eq`; checks if `"foo"` and `foo` refer to the same column by re-parsing with `sqlparser` - **`partial.rs`** — Regression test for object literal predicates with `null` and `not: null` conditions <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved PostgreSQL schema comparison to more robustly treat identifiers as equivalent across quote styles and within expressions. * **Tests** * Added an idempotency test for Postgres partial indexes using object-literal filters with null and not-null conditions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
main
3 days ago
fix: fix MySQL and stripped_partial_indexes test issues
test/fix-mysql-test-issues
3 days ago
refactor: simplify identifier validation in idents_semantically_eq
jay-l-e-e:fix/partial-index-pg-identifier-quoting
3 days ago
fix: preserve manually-created partial indexes when `partialIndexes` preview feature is disabled (#5790) Fixes #5789 and https://github.com/prisma/prisma/issues/29289 ### Problem #5780 stripped partial index predicates when `partialIndexes` is disabled, but manually-created partial indexes were still dropped as drift. ### Solution - Track indexes whose predicates were stripped due to feature-gating in `SqlSchema::feature_gated_partial_indexes` - Exclude them from `dropped_indexes` in the differ ### Changes - `sql-schema-describer`: Added `feature_gated_partial_indexes: HashSet<IndexId>` to track stripped indexes - `sql-schema-connector`: Skip feature-gated partial indexes in `dropped_indexes` - Added regression tests for PostgreSQL, MSSQL, SQLite, and CockroachDB <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Manual partial indexes are preserved (not dropped) when the partialIndexes preview feature is disabled, improving schema sync and diff stability. * **New Features** * Schema describe outputs now include metadata about stripped partial indexes and an API to query that state. * Preview-feature flags are propagated through diff and diagnose flows so tooling respects preview settings. * **Tests** * Added cross‑database tests ensuring manual partial indexes are ignored by migrations/diffs when the preview feature is off. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
main
3 days ago
Active Branches
fix(quaint): add url decode for MSSQL database name
last run
13 days ago
#5786
CodSpeed Performance Gauge
0%
fix: prevent breaking default expr in SQLite
last run
13 days ago
#5748
CodSpeed Performance Gauge
0%
fix: add buffered DMMF API to bypass V8 string length limit
last run
16 days ago
#5757
CodSpeed Performance Gauge
0%
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs