buildRelationalQueryWithoutLateralSubqueries() — drizzle-orm Function Reference
Architecture documentation for the buildRelationalQueryWithoutLateralSubqueries() function in dialect.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 82000e3a_faae_8201_7ec2_d2c8f50015b0["buildRelationalQueryWithoutLateralSubqueries()"] 9c5eee4c_4b78_a585_4038_d710de212097["MySqlDialect"] 82000e3a_faae_8201_7ec2_d2c8f50015b0 -->|defined in| 9c5eee4c_4b78_a585_4038_d710de212097 8998ff31_5c63_b62f_72b4_4e37cb165428["_getQuery()"] 8998ff31_5c63_b62f_72b4_4e37cb165428 -->|calls| 82000e3a_faae_8201_7ec2_d2c8f50015b0 8ae83588_d5c3_3834_94e9_82ba6770d1a1["buildSelectQuery()"] 82000e3a_faae_8201_7ec2_d2c8f50015b0 -->|calls| 8ae83588_d5c3_3834_94e9_82ba6770d1a1 94d9f720_4e7d_e435_7ca9_8ebc87bb567b["where()"] 82000e3a_faae_8201_7ec2_d2c8f50015b0 -->|calls| 94d9f720_4e7d_e435_7ca9_8ebc87bb567b aa4aa497_8866_9da1_05e3_5ae70bf85be0["orderBy()"] 82000e3a_faae_8201_7ec2_d2c8f50015b0 -->|calls| aa4aa497_8866_9da1_05e3_5ae70bf85be0 style 82000e3a_faae_8201_7ec2_d2c8f50015b0 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-orm/src/mysql-core/dialect.ts lines 875–1168
buildRelationalQueryWithoutLateralSubqueries({
fullSchema,
schema,
tableNamesMap,
table,
tableConfig,
queryConfig: config,
tableAlias,
nestedQueryRelation,
joinOn,
}: {
fullSchema: Record<string, unknown>;
schema: TablesRelationalConfig;
tableNamesMap: Record<string, string>;
table: MySqlTable;
tableConfig: TableRelationalConfig;
queryConfig: true | DBQueryConfig<'many', true>;
tableAlias: string;
nestedQueryRelation?: Relation;
joinOn?: SQL;
}): BuildRelationalQueryResult<MySqlTable, MySqlColumn> {
let selection: BuildRelationalQueryResult<MySqlTable, MySqlColumn>['selection'] = [];
let limit, offset, orderBy: MySqlSelectConfig['orderBy'] = [], where;
if (config === true) {
const selectionEntries = Object.entries(tableConfig.columns);
selection = selectionEntries.map((
[key, value],
) => ({
dbKey: value.name,
tsKey: key,
field: aliasedTableColumn(value as MySqlColumn, 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: MySqlColumn | 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 MySqlColumn;
fieldsSelection.push({ tsKey: field, value: column });
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does buildRelationalQueryWithoutLateralSubqueries() do?
buildRelationalQueryWithoutLateralSubqueries() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/mysql-core/dialect.ts.
Where is buildRelationalQueryWithoutLateralSubqueries() defined?
buildRelationalQueryWithoutLateralSubqueries() is defined in drizzle-orm/src/mysql-core/dialect.ts at line 875.
What does buildRelationalQueryWithoutLateralSubqueries() call?
buildRelationalQueryWithoutLateralSubqueries() calls 3 function(s): buildSelectQuery, orderBy, where.
What calls buildRelationalQueryWithoutLateralSubqueries()?
buildRelationalQueryWithoutLateralSubqueries() 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