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

column() — drizzle-orm Function Reference

Architecture documentation for the column() function in introspect-gel.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  8ddd2375_b909_cbd3_328f_c35b691f8b65["column()"]
  ac795a29_c480_454a_c930_ea8898cad46c["introspect-gel.ts"]
  8ddd2375_b909_cbd3_328f_c35b691f8b65 -->|defined in| ac795a29_c480_454a_c930_ea8898cad46c
  eca90b4e_5154_72f2_c38f_cac24c3036e0["createTableColumns()"]
  eca90b4e_5154_72f2_c38f_cac24c3036e0 -->|calls| 8ddd2375_b909_cbd3_328f_c35b691f8b65
  13b884c4_04ee_3a07_de49_bfbf8819424d["withCasing()"]
  8ddd2375_b909_cbd3_328f_c35b691f8b65 -->|calls| 13b884c4_04ee_3a07_de49_bfbf8819424d
  75b32510_d64f_63b3_5a7e_75ed201613df["paramNameFor()"]
  8ddd2375_b909_cbd3_328f_c35b691f8b65 -->|calls| 75b32510_d64f_63b3_5a7e_75ed201613df
  474e548a_a1b3_39e4_8fe9_f09840c36864["dbColumnName()"]
  8ddd2375_b909_cbd3_328f_c35b691f8b65 -->|calls| 474e548a_a1b3_39e4_8fe9_f09840c36864
  style 8ddd2375_b909_cbd3_328f_c35b691f8b65 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/introspect-gel.ts lines 698–823

const column = (
	tableName: string,
	type: string,
	name: string,
	enumTypes: Set<string>,
	typeSchema: string,
	casing: Casing,
	defaultValue?: any,
	internals?: GelKitInternals,
) => {
	const isExpression = internals?.tables[tableName]?.columns[name]?.isDefaultAnExpression ?? false;
	const lowered = type.toLowerCase().replace('[]', '');

	if (enumTypes.has(`${typeSchema}.${type.replace('[]', '')}`)) {
		let out = `${withCasing(name, casing)}: ${withCasing(paramNameFor(type.replace('[]', ''), typeSchema), casing)}(${
			dbColumnName({ name, casing })
		})`;
		return out;
	}

	if (lowered.startsWith('integer')) {
		let out = `${withCasing(name, casing)}: integer(${dbColumnName({ name, casing })})`;
		return out;
	}

	if (lowered.startsWith('smallint')) {
		let out = `${withCasing(name, casing)}: smallint(${dbColumnName({ name, casing })})`;
		return out;
	}

	if (lowered.startsWith('bigint')) {
		let out = `${withCasing(name, casing)}: bigint(${dbColumnName({ name, casing })})`;
		return out;
	}

	if (lowered.startsWith('edgedbt.bigint_t')) {
		let out = `${withCasing(name, casing)}: bigintT(${dbColumnName({ name, casing })})`;
		return out;
	}

	if (lowered.startsWith('boolean')) {
		let out = `${withCasing(name, casing)}: boolean(${dbColumnName({ name, casing })})`;
		return out;
	}

	if (lowered.startsWith('double precision')) {
		let out = `${withCasing(name, casing)}: doublePrecision(${dbColumnName({ name, casing })})`;
		return out;
	}

	if (lowered.startsWith('edgedbt.date_duration_t')) {
		let out = `${withCasing(name, casing)}: dateDuration(${dbColumnName({ name, casing })})`;
		return out;
	}

	if (lowered.startsWith('real')) {
		let out = `${withCasing(name, casing)}: real(${dbColumnName({ name, casing })})`;
		return out;
	}

	if (lowered.startsWith('uuid')) {
		let out = `${withCasing(name, casing)}: uuid(${dbColumnName({ name, casing })})`;

		return out;
	}

	if (lowered.startsWith('numeric')) {
		let out = `${withCasing(name, casing)}: decimal(${dbColumnName({ name, casing })})`;

		return out;
	}

	if (lowered.startsWith('edgedbt.timestamptz_t')) {
		let out = `${withCasing(name, casing)}: timestamptz(${dbColumnName({ name, casing })})`;

		return out;
	}

	if (lowered.startsWith('edgedbt.timestamp_t')) {
		let out = `${withCasing(name, casing)}: timestamp(${dbColumnName({ name, casing })})`;

Domain

Subdomains

Frequently Asked Questions

What does column() do?
column() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/introspect-gel.ts.
Where is column() defined?
column() is defined in drizzle-kit/src/introspect-gel.ts at line 698.
What does column() call?
column() calls 3 function(s): dbColumnName, paramNameFor, withCasing.
What calls column()?
column() is called by 1 function(s): createTableColumns.

Analyze Your Own Codebase

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

Try Supermodel Free