Home / Class/ PgHalfVector Class — drizzle-orm Architecture

PgHalfVector Class — drizzle-orm Architecture

Architecture documentation for the PgHalfVector class in halfvec.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  7bd9d57e_d974_7368_a2da_131117bae82c["PgHalfVector"]
  c85824cf_6363_9a74_fc67_e52ab4f0baae["halfvec.ts"]
  7bd9d57e_d974_7368_a2da_131117bae82c -->|defined in| c85824cf_6363_9a74_fc67_e52ab4f0baae
  e84f524b_898b_60a5_7935_a17f2c10d7b4["getSQLType()"]
  7bd9d57e_d974_7368_a2da_131117bae82c -->|method| e84f524b_898b_60a5_7935_a17f2c10d7b4
  3278c2b2_73af_3062_7540_553aaf6eefec["mapToDriverValue()"]
  7bd9d57e_d974_7368_a2da_131117bae82c -->|method| 3278c2b2_73af_3062_7540_553aaf6eefec
  aff6d3ec_d26f_7d7e_c3ba_1b9baf92d3a3["mapFromDriverValue()"]
  7bd9d57e_d974_7368_a2da_131117bae82c -->|method| aff6d3ec_d26f_7d7e_c3ba_1b9baf92d3a3

Relationship Graph

Source Code

drizzle-orm/src/pg-core/columns/vector_extension/halfvec.ts lines 43–64

export class PgHalfVector<T extends ColumnBaseConfig<'array', 'PgHalfVector'> & { dimensions: number }>
	extends PgColumn<T, { dimensions: T['dimensions'] }, { dimensions: T['dimensions'] }>
{
	static override readonly [entityKind]: string = 'PgHalfVector';

	readonly dimensions: T['dimensions'] = this.config.dimensions;

	getSQLType(): string {
		return `halfvec(${this.dimensions})`;
	}

	override mapToDriverValue(value: unknown): unknown {
		return JSON.stringify(value);
	}

	override mapFromDriverValue(value: string): unknown {
		return value
			.slice(1, -1)
			.split(',')
			.map((v) => Number.parseFloat(v));
	}
}

Domain

Frequently Asked Questions

What is the PgHalfVector class?
PgHalfVector is a class in the drizzle-orm codebase, defined in drizzle-orm/src/pg-core/columns/vector_extension/halfvec.ts.
Where is PgHalfVector defined?
PgHalfVector is defined in drizzle-orm/src/pg-core/columns/vector_extension/halfvec.ts at line 43.

Analyze Your Own Codebase

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

Try Supermodel Free