Home / Function/ buildUpdateSet() — drizzle-orm Function Reference

buildUpdateSet() — drizzle-orm Function Reference

Architecture documentation for the buildUpdateSet() function in dialect.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  a779c29a_e3fb_1425_428d_6ff1a9724427["buildUpdateSet()"]
  3977a3fd_2f08_73b1_4df4_3d0fd1858514["PgDialect"]
  a779c29a_e3fb_1425_428d_6ff1a9724427 -->|defined in| 3977a3fd_2f08_73b1_4df4_3d0fd1858514
  51652aaf_93cd_307b_be64_ec6b5cfd33e6["buildUpdateQuery()"]
  51652aaf_93cd_307b_be64_ec6b5cfd33e6 -->|calls| a779c29a_e3fb_1425_428d_6ff1a9724427
  style a779c29a_e3fb_1425_428d_6ff1a9724427 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/pg-core/dialect.ts lines 152–172

	buildUpdateSet(table: PgTable, set: UpdateSet): SQL {
		const tableColumns = table[Table.Symbol.Columns];

		const columnNames = Object.keys(tableColumns).filter((colName) =>
			set[colName] !== undefined || tableColumns[colName]?.onUpdateFn !== undefined
		);

		const setSize = columnNames.length;
		return sql.join(columnNames.flatMap((colName, i) => {
			const col = tableColumns[colName]!;

			const onUpdateFnResult = col.onUpdateFn?.();
			const value = set[colName] ?? (is(onUpdateFnResult, SQL) ? onUpdateFnResult : sql.param(onUpdateFnResult, col));
			const res = sql`${sql.identifier(this.casing.getColumnCasing(col))} = ${value}`;

			if (i < setSize - 1) {
				return [res, sql.raw(', ')];
			}
			return [res];
		}));
	}

Domain

Subdomains

Called By

Frequently Asked Questions

What does buildUpdateSet() do?
buildUpdateSet() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/pg-core/dialect.ts.
Where is buildUpdateSet() defined?
buildUpdateSet() is defined in drizzle-orm/src/pg-core/dialect.ts at line 152.
What calls buildUpdateSet()?
buildUpdateSet() is called by 1 function(s): buildUpdateQuery.

Analyze Your Own Codebase

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

Try Supermodel Free