buildRelationalQueryWithoutPK() — drizzle-orm Function Reference
Architecture documentation for the buildRelationalQueryWithoutPK() function in dialect.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 548001e7_3776_357f_1960_62423198f20f["buildRelationalQueryWithoutPK()"] f80973ef_149c_bd36_66ee_1e7e9024a9d5["GelDialect"] 548001e7_3776_357f_1960_62423198f20f -->|defined in| f80973ef_149c_bd36_66ee_1e7e9024a9d5 36dfbc90_7d35_2469_60d2_b992c2272cc0["_getQuery()"] 36dfbc90_7d35_2469_60d2_b992c2272cc0 -->|calls| 548001e7_3776_357f_1960_62423198f20f 6a5af19b_779e_e705_f0b0_c71ea6c700fd["buildSelectQuery()"] 548001e7_3776_357f_1960_62423198f20f -->|calls| 6a5af19b_779e_e705_f0b0_c71ea6c700fd style 548001e7_3776_357f_1960_62423198f20f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-orm/src/gel-core/dialect.ts lines 1141–1435
buildRelationalQueryWithoutPK({
fullSchema,
schema,
tableNamesMap,
table,
tableConfig,
queryConfig: config,
tableAlias,
nestedQueryRelation,
joinOn,
}: {
fullSchema: Record<string, unknown>;
schema: TablesRelationalConfig;
tableNamesMap: Record<string, string>;
table: GelTable;
tableConfig: TableRelationalConfig;
queryConfig: true | DBQueryConfig<'many', true>;
tableAlias: string;
nestedQueryRelation?: Relation;
joinOn?: SQL;
}): BuildRelationalQueryResult<GelTable, GelColumn> {
let selection: BuildRelationalQueryResult<GelTable, GelColumn>['selection'] = [];
let limit, offset, orderBy: NonNullable<GelSelectConfig['orderBy']> = [], where;
const joins: GelSelectJoinConfig[] = [];
if (config === true) {
const selectionEntries = Object.entries(tableConfig.columns);
selection = selectionEntries.map((
[key, value],
) => ({
dbKey: value.name,
tsKey: key,
field: aliasedTableColumn(value as GelColumn, 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: GelColumn | 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);
}
Domain
Subdomains
Defined In
Calls
Called By
Source
Frequently Asked Questions
What does buildRelationalQueryWithoutPK() do?
buildRelationalQueryWithoutPK() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/gel-core/dialect.ts.
Where is buildRelationalQueryWithoutPK() defined?
buildRelationalQueryWithoutPK() is defined in drizzle-orm/src/gel-core/dialect.ts at line 1141.
What does buildRelationalQueryWithoutPK() call?
buildRelationalQueryWithoutPK() calls 1 function(s): buildSelectQuery.
What calls buildRelationalQueryWithoutPK()?
buildRelationalQueryWithoutPK() 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