fix(db-postgres): in query with null (#12661)
Previously, this was possible in MongoDB but not in Postgres/SQLite
(having `null` in an `in` query)
```
const { docs } = await payload.find({
collection: 'posts',
where: { text: { in: ['text-1', 'text-3', null] } },
})
```
This PR fixes that behavior
This commit is contained in:
@@ -2619,4 +2619,33 @@ describe('database', () => {
|
||||
expect(res.testBlocks[0]?.text).toBe('text')
|
||||
expect(res.testBlocksLocalized[0]?.text).toBe('text-localized')
|
||||
})
|
||||
|
||||
it('should support in with null', async () => {
|
||||
await payload.delete({ collection: 'posts', where: {} })
|
||||
const post_1 = await payload.create({
|
||||
collection: 'posts',
|
||||
data: { title: 'a', text: 'text-1' },
|
||||
})
|
||||
const post_2 = await payload.create({
|
||||
collection: 'posts',
|
||||
data: { title: 'a', text: 'text-2' },
|
||||
})
|
||||
const post_3 = await payload.create({
|
||||
collection: 'posts',
|
||||
data: { title: 'a', text: 'text-3' },
|
||||
})
|
||||
const post_null = await payload.create({
|
||||
collection: 'posts',
|
||||
data: { title: 'a', text: null },
|
||||
})
|
||||
|
||||
const { docs } = await payload.find({
|
||||
collection: 'posts',
|
||||
where: { text: { in: ['text-1', 'text-3', null] } },
|
||||
})
|
||||
expect(docs).toHaveLength(3)
|
||||
expect(docs[0].id).toBe(post_null.id)
|
||||
expect(docs[1].id).toBe(post_3.id)
|
||||
expect(docs[2].id).toBe(post_1.id)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user