Avatar for the prisma user
prisma
prisma-engines
BlogDocsChangelog

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 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
refactor: simplify identifier validation in idents_semantically_eq
jay-l-e-e:fix/partial-index-pg-identifier-quoting
3 days ago

Active Branches

fix(quaint): add url decode for MSSQL database name
last run
13 days ago
#5786
CodSpeed Performance Gauge
0%
#5748
CodSpeed Performance Gauge
0%
#5757
CodSpeed Performance Gauge
0%
© 2026 CodSpeed Technology
Home Terms Privacy Docs