drizzle-team / drizzle-team/drizzle-orm
[BUG]: `findFirst` with no results fails on D1 when using batch
- Dominant language
- TypeScript
- Stars
- 35.8k
- Forks
- 1.6k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 4
Description
### What version of `drizzle-orm` are you using?
0.32.1
### What version of `drizzle-kit` are you using?
0.23.1
### Describe the Bug
When calling `findFirst` with a query which doesn't return any results, usually `null` or `undefined` is returned (depending on which drizzle database provider is being used. This works as expected.
```typescript
const result = db.query.table.findFirst({
where: eq(schema.table.key, 'not-existing'),
});
```
However, when executing `findFirst` in a `batch`, an exception is thrown, when no results are found.
```typescript
const [result] = await db.batch([
db.query.table.findFirst({
where: eq(schema.table.key, 'not-existing'),
}),
]);
```
The stack trace is:
```
TypeError: Cannot read properties of undefined (reading '0')
at mapRelationalRow (.next/server/edge/chunks/ssr/074db_drizzle-orm_2402e8._.js:1975:45)
at .next/server/edge/chunks/ssr/074db_drizzle-orm_2402e8._.js:4486:414
at Array.map ()
at D1PreparedQuery.customResultMapper (.next/server/edge/chunks/ssr/074db_drizzle-orm_2402e8._.js:4486:34)
at D1PreparedQuery.mapGetResult (.next/server/edge/chunks/ssr/074db_drizzle-orm_2402e8._.js:5180:25)
at D1PreparedQuery.mapResult (.next/server/edge/chunks/ssr/074db_drizzle-orm_2402e8._.js:4958:33)
at .next/server/edge/chunks/ssr/074db_drizzle-orm_2402e8._.js:5068:65
at Array.map ()
at SQLiteD1Session.batch (.next/server/edge/chunks/ssr/074db_drizzle-orm_2402e8._.js:5068:29)
```
### Expected behavior
_No response_
### Environment & setup
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.