Home / Class/ SingleStoreSelectBuilder Class — drizzle-orm Architecture

SingleStoreSelectBuilder Class — drizzle-orm Architecture

Architecture documentation for the SingleStoreSelectBuilder class in select.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  75f7c7c2_4738_dec2_b8e5_415f51cb2239["SingleStoreSelectBuilder"]
  eddab78d_59a6_c51b_6a1e_6cd2989d2bc3["select.ts"]
  75f7c7c2_4738_dec2_b8e5_415f51cb2239 -->|defined in| eddab78d_59a6_c51b_6a1e_6cd2989d2bc3
  d784e390_92ed_0a7a_e4c0_7e070c447117["constructor()"]
  75f7c7c2_4738_dec2_b8e5_415f51cb2239 -->|method| d784e390_92ed_0a7a_e4c0_7e070c447117
  247eed81_4624_41d2_086c_368bf144c4b9["from()"]
  75f7c7c2_4738_dec2_b8e5_415f51cb2239 -->|method| 247eed81_4624_41d2_086c_368bf144c4b9

Relationship Graph

Source Code

drizzle-orm/src/singlestore-core/query-builders/select.ts lines 59–131

export class SingleStoreSelectBuilder<
	TSelection extends SelectedFields | undefined,
	TPreparedQueryHKT extends PreparedQueryHKTBase,
	TBuilderMode extends 'db' | 'qb' = 'db',
> {
	static readonly [entityKind]: string = 'SingleStoreSelectBuilder';

	private fields: TSelection;
	private session: SingleStoreSession | undefined;
	private dialect: SingleStoreDialect;
	private withList: Subquery[] = [];
	private distinct: boolean | undefined;

	constructor(
		config: {
			fields: TSelection;
			session: SingleStoreSession | undefined;
			dialect: SingleStoreDialect;
			withList?: Subquery[];
			distinct?: boolean;
		},
	) {
		this.fields = config.fields;
		this.session = config.session;
		this.dialect = config.dialect;
		if (config.withList) {
			this.withList = config.withList;
		}
		this.distinct = config.distinct;
	}

	from<TFrom extends SingleStoreTable | Subquery | SQL>( // | SingleStoreViewBase
		source: TFrom,
	): CreateSingleStoreSelectFromBuilderMode<
		TBuilderMode,
		GetSelectTableName<TFrom>,
		TSelection extends undefined ? GetSelectTableSelection<TFrom> : TSelection,
		TSelection extends undefined ? 'single' : 'partial',
		TPreparedQueryHKT
	> {
		const isPartialSelect = !!this.fields;

		let fields: SelectedFields;
		if (this.fields) {
			fields = this.fields;
		} else if (is(source, Subquery)) {
			// This is required to use the proxy handler to get the correct field values from the subquery
			fields = Object.fromEntries(
				Object.keys(source._.selectedFields).map((
					key,
				) => [key, source[key as unknown as keyof typeof source] as unknown as SelectedFields[string]]),
			);
			/* } else if (is(source, SingleStoreViewBase)) {
			fields = source[ViewBaseConfig].selectedFields as SelectedFields; */
		} else if (is(source, SQL)) {
			fields = {};
		} else {
			fields = getTableColumns<SingleStoreTable>(source);
		}

		return new SingleStoreSelectBase(
			{
				table: source,
				fields,
				isPartialSelect,
				session: this.session,
				dialect: this.dialect,
				withList: this.withList,
				distinct: this.distinct,
			},
		) as any;
	}
}

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free