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
  d7049241_7ec2_9099_5cfb_81a55933a41d["with()"]
  4d1210ae_09b8_d3bc_6c8e_d393ccd84bdd["QueryBuilder"]
  d7049241_7ec2_9099_5cfb_81a55933a41d -->|defined in| 4d1210ae_09b8_d3bc_6c8e_d393ccd84bdd
  a054351d_cc66_2206_915e_ed47108ced00["select()"]
  d7049241_7ec2_9099_5cfb_81a55933a41d -->|calls| a054351d_cc66_2206_915e_ed47108ced00
  64816d20_b2df_f8d6_1c83_933452969a7c["getDialect()"]
  d7049241_7ec2_9099_5cfb_81a55933a41d -->|calls| 64816d20_b2df_f8d6_1c83_933452969a7c
  082fbba5_88e5_d6bb_0f1a_6acef76c84f3["selectDistinct()"]
  d7049241_7ec2_9099_5cfb_81a55933a41d -->|calls| 082fbba5_88e5_d6bb_0f1a_6acef76c84f3
  4476576a_d5af_b199_3fff_2a4faf12c699["selectDistinctOn()"]
  d7049241_7ec2_9099_5cfb_81a55933a41d -->|calls| 4476576a_d5af_b199_3fff_2a4faf12c699
  style d7049241_7ec2_9099_5cfb_81a55933a41d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/gel-core/query-builders/query-builder.ts lines 43–88

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

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

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

		function selectDistinctOn(on: (GelColumn | SQLWrapper)[]): GelSelectBuilder<undefined, 'qb'>;
		function selectDistinctOn<TSelection extends SelectedFields>(
			on: (GelColumn | SQLWrapper)[],
			fields: TSelection,
		): GelSelectBuilder<TSelection, 'qb'>;
		function selectDistinctOn(
			on: (GelColumn | SQLWrapper)[],
			fields?: SelectedFields,
		): GelSelectBuilder<SelectedFields | undefined, 'qb'> {
			return new GelSelectBuilder({
				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/gel-core/query-builders/query-builder.ts.
Where is with() defined?
with() is defined in drizzle-orm/src/gel-core/query-builders/query-builder.ts at line 43.
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