drizzle-team / drizzle-team/drizzle-orm
[BUG]: selectDistinct from $with CTE drops with queries
- 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
Assessment
This issue has not been assessed yet.