Skip to content

test(ports): account for first 500 Prisma engine query tests - #29924

Merged
SevInf merged 51 commits into
mainfrom
port-engine-tests-500
Aug 14, 2026
Merged

test(ports): account for first 500 Prisma engine query tests#29924
SevInf merged 51 commits into
mainfrom
port-engine-tests-500

Conversation

@StevenMcClankerton

@StevenMcClankerton StevenMcClankerton commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Linked issue

n/a — no ticket for this project batch.

At a glance

expect(() => query.public.a.select('string').groupBy()).toThrow(
  expect.objectContaining({
    name: 'StructuredError',
    code: 'ORM.ARGUMENT_INVALID',
    message: 'Invalid groupBy arguments',
  }),
);

This is one of 201 executable cases derived from the first 500 prisma-engines query tests; the remaining cases receive explicit, reviewed non-port dispositions.

Summary

The engine query inventory was entirely unchecked, so Prisma Next compatibility and unsupported behavior were both implicit. This PR accounts for exactly the first 500 source cases and preserves case 501 as the boundary for subsequent work.

Decision

This PR ships the first engine-query accounting milestone as three explicit outcomes:

  1. 180 passing ports across aggregation, scalar data types, distinct queries, relation filters, and field-reference filters.
  2. 21 runnable compatibility gaps marked with it.fails and documented one-to-one in the canonical failure ledger.
  3. 299 reviewed non-port dispositions recorded in 44 source-suite ledgers.

All ports use public ORM, SQL-builder, Mongo AST, and contract-authoring surfaces. No production implementation changes are included.

Reviewer notes

  • Generated contract artifacts make up most of the diff. The behavior-bearing additions are the 44 *.test.ts files under test/integration/test/ports/engines/queries/.
  • The source corpus is pinned to prisma-engines@e922089b7d7502aff4249d5da3420f6fa55fc6ad.
  • The cutoff is deliberate: case 500, queries::filters::ported_filters::str_not_starts_with, is checked; case 501, str_ends_with, and all later cases remain untouched.
  • Expected failures preserve executable evidence for current differences such as aggregate cursor/pagination handling, JSONB and enum decoding, scalar-list defaults, and cursor semantics. This PR does not fix those production gaps.
  • Every runnable port was reviewed and executed individually before the final combined validation pass.

How it fits together

  1. Co-located fixtures reproduce each source suite's relevant PostgreSQL or MongoDB schema and retain generated contract artifacts for deterministic execution.
  2. Public Prisma Next query surfaces translate the upstream operation while preserving inputs, database-side behavior, and complete assertions.
  3. Executable divergences remain in the suite as it.fails, paired with precise current-behavior explanations in failing.md.
  4. Cases without a faithful public translation are recorded one test per line under non-ported/queries.
  5. engines-queries.md links every one of the first 500 source identifiers to exactly one disposition.
  6. The new implementer and reviewer briefs codify source-file batch limits, individual execution, fidelity review, and single-writer finalization.

Behavior changes & evidence

  • Aggregation cases now run through Prisma Next's public query APIs. Coverage includes count, average, min/max/sum, group-by, HAVING, and relation counts in queries/aggregation, with representative evidence in group_by.test.ts and group_by_having.test.ts.
  • Scalar and native PostgreSQL behavior is exercised against faithful schemas. The ports cover BigInt, Boolean, Bytes, DateTime, Decimal, enums, Float, Int, JSON, strings, native PostgreSQL types, and relation traversal under queries/data_types, including postgres.test.ts.
  • Filter behavior now includes scalar, relation, list, JSON, and field-reference cases. The public ORM and SQL-builder paths are exercised under queries/filters, with field-reference evidence in relation_filter.test.ts and json_filter.test.ts.
  • Known compatibility differences stay executable and visible. The 21 expected failures are documented in failing.md and exercised by suites such as sum.test.ts and json.test.ts.
  • Unsupported cases have precise source-level accounting. The 299 entries across non-ported/queries distinguish unavailable connectors, APIs, authoring features, and engine-specific protocols instead of treating them as generic skips.

Compatibility / migration / risk

There are no production API, runtime, or migration changes. The review risk is test fidelity: each port must retain the source schema, operation, inputs, and full assertions rather than merely exercise similar behavior. The reviewer protocol and one-to-one checklist accounting are intended to make that fidelity auditable.

Testing performed

  • Focused engine suite: 44 files passed; 180 tests passed; 21 expected failures; no type errors.
  • pnpm build — 86 tasks successful.
  • cd test/integration && pnpm typecheck — passed.
  • pnpm lint — 101 tasks successful; informational pre-existing Biome diagnostics only.
  • pnpm fixtures:check — passed with no fixture drift.
  • git diff --check — passed.
  • Accounting validation — 500 checked, 373 unchecked; 180 PASS, 21 test.fails, 299 non-ported; no inboxes remain.

Skill update

n/a — internal test inventory and review workflow only; no user-facing API or CLI surface changes.

Follow-ups

  • Continue from case 501 in a separate milestone.
  • Address the production gaps captured by the 21 expected failures independently from this accounting PR.

Alternatives considered

  • Port beyond case 500 in the same PR: not chosen because the fixed boundary keeps the review and accounting milestone auditable.
  • Mark every non-running case as skipped: not chosen because skips do not distinguish unavailable public surfaces from known executable incompatibilities.
  • Use internal runtime access or test-only production changes to force ports: not chosen because those translations would not represent behavior available to Prisma Next consumers.
  • Fix compatibility gaps while porting: not chosen because mixing production fixes into the accounting work would obscure whether each source case was translated faithfully.

