diff --git a/drizzle-kit/src/introspect-pg.ts b/drizzle-kit/src/introspect-pg.ts index b59d53193..aa5f9ef86 100644 --- a/drizzle-kit/src/introspect-pg.ts +++ b/drizzle-kit/src/introspect-pg.ts @@ -59,6 +59,11 @@ const pgImportsList = new Set([ 'line', 'geometry', 'geography', + 'oid', + 'name', + 'compactstateagg', + 'stateagg', + 'heartbeatagg', ]); const objToStatement2 = (json: { [s: string]: unknown }) => { @@ -1083,6 +1088,31 @@ const column = ( return out; } + if (lowered === 'oid') { + let out = `${withCasing(name, casing)}: oid(${dbColumnName({ name, casing })})`; + return out; + } + + if (lowered === 'name') { + let out = `${withCasing(name, casing)}: name(${dbColumnName({ name, casing })})`; + return out; + } + + if (lowered === 'heartbeatagg') { + let out = `${withCasing(name, casing)}: heartbeatagg(${dbColumnName({ name, casing })})`; + return out; + } + + if (lowered === 'stateagg') { + let out = `${withCasing(name, casing)}: stateagg(${dbColumnName({ name, casing })})`; + return out; + } + + if (lowered === 'compactstateagg') { + let out = `${withCasing(name, casing)}: compactstateagg(${dbColumnName({ name, casing })})`; + return out; + } + let unknown = `// TODO: failed to parse database type '${type}'\n`; unknown += `\t${withCasing(name, casing)}: unknown("${name}")`; return unknown; diff --git a/drizzle-orm/src/pg-core/columns/postgres_internals/name.ts b/drizzle-orm/src/pg-core/columns/postgres_internals/name.ts index b7aee202a..431984b79 100644 --- a/drizzle-orm/src/pg-core/columns/postgres_internals/name.ts +++ b/drizzle-orm/src/pg-core/columns/postgres_internals/name.ts @@ -50,8 +50,8 @@ export class PgNameInternal( - name: TName, -): PgNameInternalBuilderInitial { - return new PgNameInternalBuilder(name); +export function name(): PgNameInternalBuilderInitial<''>; +export function name(name: TName): PgNameInternalBuilderInitial; +export function name(name?: string) { + return new PgNameInternalBuilder(name ?? ''); } diff --git a/drizzle-orm/src/pg-core/columns/postgres_internals/oid.ts b/drizzle-orm/src/pg-core/columns/postgres_internals/oid.ts index ec41f736d..b0fa23c1a 100644 --- a/drizzle-orm/src/pg-core/columns/postgres_internals/oid.ts +++ b/drizzle-orm/src/pg-core/columns/postgres_internals/oid.ts @@ -50,8 +50,8 @@ export class PgOidInternal } } -export function oid( - name: TName, -): PgOidInternalBuilderInitial { - return new PgOidInternalBuilder(name); +export function oid(): PgOidInternalBuilderInitial<''>; +export function oid(name: TName): PgOidInternalBuilderInitial; +export function oid(name?: string) { + return new PgOidInternalBuilder(name ?? ''); } diff --git a/drizzle-orm/src/pg-core/columns/timescale/compactstateagg.ts b/drizzle-orm/src/pg-core/columns/timescale/compactstateagg.ts index 1dd1bbd7f..60a2009a6 100644 --- a/drizzle-orm/src/pg-core/columns/timescale/compactstateagg.ts +++ b/drizzle-orm/src/pg-core/columns/timescale/compactstateagg.ts @@ -50,8 +50,8 @@ export class PgCompactStateAgg( - name: TName, -): PgCompactStateAggBuilderInitial { - return new PgCompactStateAggBuilder(name); +export function compactstateagg(): PgCompactStateAggBuilderInitial<''>; +export function compactstateagg(name: TName): PgCompactStateAggBuilderInitial; +export function compactstateagg(name?: string) { + return new PgCompactStateAggBuilder(name ?? ''); } diff --git a/drizzle-orm/src/pg-core/columns/timescale/heartbeatagg.ts b/drizzle-orm/src/pg-core/columns/timescale/heartbeatagg.ts index 331d1898b..8003ecb2f 100644 --- a/drizzle-orm/src/pg-core/columns/timescale/heartbeatagg.ts +++ b/drizzle-orm/src/pg-core/columns/timescale/heartbeatagg.ts @@ -50,8 +50,8 @@ export class PgHeartBeatAgg( - name: TName, -): PgHeartBeatAggBuilderInitial { - return new PgHeartBeatAggBuilder(name); +export function heartbeatagg(): PgHeartBeatAggBuilderInitial<''>; +export function heartbeatagg(name: TName): PgHeartBeatAggBuilderInitial; +export function heartbeatagg(name?: string) { + return new PgHeartBeatAggBuilder(name ?? ''); } diff --git a/drizzle-orm/src/pg-core/columns/timescale/stateagg.ts b/drizzle-orm/src/pg-core/columns/timescale/stateagg.ts index 3cf729c2b..ac549d140 100644 --- a/drizzle-orm/src/pg-core/columns/timescale/stateagg.ts +++ b/drizzle-orm/src/pg-core/columns/timescale/stateagg.ts @@ -48,8 +48,8 @@ export class PgStateAgg> exte } } -export function stateAgg( - name: TName, -): PgStateAggBuilderInitial { - return new PgStateAggBuilder(name); +export function stateagg(): PgStateAggBuilderInitial<''>; +export function stateagg(name: TName): PgStateAggBuilderInitial; +export function stateagg(name?: string) { + return new PgStateAggBuilder(name ?? ''); }