Home / Class/ SingleStoreRelationalQuery Class — drizzle-orm Architecture

SingleStoreRelationalQuery Class — drizzle-orm Architecture

Architecture documentation for the SingleStoreRelationalQuery class in query.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  016e14f7_1175_0f45_608e_694b0a02390c["SingleStoreRelationalQuery"]
  3dd154a2_93d2_ad97_3dff_5d4bd64bf7d4["query.ts"]
  016e14f7_1175_0f45_608e_694b0a02390c -->|defined in| 3dd154a2_93d2_ad97_3dff_5d4bd64bf7d4
  27c02bf6_d8d3_30a3_abab_3e18a76a0551["constructor()"]
  016e14f7_1175_0f45_608e_694b0a02390c -->|method| 27c02bf6_d8d3_30a3_abab_3e18a76a0551
  7c569ae0_2ed4_e880_a90a_f90200ec0f72["prepare()"]
  016e14f7_1175_0f45_608e_694b0a02390c -->|method| 7c569ae0_2ed4_e880_a90a_f90200ec0f72
  1ea335a3_8650_b46e_d6f4_64f288128f9d["_getQuery()"]
  016e14f7_1175_0f45_608e_694b0a02390c -->|method| 1ea335a3_8650_b46e_d6f4_64f288128f9d
  6502f5a2_b090_2e3b_9616_3008ed994d0b["_toSQL()"]
  016e14f7_1175_0f45_608e_694b0a02390c -->|method| 6502f5a2_b090_2e3b_9616_3008ed994d0b
  cd68b5b2_eb70_62b0_2aad_8afb602e58e9["getSQL()"]
  016e14f7_1175_0f45_608e_694b0a02390c -->|method| cd68b5b2_eb70_62b0_2aad_8afb602e58e9
  d577a511_f0cf_0876_4e74_de205a067458["toSQL()"]
  016e14f7_1175_0f45_608e_694b0a02390c -->|method| d577a511_f0cf_0876_4e74_de205a067458
  3248c18f_6965_091d_6243_e3cfec16a05b["execute()"]
  016e14f7_1175_0f45_608e_694b0a02390c -->|method| 3248c18f_6965_091d_6243_e3cfec16a05b

Relationship Graph

Source Code

drizzle-orm/src/singlestore-core/query-builders/query.ts lines 72–141

export class SingleStoreRelationalQuery<
	TPreparedQueryHKT extends PreparedQueryHKTBase,
	TResult,
> extends QueryPromise<TResult> {
	static override readonly [entityKind]: string = 'SingleStoreRelationalQuery';

	declare protected $brand: 'SingleStoreRelationalQuery';

	constructor(
		private fullSchema: Record<string, unknown>,
		private schema: TablesRelationalConfig,
		private tableNamesMap: Record<string, string>,
		private table: SingleStoreTable,
		private tableConfig: TableRelationalConfig,
		private dialect: SingleStoreDialect,
		private session: SingleStoreSession,
		private config: DBQueryConfig<'many', true> | true,
		private queryMode: 'many' | 'first',
	) {
		super();
	}

	prepare() {
		const { query, builtQuery } = this._toSQL();
		return this.session.prepareQuery(
			builtQuery,
			undefined,
			(rawRows) => {
				const rows = rawRows.map((row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection));
				if (this.queryMode === 'first') {
					return rows[0] as TResult;
				}
				return rows as TResult;
			},
		) as PreparedQueryKind<TPreparedQueryHKT, SingleStorePreparedQueryConfig & { execute: TResult }, true>;
	}

	private _getQuery() {
		return this.dialect.buildRelationalQuery({
			fullSchema: this.fullSchema,
			schema: this.schema,
			tableNamesMap: this.tableNamesMap,
			table: this.table,
			tableConfig: this.tableConfig,
			queryConfig: this.config,
			tableAlias: this.tableConfig.tsName,
		});
	}

	private _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {
		const query = this._getQuery();

		const builtQuery = this.dialect.sqlToQuery(query.sql as SQL);

		return { builtQuery, query };
	}

	/** @internal */
	getSQL(): SQL {
		return this._getQuery().sql as SQL;
	}

	toSQL(): Query {
		return this._toSQL().builtQuery;
	}

	override execute(): Promise<TResult> {
		return this.prepare().execute();
	}
}

Domain

Frequently Asked Questions

What is the SingleStoreRelationalQuery class?
SingleStoreRelationalQuery is a class in the drizzle-orm codebase, defined in drizzle-orm/src/singlestore-core/query-builders/query.ts.
Where is SingleStoreRelationalQuery defined?
SingleStoreRelationalQuery is defined in drizzle-orm/src/singlestore-core/query-builders/query.ts at line 72.

Analyze Your Own Codebase

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

Try Supermodel Free