Checklist

  • All commits are signed off (git commit -s) per the DCO.
  • I read CONTRIBUTING.md and the change is scoped to one logical concern.
  • Tests are updated.
  • The PR title is in TML-NNNN: <sentence-case title> form — n/a, this work has no Linear ticket.
  • The Skill update section above is filled in.

Summary by CodeRabbit

  • Tests

    • Expanded PostgreSQL integration coverage for aggregations, grouping, relation counts, distinct queries, filters, field references, relations, and scalar data types.
    • Added validation for BigInt, Decimal, JSON, enums, bytes, dates, lists, null handling, pagination, and nested relations.
    • Added regression coverage for relation-filter and one-to-one behaviors.
    • Improved access to the connected database client in integration tests.
  • Documentation

    • Documented unsupported or non-portable scenarios across providers and advanced query patterns.

@StevenMcClankerton
StevenMcClankerton requested a review from a team as a code owner August 7, 2026 15:12
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉


📝 Walkthrough

Walkthrough

This PR adds PostgreSQL integration coverage for aggregation, data types, distinct queries, filters, field references, and relation counts. It also adds fixture contracts, expected-failure records, non-ported manifests, and PostgreSQL harness client exposure.

Changes

Engine integration coverage

Layer / File(s) Summary
Port-status manifests
test/integration/test/ports/engines/failing.md, test/integration/test/ports/engines/non-ported/...
Documents expected failures and unsupported Prisma Next coverage across engine query categories.
Aggregation and relation-count tests
test/integration/test/ports/engines/queries/aggregation/...
Adds PostgreSQL tests and fixture contracts for aggregate values, grouping, HAVING, relation counts, and distinct relation results.
Scalar, native, and relational data types
test/integration/test/ports/engines/queries/data_types/...
Adds read coverage for scalar, native PostgreSQL, JSON, enum, and through-relation data.
Scalar, relation, JSON, and list filters
test/integration/test/ports/engines/queries/filters/...
Adds filter coverage for scalar operators, JSON and list filters, nested relations, and filter regressions.
Field-reference filters
test/integration/test/ports/engines/queries/filters/field_reference/...
Adds SQL helpers, fixtures, and tests for scalar comparisons, list membership, relation traversal, JSON references, HAVING references, and validation failures.
PostgreSQL harness exposure
test/integration/test/ports/_harness/postgres.ts
Adds the connected PostgreSQL facade to PortContext as client and passes it to callbacks.

Estimated code review effort: 5 (Critical) | ~120 minutes

Merge Risk: ⚪ Minimal · up to 04f49

This PR adds test coverage and accounting for the first 500 engine query cases without changing production behavior; no actionable merge-blocking risk remains beyond normal checks and review.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: accounting for the first 500 Prisma engine query tests.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch port-engine-tests-500

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment thread test/integration/test/ports/engines/failing.md Outdated
@pkg-pr-new

pkg-pr-new Bot commented Aug 7, 2026

Copy link
Copy Markdown

Open in StackBlitz

@prisma/orm-extension-arktype-json

npm i https://pkg.pr.new/@prisma/orm-extension-arktype-json@29924

@prisma/orm-extension-middleware-cache

npm i https://pkg.pr.new/@prisma/orm-extension-middleware-cache@29924

@prisma/orm-extension-paradedb

npm i https://pkg.pr.new/@prisma/orm-extension-paradedb@29924

@prisma/orm-extension-pgvector

npm i https://pkg.pr.new/@prisma/orm-extension-pgvector@29924

@prisma/orm-extension-postgis

npm i https://pkg.pr.new/@prisma/orm-extension-postgis@29924

@prisma/orm-extension-supabase

npm i https://pkg.pr.new/@prisma/orm-extension-supabase@29924

@prisma/orm-family-mongo

npm i https://pkg.pr.new/@prisma/orm-family-mongo@29924

@prisma/orm-family-sql

npm i https://pkg.pr.new/@prisma/orm-family-sql@29924

@prisma/orm-framework

npm i https://pkg.pr.new/@prisma/orm-framework@29924

@prisma/orm-mongo

npm i https://pkg.pr.new/@prisma/orm-mongo@29924

@prisma/orm-postgres

npm i https://pkg.pr.new/@prisma/orm-postgres@29924

@prisma/orm-sqlite

npm i https://pkg.pr.new/@prisma/orm-sqlite@29924

@prisma/orm-target-mongo

npm i https://pkg.pr.new/@prisma/orm-target-mongo@29924

@prisma/orm-target-postgres

npm i https://pkg.pr.new/@prisma/orm-target-postgres@29924

@prisma/orm-target-sqlite

npm i https://pkg.pr.new/@prisma/orm-target-sqlite@29924

@prisma/orm-toolchain

npm i https://pkg.pr.new/@prisma/orm-toolchain@29924

commit: 04f4941

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size
postgres / no-emit 172.72 KB (0%)
postgres / emit 149.89 KB (0%)
mongo / no-emit 101.15 KB (0%)
mongo / emit 91.01 KB (0%)
cf-worker / no-emit 197.16 KB (0%)
cf-worker / emit 171.8 KB (0%)

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 9

