Home / Function/ with() — drizzle-orm Function Reference

with() — drizzle-orm Function Reference

Architecture documentation for the with() function in query-builder.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  61d8be98_3eda_861e_abc6_bd1569b7ed6a["with()"]
  0d0261da_c711_2751_2e5c_424aaf5ca574["QueryBuilder"]
  61d8be98_3eda_861e_abc6_bd1569b7ed6a -->|defined in| 0d0261da_c711_2751_2e5c_424aaf5ca574
  f404f159_0e82_a120_c371_124e35d10734["select()"]
  61d8be98_3eda_861e_abc6_bd1569b7ed6a -->|calls| f404f159_0e82_a120_c371_124e35d10734
  59e789ad_1e31_1aa4_c714_98dd659657c7["getDialect()"]
  61d8be98_3eda_861e_abc6_bd1569b7ed6a -->|calls| 59e789ad_1e31_1aa4_c714_98dd659657c7
  0c784dc9_4276_537e_74ac_c4bd826d9957["selectDistinct()"]
  61d8be98_3eda_861e_abc6_bd1569b7ed6a -->|calls| 0c784dc9_4276_537e_74ac_c4bd826d9957
  e3483429_ee9e_f1d9_d170_1047a72c193c["selectDistinctOn()"]
  61d8be98_3eda_861e_abc6_bd1569b7ed6a -->|calls| e3483429_ee9e_f1d9_d170_1047a72c193c
  style 61d8be98_3eda_861e_abc6_bd1569b7ed6a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/pg-core/query-builders/query-builder.ts lines 49–96

	with(...queries: WithSubquery[]) {
		const self = this;

		function select(): PgSelectBuilder<undefined, 'qb'>;
		function select<TSelection extends SelectedFields>(fields: TSelection): PgSelectBuilder<TSelection, 'qb'>;
		function select<TSelection extends SelectedFields>(
			fields?: TSelection,
		): PgSelectBuilder<TSelection | undefined, 'qb'> {
			return new PgSelectBuilder({
				fields: fields ?? undefined,
				session: undefined,
				dialect: self.getDialect(),
				withList: queries,
			});
		}

		function selectDistinct(): PgSelectBuilder<undefined, 'qb'>;
		function selectDistinct<TSelection extends SelectedFields>(fields: TSelection): PgSelectBuilder<TSelection, 'qb'>;
		function selectDistinct<TSelection extends SelectedFields>(
			fields?: TSelection,
		): PgSelectBuilder<TSelection | undefined, 'qb'> {
			return new PgSelectBuilder({
				fields: fields ?? undefined,
				session: undefined,
				dialect: self.getDialect(),
				distinct: true,
			});
		}

		function selectDistinctOn(on: (PgColumn | SQLWrapper)[]): PgSelectBuilder<undefined, 'qb'>;
		function selectDistinctOn<TSelection extends SelectedFields>(
			on: (PgColumn | SQLWrapper)[],
			fields: TSelection,
		): PgSelectBuilder<TSelection, 'qb'>;
		function selectDistinctOn<TSelection extends SelectedFields>(
			on: (PgColumn | SQLWrapper)[],
			fields?: TSelection,
		): PgSelectBuilder<TSelection | undefined, 'qb'> {
			return new PgSelectBuilder({
				fields: fields ?? undefined,
				session: undefined,
				dialect: self.getDialect(),
				distinct: { on },
			});
		}

		return { select, selectDistinct, selectDistinctOn };
	}

Domain

Subdomains

Frequently Asked Questions

What does with() do?
with() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/pg-core/query-builders/query-builder.ts.
Where is with() defined?
with() is defined in drizzle-orm/src/pg-core/query-builders/query-builder.ts at line 49.
What does with() call?
with() calls 4 function(s): getDialect, select, selectDistinct, selectDistinctOn.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free