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

buildRelationalQuery() — drizzle-orm Function Reference

Architecture documentation for the buildRelationalQuery() function in dialect.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  24c35043_6a76_7336_3e44_a38c73be89e1["buildRelationalQuery()"]
  1da3f399_3da2_55ff_342e_fb92de5e010c["SingleStoreDialect"]
  24c35043_6a76_7336_3e44_a38c73be89e1 -->|defined in| 1da3f399_3da2_55ff_342e_fb92de5e010c
  1ea335a3_8650_b46e_d6f4_64f288128f9d["_getQuery()"]
  1ea335a3_8650_b46e_d6f4_64f288128f9d -->|calls| 24c35043_6a76_7336_3e44_a38c73be89e1
  3f459852_55f4_d544_4624_42cc8b2004a6["buildSelectQuery()"]
  24c35043_6a76_7336_3e44_a38c73be89e1 -->|calls| 3f459852_55f4_d544_4624_42cc8b2004a6
  34094e36_e185_d607_fcf3_1d5ba38e6c02["where()"]
  24c35043_6a76_7336_3e44_a38c73be89e1 -->|calls| 34094e36_e185_d607_fcf3_1d5ba38e6c02
  60229686_a2c9_1c40_b21e_cdaacc0759b9["orderBy()"]
  24c35043_6a76_7336_3e44_a38c73be89e1 -->|calls| 60229686_a2c9_1c40_b21e_cdaacc0759b9
  style 24c35043_6a76_7336_3e44_a38c73be89e1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/singlestore-core/dialect.ts lines 537–833

	buildRelationalQuery({
		fullSchema,
		schema,
		tableNamesMap,
		table,
		tableConfig,
		queryConfig: config,
		tableAlias,
		nestedQueryRelation,
		joinOn,
	}: {
		fullSchema: Record<string, unknown>;
		schema: TablesRelationalConfig;
		tableNamesMap: Record<string, string>;
		table: SingleStoreTable;
		tableConfig: TableRelationalConfig;
		queryConfig: true | DBQueryConfig<'many', true>;
		tableAlias: string;
		nestedQueryRelation?: Relation;
		joinOn?: SQL;
	}): BuildRelationalQueryResult<SingleStoreTable, SingleStoreColumn> {
		let selection: BuildRelationalQueryResult<SingleStoreTable, SingleStoreColumn>['selection'] = [];
		let limit, offset, orderBy: SingleStoreSelectConfig['orderBy'], where;
		const joins: SingleStoreSelectJoinConfig[] = [];

		if (config === true) {
			const selectionEntries = Object.entries(tableConfig.columns);
			selection = selectionEntries.map((
				[key, value],
			) => ({
				dbKey: value.name,
				tsKey: key,
				field: aliasedTableColumn(value as SingleStoreColumn, tableAlias),
				relationTableTsKey: undefined,
				isJson: false,
				selection: [],
			}));
		} else {
			const aliasedColumns = Object.fromEntries(
				Object.entries(tableConfig.columns).map(([key, value]) => [key, aliasedTableColumn(value, tableAlias)]),
			);

			if (config.where) {
				const whereSql = typeof config.where === 'function'
					? config.where(aliasedColumns, getOperators())
					: config.where;
				where = whereSql && mapColumnsInSQLToAlias(whereSql, tableAlias);
			}

			const fieldsSelection: { tsKey: string; value: SingleStoreColumn | SQL.Aliased }[] = [];
			let selectedColumns: string[] = [];

			// Figure out which columns to select
			if (config.columns) {
				let isIncludeMode = false;

				for (const [field, value] of Object.entries(config.columns)) {
					if (value === undefined) {
						continue;
					}

					if (field in tableConfig.columns) {
						if (!isIncludeMode && value === true) {
							isIncludeMode = true;
						}
						selectedColumns.push(field);
					}
				}

				if (selectedColumns.length > 0) {
					selectedColumns = isIncludeMode
						? selectedColumns.filter((c) => config.columns?.[c] === true)
						: Object.keys(tableConfig.columns).filter((key) => !selectedColumns.includes(key));
				}
			} else {
				// Select all columns if selection is not specified
				selectedColumns = Object.keys(tableConfig.columns);
			}

			for (const field of selectedColumns) {
				const column = tableConfig.columns[field]! as SingleStoreColumn;

Domain

Subdomains

Called By

Frequently Asked Questions

What does buildRelationalQuery() do?
buildRelationalQuery() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/singlestore-core/dialect.ts.
Where is buildRelationalQuery() defined?
buildRelationalQuery() is defined in drizzle-orm/src/singlestore-core/dialect.ts at line 537.
What does buildRelationalQuery() call?
buildRelationalQuery() calls 3 function(s): buildSelectQuery, orderBy, where.
What calls buildRelationalQuery()?
buildRelationalQuery() is called by 1 function(s): _getQuery.

Analyze Your Own Codebase

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

Try Supermodel Free