🧹 Nitpick comments (3)
test/integration/test/ports/engines/queries/filters/field_reference/postgres-list-field-reference.ts (1)

34-56: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Collapse the duplicated membership implementation.

referencedScalarInList and referencedListHasScalar have identical bodies. Only the parameter order differs. One shared implementation prevents the two from drifting.

♻️ Proposed refactor
+function scalarMembership(scalar: ColumnRef, list: ColumnRef, negated: boolean): AnyExpression {
+  const membership = BinaryExpr.eq(scalar, FunctionCallExpr.of('ANY', [list]));
+  return AndExpr.of([
+    NullCheckExpr.isNotNull(scalar),
+    negated ? new NotExpr(membership) : membership,
+  ]);
+}
+
 export function referencedScalarInList(
   scalar: ColumnRef,
   list: ColumnRef,
   negated = false,
 ): AnyExpression {
-  const membership = BinaryExpr.eq(scalar, FunctionCallExpr.of('ANY', [list]));
-  return AndExpr.of([
-    NullCheckExpr.isNotNull(scalar),
-    negated ? new NotExpr(membership) : membership,
-  ]);
+  return scalarMembership(scalar, list, negated);
 }
 
 export function referencedListHasScalar(
   list: ColumnRef,
   scalar: ColumnRef,
   negated = false,
 ): AnyExpression {
-  const membership = BinaryExpr.eq(scalar, FunctionCallExpr.of('ANY', [list]));
-  return AndExpr.of([
-    NullCheckExpr.isNotNull(scalar),
-    negated ? new NotExpr(membership) : membership,
-  ]);
+  return scalarMembership(scalar, list, negated);
 }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@test/integration/test/ports/engines/queries/filters/field_reference/postgres-list-field-reference.ts`
around lines 34 - 56, Collapse the duplicate membership logic in
referencedScalarInList and referencedListHasScalar into one shared
implementation, adapting only the argument order at the wrapper boundary.
Preserve the existing negated behavior, null check, and expression construction
for both public functions.
test/integration/test/ports/engines/queries/aggregation/group_by_having/with-postgres-client.ts (1)

33-106: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Reuse the postgres harness for these two helpers.

Both local withPostgresClient copies repeat withPostgresPort’s deserialization, returning, push, connect, runtime cleanup, and databaseIdleTimeoutMillis: 30_000 setup, and the only difference is that they expose the full postgres(...) client. Export a shared “with raw client” variant or add that client to PortContext so group_by_having.test.ts and having_filter.test.ts can rely on one implementation.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@test/integration/test/ports/engines/queries/aggregation/group_by_having/with-postgres-client.ts`
around lines 33 - 106, Consolidate the duplicated setup in withPostgresClient
with the existing withPostgresPort harness by exporting a shared raw-client
variant or exposing the postgres client through PortContext. Reuse the existing
deserialization, returning capability setup, contract push, connection/runtime
cleanup, and 30_000-millisecond databaseIdleTimeoutMillis configuration, then
update group_by_having.test.ts and having_filter.test.ts to use the shared
implementation while preserving access to the full postgres client.
test/integration/test/ports/engines/queries/aggregation/many_count_relation/many_count_relation.test.ts (1)

184-273: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add a deterministic order to the row sub-queries.

count_with_skip (lines 193 and 197), count_with_take (lines 163 and 167), and count_with_distinct (line 264) select a subset of relation rows without an orderBy. PostgreSQL does not guarantee row order without ORDER BY. The assertions pin exact ids, so these tests can fail intermittently after a plan change or a page reorganization.

Other tests in this file already chain orderBy for the same reason (lines 308, 317, 406, 600, 623). Apply the same pattern to the skip, take, and distinct sub-queries.

If the upstream Prisma cases intentionally omit the ordering, keep the current form and add a short comment that records the divergence rationale.

♻️ Proposed ordering for count_with_skip
           .include('comments', (comments) =>
-            comments.combine({ rows: comments.select('id').skip(3), count: comments.count() }),
+            comments.combine({
+              rows: comments
+                .select('id')
+                .orderBy((comment) => comment.id.asc())
+                .skip(3),
+              count: comments.count(),
+            }),
           )
           .include('categories', (categories) =>
             categories.combine({
-              rows: categories.select('id').skip(3),
+              rows: categories
+                .select('id')
+                .orderBy((category) => category.id.asc())
+                .skip(3),
               count: categories.count(),
             }),
           )
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@test/integration/test/ports/engines/queries/aggregation/many_count_relation/many_count_relation.test.ts`
around lines 184 - 273, Add deterministic orderBy clauses to the row sub-queries
in count_with_skip, count_with_take, and count_with_distinct before applying
skip, take, or distinct, matching the ordering pattern already used elsewhere in
the file. Preserve the expected row ids while leaving count sub-queries
unchanged; if matching upstream Prisma behavior requires omitting ordering,
retain it and document that divergence with a brief comment.

Source: Learnings

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test/integration/test/ports/engines/failing.md`:
- Around line 11-16: Update the failure descriptions in the aggregate entries to
state that results include all rows matching the `where` filter, rather than
“all rows,” while preserving the explanation that `take`, negative `take`,
`skip`, and cursor state are dropped.

