Skip to content

Cross-model field comparison causes incorrect query result #1506

@ymc9

Description

@ymc9
model A {
    id Int @id @default(autoincrement())
    value Int
    b B @relation(fields: [bId], references: [id])
    bId Int @unique

    @@allow('read', true)
}

model B {
    id Int @id @default(autoincrement())
    value Int
    a A?
    c C @relation(fields: [cId], references: [id])
    cId Int @unique

    @@allow('read', value > c.value)
}

model C {
    id Int @id @default(autoincrement())
    value Int
    b B?

    @@allow('read', true)}
await prisma.a.create({
    data: {
        value: 3,
        b: {
            create: {
                value: 2,
                c: {
                    create: {
                        value: 1,
                    },
                },
            },
        },
    },
});

const db = enhance();
const read = await db.a.findMany({ include: { b: true } });
expect(read).toHaveLength(1);
expect(read[0].b).toBeTruthy();

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions