drizzle-team / drizzle-team/drizzle-orm

[BUG] MySQL relational query syntax error

Open
#1,100 13 comments 1 reaction 0 assignees View on GitHub
db/mysql docs docs/undocumented priority
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.28.3

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

0.19.5

### Describe the Bug

Using MySQL and the following schema:

```
export const tickets = mysqlTable(
"tickets",
{
uuid: varchar("uuid", { length: 36 }),
},
(table) => {
return {
uuid: index("uuid").on(table.uuid),
};
},
);

export const ticketsRelations = relations(tickets, ({ many }) => ({
transferData: many(transferData),
}));

export const transferData = mysqlTable(
"transfer_data",
{
id: bigint("id", { mode: "number" }).autoincrement().primaryKey().notNull(),
ticketId: bigint("ticket_id", { mode: "number" }),
data: json("data"),
},
(table) => {
return {
id: unique("id").on(table.id),
ticketId: unique("ticket_id").on(table.ticketId),
};
},
);

export const transferDataRelations = relations(transferData, ({ one }) => ({
ticket: one(tickets, {
fields: [transferData.ticketId],
references: [tickets.id],
}),
}));
```

and the following query:
```
db.query.tickets.findMany({
with: {
transferData: true,
},
limit: 10,
});
```

I get this syntax error:
```
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(select coalesce(json_arrayagg(json_array(`tickets_transferData`.`id`, `tickets_' at line 1
```

### Expected behavior

No syntax error

### Environment & setup

Google Cloud Platform CloudSQL, MySQL 5.7

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.