In
`@test/integration/test/ports/engines/non-ported/queries/filters/composite/none/none.md`:
- Around line 3-10: Replace the repeated phrase “required mapped fields” with
“fields required to be mapped” in all affected entries:
test/integration/test/ports/engines/non-ported/queries/filters/composite/none/none.md
lines 3-10,
test/integration/test/ports/engines/non-ported/queries/filters/composite/is_set/is_set.md
lines 3-20, and
test/integration/test/ports/engines/non-ported/queries/filters/composite/some/some.md
lines 3-10.

In
`@test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/contract.prisma`:
- Around line 1-26: Resolve the duplicated many-to-many definitions in
test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/contract.prisma
lines 1-26 by choosing one consistent shape: either remove PostCategory or
connect Post.categories and Category.posts to it. Apply the same choice in
test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/nested/contract.prisma
lines 13-47 for Post.tags/Tag.posts with PostTag and Comment.tags/Tag.comments
with CommentTag; ensure each explicit join model has matching opposite relation
fields when retained.

In
`@test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/self/contract.prisma`:
- Around line 1-15: Align both fixture schemas with the generated fixtures by
choosing one relationship representation: retain the explicit join models
UserFollow, PostTag, and CommentTag and remove the duplicate implicit
many-to-many relation fields, or remove those join models and update the
fixtures to use implicit relations. Apply the same consistent choice in
test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/self/contract.prisma
(lines 1-15) and
test/integration/test/ports/engines/queries/aggregation/uniq-count-relation/_fixture/nested/contract.prisma
(lines 1-47), ensuring generated contract files and tests continue to seed and
access the selected models.

In
`@test/integration/test/ports/engines/queries/data_types/bigint/bigint.test.ts`:
- Around line 31-32: Update both multi-row queries in
test/integration/test/ports/engines/queries/data_types/bigint/bigint.test.ts
lines 31-32 and
test/integration/test/ports/engines/queries/data_types/bool/bool.test.ts lines
31-32 to order the TestModel.select('bInt') and corresponding boolean field
queries by the model primary key via orderBy before calling all(), preserving
the existing assertions.

In
`@test/integration/test/ports/engines/queries/data_types/through_relation/through_relation.test.ts`:
- Around line 158-175: Remove the `@ts-expect-error` from the scalar_lists fixture
in the it.fails test. Add a narrow fixture or helper type that permits omitting
unset while preserving the existing Child.create data, and use that
fixture/helper for the call so the test compiles without a suppression reserved
for intentional type-only tests.

In
`@test/integration/test/ports/engines/queries/filters/field_reference/decimal_filter/decimal_filter.test.ts`:
- Around line 148-150: Remove or correct the duplicated negated
referencedScalarInList(scalar, list, true) assertion in the inclusion_filter
tests after checking the upstream Prisma cases for the intended operand. Apply
the same fix in
test/integration/test/ports/engines/queries/filters/field_reference/decimal_filter/decimal_filter.test.ts:148-150,
enum_filter/enum_filter.test.ts:35-36,
float_filter/float_filter.test.ts:175-177,
int_filter/int_filter.test.ts:171-173,
string_filter/string_filter.test.ts:175-177,
bytes_filter/bytes_filter.test.ts:114-116,
datetime_filter/datetime_filter.test.ts:177-179, and
bigint_filter/bigint_filter.test.ts:175-177; each site should either use the
intended distinct case or remove the redundant assertion.

In
`@test/integration/test/ports/engines/queries/filters/field_reference/having_filter/having_filter.test.ts`:
- Around line 19-29: Update both grouped query builders in the having-filter
tests, including the equalGroups query, to add builder-supported orderBy clauses
that match the row order asserted by each corresponding toEqual expectation.
Keep the existing groupBy and having logic unchanged while making both result
arrays deterministic.

In
`@test/integration/test/ports/engines/queries/filters/filter_regression/filter_regression.test.ts`:
- Around line 53-73: Make the multi-row assertions deterministic by adding
ascending ID ordering to the Company and Location queries in
test/integration/test/ports/engines/queries/filters/filter_regression/filter_regression.test.ts
at lines 53-73, using each entity’s id before select; also add company ID
ascending ordering before select('id') at lines 102-108.

---

Nitpick comments:
In
`@test/integration/test/ports/engines/queries/aggregation/group_by_having/with-postgres-client.ts`:
- Around line 33-106: Consolidate the duplicated setup in withPostgresClient
with the existing withPostgresPort harness by exporting a shared raw-client
variant or exposing the postgres client through PortContext. Reuse the existing
deserialization, returning capability setup, contract push, connection/runtime
cleanup, and 30_000-millisecond databaseIdleTimeoutMillis configuration, then
update group_by_having.test.ts and having_filter.test.ts to use the shared
implementation while preserving access to the full postgres client.

In
`@test/integration/test/ports/engines/queries/aggregation/many_count_relation/many_count_relation.test.ts`:
- Around line 184-273: Add deterministic orderBy clauses to the row sub-queries
in count_with_skip, count_with_take, and count_with_distinct before applying
skip, take, or distinct, matching the ordering pattern already used elsewhere in
the file. Preserve the expected row ids while leaving count sub-queries
unchanged; if matching upstream Prisma behavior requires omitting ordering,
retain it and document that divergence with a brief comment.

In
`@test/integration/test/ports/engines/queries/filters/field_reference/postgres-list-field-reference.ts`:
- Around line 34-56: Collapse the duplicate membership logic in
referencedScalarInList and referencedListHasScalar into one shared
implementation, adapting only the argument order at the wrapper boundary.
Preserve the existing negated behavior, null check, and expression construction
for both public functions.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro Plus

