drizzle-team / drizzle-team/drizzle-orm

[BUG]: selectDistinct from $with CTE drops with queries

Open
#4,095 1 comment 0 reactions 0 assignees View on GitHub
bug bug/cant-reproduce priority qb/crud
Dominant language
TypeScript
Stars
35.8k
Forks
1.6k
Avg merge
2d 7h
Merged PRs (30d)
4

Description

### Report hasn't been filed before.

- [x] I have verified that the bug I'm about to report hasn't been filed before.

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

0.39.1

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

0.39.1

### Other packages

_No response_

### Describe the Bug

### What is the undesired behaviour?

Using .selectDistinct() on .with(...queries) passes through queries to select builder.

### What are the steps to reproduce it?
```typescript
const someCTE = pgQueryBuilder.$with('SOME_CTE').as((cteQb) =>
cteQb
.select({
someColumn: someTable.someColumn,
})
.from(someTable)
);

const sqlOutput = pgQueryBuilder
.with(someCTE)
.selectDistinct({
someColumn: someCTE.someColumn,
})
.from(someCTE)
.getSQL();

```

### What is the desired result?

Output sql is going to be
```sql
SELECT DISTINCT
SOME_COLUMN
FROM
SOME_CTE
```
Then expected should be

```sql
WITH SOME_CTE AS (
SELECT
SOME_COLUMN
FROM
SOME_TABLE
)
SELECT DISTINCT
SOME_COLUMN
FROM
SOME_CTE
```

### The bug

If I'm not mistaken this bug is caused by[ .with(...queries) in not passing through withList to selectDistinct in pg-core query builder](https://github.com/drizzle-team/drizzle-orm/blob/main/drizzle-orm/src/pg-core/query-builders/query-builder.ts#L74)

Looking at [select() implementation in pg-core](https://github.com/drizzle-team/drizzle-orm/blob/main/drizzle-orm/src/pg-core/query-builders/query-builder.ts#L61), it looks like a bug, as it does include queries correctly.

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.