drizzle-team / drizzle-team/drizzle-orm

[BUG]: Prisma mysql integration returns wrong keys with sql`` operator

Open
#2,848 1 comment 1 reaction 0 assignees View on GitHub
bug priority qb/crud
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.33.0

### What version of `drizzle-kit` are you using?

0.24.2

### Describe the Bug

I'm getting weird keys for the result objects
For example :
```typescript
const counted = await tx
.select({
count: count(),
})
.from(TableX)
.where(
eq(TableX.id, id),
)
```
Outputs
```typescript
[{ 'count(*)': 1n }]
```

For example :
```typescript
const counted = await tx
.select({
countStuff: sql`count(*) = ${SomeNumber}`,
})
.from(TableX)
.where(
eq(TableX.id, id),
)
```
Outputs
```typescript
[{ 'count(*) = ?': 1n }]
```

The same happens with `count()` helper function

### Expected behavior

1. To use the key I'm specifying in the query selection part
2. To Return a Number not a BigInt

### Environment & setup

This is my prisma and drizzle configuration

```typescript
/* eslint-disable @typescript-eslint/no-empty-object-type */
import type { Prisma } from "@prisma/client";
import { PrismaClient } from "@prisma/client";
import type {
DynamicClientExtensionThis,
InternalArgs,
} from "@prisma/client/runtime/library";
import type { PrismaMySqlDatabase } from "drizzle-orm/prisma/mysql";
import { drizzle } from "drizzle-orm/prisma/mysql";

export * from "@prisma/client";

const globalForPrisma = globalThis as unknown as {
prisma: DynamicClientExtensionThis<
Prisma.TypeMap<
InternalArgs & {
result: {};
model: {};
query: {};
client: {
$drizzle: () => PrismaMySqlDatabase;
};
},
Prisma.PrismaClientOptions
>,
Prisma.TypeMapCb,
{
result: {};
model: {};
query: {};
client: {
$drizzle: () => PrismaMySqlDatabase;
};
},
{}
>;
};

export const prisma =
globalForPrisma.prisma ||
new PrismaClient({
log: process.env.NODE_ENV === "development" ? ["error"] : ["error"],
}).$extends(drizzle());

if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma;

export * from "drizzle-orm/sql";
export { getTableColumns } from "drizzle-orm";
export { alias } from "drizzle-orm/mysql-core";

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.