Run ID: d35217b9-9523-42d9-80e7-e1caa57c7d86

📥 Commits

Reviewing files that changed from the base of the PR and between 71234cb and faa2dba.

⛔ Files ignored due to path filters (154)
  • projects/port-all-tests/briefs/engine-implementer.md is excluded by !projects/**
  • projects/port-all-tests/briefs/engine-reviewer.md is excluded by !projects/**
  • projects/port-all-tests/checklists/engines-queries.md is excluded by !projects/**
  • projects/port-all-tests/spec.md is excluded by !projects/**
  • test/integration/test/ports/engines/queries/aggregation/avg/_fixture/decimal/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/avg/_fixture/decimal/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/avg/_fixture/numeric/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/avg/_fixture/numeric/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/count/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/count/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/group_by/_fixture/main/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/group_by/_fixture/main/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/group_by/_fixture/regression-21789/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/group_by/_fixture/regression-21789/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/group_by_having/_fixture/common/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/group_by_having/_fixture/common/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/group_by_having/_fixture/decimal/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/group_by_having/_fixture/decimal/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/compound/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/compound/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/nested/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/nested/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/self/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/self/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/max/_fixture/common/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/max/_fixture/common/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/max/_fixture/decimal/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/max/_fixture/decimal/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/min/_fixture/common/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/min/_fixture/common/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/min/_fixture/decimal/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/min/_fixture/decimal/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/sum/_fixture/decimal/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/sum/_fixture/decimal/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/sum/_fixture/numeric/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/sum/_fixture/numeric/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/uniq-count-relation/_fixture/base/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/uniq-count-relation/_fixture/base/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/uniq-count-relation/_fixture/nested/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/aggregation/uniq-count-relation/_fixture/nested/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/bigint/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/bigint/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/bool/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/bool/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/bytes/_fixture/relations/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/bytes/_fixture/relations/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/bytes/_fixture/scalars/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/bytes/_fixture/scalars/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/datetime/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/datetime/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/decimal/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/decimal/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/enum_type/_fixture/postgres/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/enum_type/_fixture/postgres/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/float/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/float/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/int/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/int/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/json/_fixture/scalar/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/json/_fixture/scalar/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/native/postgres/_fixture/other/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/native/postgres/_fixture/other/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/native/postgres/_fixture/string/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/native/postgres/_fixture/string/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/string/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/string/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/common/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/common/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/decimal/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/decimal/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/enum/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/enum/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/json/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/json/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/lists/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/lists/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/distinct/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/distinct/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/bigint_filter/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/bigint_filter/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/bytes_filter/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/bytes_filter/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/decimal_filter/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/decimal_filter/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/decimal-list/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/decimal-list/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/enum/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/enum/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/list/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/list/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/mixed/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/mixed/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/bigint_filter/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/bigint_filter/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/bytes_filter/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/bytes_filter/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/datetime_filter/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/datetime_filter/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/decimal_filter/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/decimal_filter/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/_fixture/common/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/_fixture/common/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/_fixture/default/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/_fixture/default/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/_fixture/list/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/_fixture/list/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/float_filter/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/float_filter/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/having_filter/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/having_filter/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/int_filter/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/int_filter/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/json_filter/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/json_filter/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/json_filter/_fixture/list/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/json_filter/_fixture/list/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/complex/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/complex/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/one-to-many/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/one-to-many/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/one-to-one-list/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/one-to-one-list/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/one-to-one/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/one-to-one/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/string_filter/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/field_reference/string_filter/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/filter_regression/_fixture/compound-one-to-many/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/filter_regression/_fixture/compound-one-to-many/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/filter_regression/_fixture/many-to-many/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/filter_regression/_fixture/many-to-many/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/filter_regression/_fixture/one-to-many/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/filter_regression/_fixture/one-to-many/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/filters/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/filters/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/json/_fixture/optional/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/json/_fixture/optional/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/list_filters/_fixture/base/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/list_filters/_fixture/base/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/list_filters/_fixture/decimal/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/list_filters/_fixture/decimal/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/list_filters/_fixture/json/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/list_filters/_fixture/json/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/many_relation/_fixture/25103/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/many_relation/_fixture/25103/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/many_relation/_fixture/l2-to-one/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/many_relation/_fixture/l2-to-one/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/one2one_regression/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/one2one_regression/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/one_relation/_fixture/21356/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/one_relation/_fixture/21356/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/one_relation/_fixture/21366/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/engines/queries/filters/one_relation/_fixture/21366/generated/contract.json is excluded by !**/generated/**
📒 Files selected for processing (242)
  • test/integration/test/ports/engines/failing.md
  • test/integration/test/ports/engines/non-ported/queries/aggregation/avg/avg.md
  • test/integration/test/ports/engines/non-ported/queries/aggregation/combination_spec/combination_spec.md
  • test/integration/test/ports/engines/non-ported/queries/aggregation/count/count.md
  • test/integration/test/ports/engines/non-ported/queries/aggregation/group_by/group_by.md
  • test/integration/test/ports/engines/non-ported/queries/aggregation/group_by_having/group_by_having.md
  • test/integration/test/ports/engines/non-ported/queries/aggregation/many_count_relation/many_count_relation.md
  • test/integration/test/ports/engines/non-ported/queries/batching/select_different_key_types/select_different_key_types.md
  • test/integration/test/ports/engines/non-ported/queries/batching/select_one_compound/select_one_compound.md
  • test/integration/test/ports/engines/non-ported/queries/batching/select_one_singular/select_one_singular.md
  • test/integration/test/ports/engines/non-ported/queries/batching/transactional_batch/transactional_batch.md
  • test/integration/test/ports/engines/non-ported/queries/chunking/chunking.md
  • test/integration/test/ports/engines/non-ported/queries/chunking_qc/chunking_qc.md
  • test/integration/test/ports/engines/non-ported/queries/data_types/enum_type/enum_type.md
  • test/integration/test/ports/engines/non-ported/queries/data_types/json/json.md
  • test/integration/test/ports/engines/non-ported/queries/data_types/native/mssql/mssql.md
  • test/integration/test/ports/engines/non-ported/queries/data_types/native/mysql/mysql.md
  • test/integration/test/ports/engines/non-ported/queries/data_types/native/postgres/postgres.md
  • test/integration/test/ports/engines/non-ported/queries/data_types/through_relation/through_relation.md
  • test/integration/test/ports/engines/non-ported/queries/filters/composite/combination/composite/composite.md
  • test/integration/test/ports/engines/non-ported/queries/filters/composite/combination/to_many_relation/to_many_relation.md
  • test/integration/test/ports/engines/non-ported/queries/filters/composite/combination/to_one_relation/to_one_relation.md
  • test/integration/test/ports/engines/non-ported/queries/filters/composite/equals/equals.md
  • test/integration/test/ports/engines/non-ported/queries/filters/composite/every/every.md
  • test/integration/test/ports/engines/non-ported/queries/filters/composite/is/is.md
  • test/integration/test/ports/engines/non-ported/queries/filters/composite/is_empty/is_empty.md
  • test/integration/test/ports/engines/non-ported/queries/filters/composite/is_set/is_set.md
  • test/integration/test/ports/engines/non-ported/queries/filters/composite/none/none.md
  • test/integration/test/ports/engines/non-ported/queries/filters/composite/some/some.md
  • test/integration/test/ports/engines/non-ported/queries/filters/extended_relation_filters/extended_relation_filters.md
  • test/integration/test/ports/engines/non-ported/queries/filters/field_reference/composite_filter/composite_filter.md
  • test/integration/test/ports/engines/non-ported/queries/filters/field_reference/failure/failure.md
  • test/integration/test/ports/engines/non-ported/queries/filters/field_reference/json_filter/json_filter.md
  • test/integration/test/ports/engines/non-ported/queries/filters/field_reference/relation_filter/relation_filter.md
  • test/integration/test/ports/engines/non-ported/queries/filters/field_reference/string_filter/string_filter.md
  • test/integration/test/ports/engines/non-ported/queries/filters/filter_unwrap/filter_unwrap.md
  • test/integration/test/ports/engines/non-ported/queries/filters/filters/filters.md
  • test/integration/test/ports/engines/non-ported/queries/filters/insensitive_filters/insensitive_filters.md
  • test/integration/test/ports/engines/non-ported/queries/filters/insensitive_json_filters/insensitive_json_filters.md
  • test/integration/test/ports/engines/non-ported/queries/filters/json/json.md
  • test/integration/test/ports/engines/non-ported/queries/filters/json_filters/json_filters.md
  • test/integration/test/ports/engines/non-ported/queries/filters/list_filters/list_filters.md
  • test/integration/test/ports/engines/non-ported/queries/filters/many_relation/many_relation.md
  • test/integration/test/ports/engines/non-ported/queries/filters/one_relation/one_relation.md
  • test/integration/test/ports/engines/non-ported/queries/filters/ported_filters/ported_filters.md
  • test/integration/test/ports/engines/queries/aggregation/avg/_fixture/decimal/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/avg/_fixture/decimal/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/avg/_fixture/numeric/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/avg/_fixture/numeric/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/avg/avg.test.ts
  • test/integration/test/ports/engines/queries/aggregation/count/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/count/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/count/count.test.ts
  • test/integration/test/ports/engines/queries/aggregation/group_by/_fixture/main/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/group_by/_fixture/main/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/group_by/_fixture/regression-21789/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/group_by/_fixture/regression-21789/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/group_by/group_by.test.ts
  • test/integration/test/ports/engines/queries/aggregation/group_by_having/_fixture/common/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/group_by_having/_fixture/common/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/group_by_having/_fixture/decimal/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/group_by_having/_fixture/decimal/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/group_by_having/group_by_having.test.ts
  • test/integration/test/ports/engines/queries/aggregation/group_by_having/with-postgres-client.ts
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/compound/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/compound/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/nested/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/nested/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/self/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/_fixture/self/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/many_count_relation/many_count_relation.test.ts
  • test/integration/test/ports/engines/queries/aggregation/max/_fixture/common/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/max/_fixture/common/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/max/_fixture/decimal/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/max/_fixture/decimal/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/max/max.test.ts
  • test/integration/test/ports/engines/queries/aggregation/min/_fixture/common/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/min/_fixture/common/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/min/_fixture/decimal/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/min/_fixture/decimal/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/min/min.test.ts
  • test/integration/test/ports/engines/queries/aggregation/sum/_fixture/decimal/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/sum/_fixture/decimal/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/sum/_fixture/numeric/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/sum/_fixture/numeric/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/sum/sum.test.ts
  • test/integration/test/ports/engines/queries/aggregation/uniq-count-relation/_fixture/base/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/uniq-count-relation/_fixture/base/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/uniq-count-relation/_fixture/nested/contract.prisma
  • test/integration/test/ports/engines/queries/aggregation/uniq-count-relation/_fixture/nested/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/aggregation/uniq-count-relation/uniq-count-relation.test.ts
  • test/integration/test/ports/engines/queries/data_types/bigint/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/bigint/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/bigint/bigint.test.ts
  • test/integration/test/ports/engines/queries/data_types/bool/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/bool/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/bool/bool.test.ts
  • test/integration/test/ports/engines/queries/data_types/bytes/_fixture/relations/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/bytes/_fixture/relations/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/bytes/_fixture/scalars/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/bytes/_fixture/scalars/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/bytes/bytes.test.ts
  • test/integration/test/ports/engines/queries/data_types/datetime/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/datetime/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/datetime/datetime.test.ts
  • test/integration/test/ports/engines/queries/data_types/decimal/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/decimal/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/decimal/decimal.test.ts
  • test/integration/test/ports/engines/queries/data_types/enum_type/_fixture/postgres/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/enum_type/_fixture/postgres/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/enum_type/enum_type.test.ts
  • test/integration/test/ports/engines/queries/data_types/float/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/float/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/float/float.test.ts
  • test/integration/test/ports/engines/queries/data_types/int/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/int/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/int/int.test.ts
  • test/integration/test/ports/engines/queries/data_types/json/_fixture/scalar/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/json/_fixture/scalar/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/json/json.test.ts
  • test/integration/test/ports/engines/queries/data_types/native/postgres/_fixture/other/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/native/postgres/_fixture/other/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/native/postgres/_fixture/string/contract.ts
  • test/integration/test/ports/engines/queries/data_types/native/postgres/_fixture/string/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/native/postgres/postgres.test.ts
  • test/integration/test/ports/engines/queries/data_types/string/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/string/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/string/string.test.ts
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/common/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/common/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/decimal/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/decimal/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/enum/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/enum/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/json/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/json/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/lists/contract.prisma
  • test/integration/test/ports/engines/queries/data_types/through_relation/_fixture/lists/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/data_types/through_relation/through_relation.test.ts
  • test/integration/test/ports/engines/queries/distinct/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/distinct/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/distinct/distinct.test.ts
  • test/integration/test/ports/engines/queries/filters/bigint_filter/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/bigint_filter/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/bigint_filter/bigint_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/bytes_filter/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/bytes_filter/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/bytes_filter/bytes_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/decimal_filter/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/decimal_filter/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/decimal_filter/decimal_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/decimal-list/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/decimal-list/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/enum/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/enum/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/list/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/list/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/mixed/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/_fixture/mixed/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/bigint_filter/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/bigint_filter/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/bigint_filter/bigint_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/bytes_filter/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/bytes_filter/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/bytes_filter/bytes_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/datetime_filter/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/datetime_filter/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/datetime_filter/datetime_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/decimal_filter/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/decimal_filter/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/decimal_filter/decimal_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/enum_filter/enum_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/_fixture/common/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/_fixture/common/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/_fixture/default/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/_fixture/default/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/_fixture/list/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/_fixture/list/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/failure/failure.test.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/float_filter/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/float_filter/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/float_filter/float_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/having_filter/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/having_filter/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/having_filter/having_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/having_filter/with-postgres-client.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/int_filter/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/int_filter/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/int_filter/int_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/json_filter/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/json_filter/_fixture/list/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/json_filter/_fixture/list/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/json_filter/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/json_filter/json_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/postgres-list-field-reference.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/complex/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/complex/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/one-to-many/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/one-to-many/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/one-to-one-list/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/one-to-one-list/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/one-to-one/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/_fixture/one-to-one/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/relation_filter/relation_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/string_filter/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/field_reference/string_filter/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/field_reference/string_filter/string_filter.test.ts
  • test/integration/test/ports/engines/queries/filters/filter_regression/_fixture/compound-one-to-many/contract.prisma
  • test/integration/test/ports/engines/queries/filters/filter_regression/_fixture/compound-one-to-many/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/filter_regression/_fixture/many-to-many/contract.prisma
  • test/integration/test/ports/engines/queries/filters/filter_regression/_fixture/many-to-many/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/filter_regression/_fixture/one-to-many/contract.prisma
  • test/integration/test/ports/engines/queries/filters/filter_regression/_fixture/one-to-many/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/filter_regression/filter_regression.test.ts
  • test/integration/test/ports/engines/queries/filters/filters/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/filters/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/filters/filters.test.ts
  • test/integration/test/ports/engines/queries/filters/json/_fixture/optional/contract.prisma
  • test/integration/test/ports/engines/queries/filters/json/_fixture/optional/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/json/json.test.ts
  • test/integration/test/ports/engines/queries/filters/list_filters/_fixture/base/contract.prisma
  • test/integration/test/ports/engines/queries/filters/list_filters/_fixture/base/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/list_filters/_fixture/decimal/contract.prisma
  • test/integration/test/ports/engines/queries/filters/list_filters/_fixture/decimal/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/list_filters/_fixture/json/contract.prisma
  • test/integration/test/ports/engines/queries/filters/list_filters/_fixture/json/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/list_filters/list_filters.test.ts
  • test/integration/test/ports/engines/queries/filters/many_relation/_fixture/25103/contract.prisma
  • test/integration/test/ports/engines/queries/filters/many_relation/_fixture/25103/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/many_relation/_fixture/l2-to-one/contract.prisma
  • test/integration/test/ports/engines/queries/filters/many_relation/_fixture/l2-to-one/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/many_relation/many_relation.test.ts
  • test/integration/test/ports/engines/queries/filters/one2one_regression/_fixture/contract.prisma
  • test/integration/test/ports/engines/queries/filters/one2one_regression/_fixture/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/one2one_regression/one2one_regression.test.ts
  • test/integration/test/ports/engines/queries/filters/one_relation/_fixture/21356/contract.prisma
  • test/integration/test/ports/engines/queries/filters/one_relation/_fixture/21356/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/one_relation/_fixture/21366/contract.prisma
  • test/integration/test/ports/engines/queries/filters/one_relation/_fixture/21366/prisma-next.config.ts
  • test/integration/test/ports/engines/queries/filters/one_relation/one_relation.test.ts

Comment thread test/integration/test/ports/engines/failing.md Outdated
@StevenMcClankerton

Copy link
Copy Markdown
Contributor Author

On it — I’ll consolidate the duplicated list-reference expression behind the existing wrappers. 👍

@StevenMcClankerton

Copy link
Copy Markdown
Contributor Author

On it — I’ll centralize the raw PostgreSQL client exposure in the shared port harness and remove the copied helpers. 👍

@StevenMcClankerton

Copy link
Copy Markdown
Contributor Author

On it — I’ll document why the three relation subqueries intentionally preserve upstream’s unordered operations. 👍

@StevenMcClankerton

Copy link
Copy Markdown
Contributor Author

On it 👍 I’ll consolidate the duplicated list-field-reference expression implementation.

@StevenMcClankerton

Copy link
Copy Markdown
Contributor Author

On it 👍 I’ll document why the relation subqueries remain unordered for source fidelity.

@StevenMcClankerton

Copy link
Copy Markdown
Contributor Author

On it 👍 I’ll centralize the raw Postgres client setup in the shared port harness.

@StevenMcClankerton

Copy link
Copy Markdown
Contributor Author

Done in 2cbeedb: both operation-specific scalar/list wrappers now delegate to one private membership implementation while retaining their signatures and expressions.

@StevenMcClankerton

Copy link
Copy Markdown
Contributor Author

Done in 66d939a: withPostgresPort now exposes the full Postgres facade, both HAVING suites use it, and the two copied setup helpers are removed. Migration, cleanup, capability, and timeout behavior remain centralized.

@StevenMcClankerton

Copy link
Copy Markdown
Contributor Author

Done in 3603ca9: the take, skip, and distinct relation row subqueries remain unordered, with concise comments tying that choice to the pinned upstream cases.

@StevenMcClankerton

Copy link
Copy Markdown
Contributor Author

Review body accounted for: its nine repeated inline findings were handled in their inline threads, and its three unique body-only nitpicks were implemented in 2cbeedb, 66d939a, and 3603ca9.

@SevInf
SevInf force-pushed the port-engine-tests-500 branch from 3603ca9 to b0893a6 Compare August 14, 2026 12:28
@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

SevInf and others added 12 commits August 14, 2026 16:36
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev+clanker@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev+clanker@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev+clanker@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev+clanker@prisma.io>
StevenMcClankerton and others added 20 commits August 14, 2026 16:37
Signed-off-by: Steven McClankerton <tatarintsev+clanker@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev+clanker@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev+clanker@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev+clanker@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev+clanker@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev+clanker@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev+clanker@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev+clanker@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
@SevInf
SevInf force-pushed the port-engine-tests-500 branch from a4ac28c to 04f4941 Compare August 14, 2026 16:37
@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@SevInf
SevInf added this pull request to the merge queue Aug 14, 2026
Merged via the queue into main with commit 75c9b19 Aug 14, 2026
18 checks passed
@SevInf
SevInf deleted the port-engine-tests-500 branch August 14, 2026 17:12
SevInf added a commit that referenced this pull request Sep 2, 2026
A pg.enum(Mood)[] column could not be read: the array-of-enum OID is
allocated per-database, pg-types has no parser for it, and the wire
value arrived as the raw literal `{URGENT,LOW}`, so decoding crashed
before it could report which column failed.

Two independent fixes:

- materializeCodec called descriptor.factory detached from its
  receiver (`blindCast<...>(descriptor.factory)(validated)(ctx)`), so
  any descriptor whose factory builds its codec via `new XCodec(this)`
  produced a codec with `descriptor === undefined`. That codec was
  found correctly; only its `id` getter crashed inside
  wrapDecodeFailure/wrapEncodeFailure, which is why the error named no
  column. Calling factory as a method on descriptor fixes both paths.

- renderProjection/renderReturning now cast a many + pg/enum@1
  projection to `::text[]`, putting the column on OID 1009 which
  pg-types already parses into a string array. This is a target-owned
  fact read from the contract, not a wire-value heuristic, and keeps
  array-literal parsing out of the target-agnostic sql-runtime decoder.

Un-skips ports/engines/queries/filters/field-reference/enum-filter,
which was marked it.fails in #29924 without diagnosis: it was this
same decode bug via a native-enum array column.

Fixes #30164.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UcqoY3CKfnubdZt5YQk2Rq
Signed-off-by: Steven McClankerton <tatarintsev@prisma.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants