buildJoins() — drizzle-orm Function Reference
Architecture documentation for the buildJoins() function in dialect.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD e14f6d94_0730_204f_0331_852853023bf3["buildJoins()"] f80973ef_149c_bd36_66ee_1e7e9024a9d5["GelDialect"] e14f6d94_0730_204f_0331_852853023bf3 -->|defined in| f80973ef_149c_bd36_66ee_1e7e9024a9d5 b6dba0b8_7a2e_9652_d94a_4567bdbe1d3b["buildUpdateQuery()"] b6dba0b8_7a2e_9652_d94a_4567bdbe1d3b -->|calls| e14f6d94_0730_204f_0331_852853023bf3 6a5af19b_779e_e705_f0b0_c71ea6c700fd["buildSelectQuery()"] 6a5af19b_779e_e705_f0b0_c71ea6c700fd -->|calls| e14f6d94_0730_204f_0331_852853023bf3 style e14f6d94_0730_204f_0331_852853023bf3 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-orm/src/gel-core/dialect.ts lines 274–320
private buildJoins(joins: GelSelectJoinConfig[] | undefined): SQL | undefined {
if (!joins || joins.length === 0) {
return undefined;
}
const joinsArray: SQL[] = [];
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, GelTable)) {
const tableName = table[GelTable.Symbol.Name];
const tableSchema = table[GelTable.Symbol.Schema];
const origTableName = table[GelTable.Symbol.OriginalName];
const alias = tableName === origTableName ? undefined : joinMeta.alias;
joinsArray.push(
sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${
tableSchema ? sql`${sql.identifier(tableSchema)}.` : undefined
}${sql.identifier(origTableName)}${alias && sql` ${sql.identifier(alias)}`}${onSql}`,
);
} else if (is(table, View)) {
const viewName = table[ViewBaseConfig].name;
const viewSchema = table[ViewBaseConfig].schema;
const origViewName = table[ViewBaseConfig].originalName;
const alias = viewName === origViewName ? undefined : joinMeta.alias;
joinsArray.push(
sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${
viewSchema ? sql`${sql.identifier(viewSchema)}.` : undefined
}${sql.identifier(origViewName)}${alias && sql` ${sql.identifier(alias)}`}${onSql}`,
);
} else {
joinsArray.push(
sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${table}${onSql}`,
);
}
if (index < joins.length - 1) {
joinsArray.push(sql` `);
}
}
return sql.join(joinsArray);
}
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does buildJoins() do?
buildJoins() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/gel-core/dialect.ts.
Where is buildJoins() defined?
buildJoins() is defined in drizzle-orm/src/gel-core/dialect.ts at line 274.
What calls buildJoins()?
buildJoins() is called by 2 function(s): buildSelectQuery, buildUpdateQuery.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free