buildSelectQuery() — drizzle-orm Function Reference
Architecture documentation for the buildSelectQuery() function in dialect.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 3f459852_55f4_d544_4624_42cc8b2004a6["buildSelectQuery()"] 1da3f399_3da2_55ff_342e_fb92de5e010c["SingleStoreDialect"] 3f459852_55f4_d544_4624_42cc8b2004a6 -->|defined in| 1da3f399_3da2_55ff_342e_fb92de5e010c 24c35043_6a76_7336_3e44_a38c73be89e1["buildRelationalQuery()"] 24c35043_6a76_7336_3e44_a38c73be89e1 -->|calls| 3f459852_55f4_d544_4624_42cc8b2004a6 4a664942_d2a4_176d_a746_ecda030d3d74["buildWithCTE()"] 3f459852_55f4_d544_4624_42cc8b2004a6 -->|calls| 4a664942_d2a4_176d_a746_ecda030d3d74 625dcfbf_0612_f909_2143_34d4e88bb50c["buildSelection()"] 3f459852_55f4_d544_4624_42cc8b2004a6 -->|calls| 625dcfbf_0612_f909_2143_34d4e88bb50c 20a80e8b_02c4_b4c7_180f_3bc7c4c5fc21["buildOrderBy()"] 3f459852_55f4_d544_4624_42cc8b2004a6 -->|calls| 20a80e8b_02c4_b4c7_180f_3bc7c4c5fc21 27bb2127_ce03_aaf8_abe2_0189af2b27e5["buildLimit()"] 3f459852_55f4_d544_4624_42cc8b2004a6 -->|calls| 27bb2127_ce03_aaf8_abe2_0189af2b27e5 c34ad8eb_a54d_5af8_42dd_3a7fda682b78["buildSetOperations()"] 3f459852_55f4_d544_4624_42cc8b2004a6 -->|calls| c34ad8eb_a54d_5af8_42dd_3a7fda682b78 style 3f459852_55f4_d544_4624_42cc8b2004a6 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-orm/src/singlestore-core/dialect.ts lines 264–401
buildSelectQuery(
{
withList,
fields,
fieldsFlat,
where,
having,
table,
joins,
orderBy,
groupBy,
limit,
offset,
lockingClause,
distinct,
setOperators,
}: SingleStoreSelectConfig,
): SQL {
const fieldsList = fieldsFlat ?? orderSelectedFields<SingleStoreColumn>(fields);
for (const f of fieldsList) {
if (
is(f.field, Column)
&& getTableName(f.field.table)
!== (is(table, Subquery)
? table._.alias
/* : is(table, SingleStoreViewBase)
? table[ViewBaseConfig].name */
: is(table, SQL)
? undefined
: getTableName(table))
&& !((table) =>
joins?.some(({ alias }) =>
alias === (table[Table.Symbol.IsAlias] ? getTableName(table) : table[Table.Symbol.BaseName])
))(f.field.table)
) {
const tableName = getTableName(f.field.table);
throw new Error(
`Your "${
f.path.join('->')
}" field references a column "${tableName}"."${f.field.name}", but the table "${tableName}" is not part of the query! Did you forget to join it?`,
);
}
}
const isSingleTable = !joins || joins.length === 0;
const withSql = this.buildWithCTE(withList);
const distinctSql = distinct ? sql` distinct` : undefined;
const selection = this.buildSelection(fieldsList, { isSingleTable });
const tableSql = (() => {
if (is(table, Table) && table[Table.Symbol.IsAlias]) {
return sql`${sql`${sql.identifier(table[Table.Symbol.Schema] ?? '')}.`.if(table[Table.Symbol.Schema])}${
sql.identifier(table[Table.Symbol.OriginalName])
} ${sql.identifier(table[Table.Symbol.Name])}`;
}
return table;
})();
const joinsArray: SQL[] = [];
if (joins) {
for (const [index, joinMeta] of joins.entries()) {
if (index === 0) {
joinsArray.push(sql` `);
}
const table = joinMeta.table;
const lateralSql = joinMeta.lateral ? sql` lateral` : undefined;
const onSql = joinMeta.on ? sql` on ${joinMeta.on}` : undefined;
if (is(table, SingleStoreTable)) {
const tableName = table[SingleStoreTable.Symbol.Name];
const tableSchema = table[SingleStoreTable.Symbol.Schema];
const origTableName = table[SingleStoreTable.Symbol.OriginalName];
const alias = tableName === origTableName ? undefined : joinMeta.alias;
joinsArray.push(
sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${
tableSchema ? sql`${sql.identifier(tableSchema)}.` : undefined
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does buildSelectQuery() do?
buildSelectQuery() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/singlestore-core/dialect.ts.
Where is buildSelectQuery() defined?
buildSelectQuery() is defined in drizzle-orm/src/singlestore-core/dialect.ts at line 264.
What does buildSelectQuery() call?
buildSelectQuery() calls 5 function(s): buildLimit, buildOrderBy, buildSelection, buildSetOperations, buildWithCTE.
What calls buildSelectQuery()?
buildSelectQuery() is called by 1 function(s): buildRelationalQuery.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free