Home / Class/ PgNumericBigInt Class — drizzle-orm Architecture

PgNumericBigInt Class — drizzle-orm Architecture

Architecture documentation for the PgNumericBigInt class in numeric.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  993cf3ff_0cb8_4698_0676_d3eb6866d22b["PgNumericBigInt"]
  b02d9686_b68f_1cdd_74bf_e7c79bb754fb["numeric.ts"]
  993cf3ff_0cb8_4698_0676_d3eb6866d22b -->|defined in| b02d9686_b68f_1cdd_74bf_e7c79bb754fb
  0be50bb2_5e12_e1b6_b497_bc3ecf9782fa["constructor()"]
  993cf3ff_0cb8_4698_0676_d3eb6866d22b -->|method| 0be50bb2_5e12_e1b6_b497_bc3ecf9782fa
  a24bfd56_d9b3_ef51_1ea6_63c46659103c["getSQLType()"]
  993cf3ff_0cb8_4698_0676_d3eb6866d22b -->|method| a24bfd56_d9b3_ef51_1ea6_63c46659103c

Relationship Graph

Source Code

drizzle-orm/src/pg-core/columns/numeric.ts lines 174–199

export class PgNumericBigInt<T extends ColumnBaseConfig<'bigint', 'PgNumericBigInt'>> extends PgColumn<T> {
	static override readonly [entityKind]: string = 'PgNumericBigInt';

	readonly precision: number | undefined;
	readonly scale: number | undefined;

	constructor(table: AnyPgTable<{ name: T['tableName'] }>, config: PgNumericBigIntBuilder<T>['config']) {
		super(table, config);
		this.precision = config.precision;
		this.scale = config.scale;
	}

	override mapFromDriverValue = BigInt;

	override mapToDriverValue = String;

	getSQLType(): string {
		if (this.precision !== undefined && this.scale !== undefined) {
			return `numeric(${this.precision}, ${this.scale})`;
		} else if (this.precision === undefined) {
			return 'numeric';
		} else {
			return `numeric(${this.precision})`;
		}
	}
}

Domain

Frequently Asked Questions

What is the PgNumericBigInt class?
PgNumericBigInt is a class in the drizzle-orm codebase, defined in drizzle-orm/src/pg-core/columns/numeric.ts.
Where is PgNumericBigInt defined?
PgNumericBigInt is defined in drizzle-orm/src/pg-core/columns/numeric.ts at line 174.

Analyze Your Own Codebase

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

Try Supermodel Free