drizzle-orm 0.27.3-e080bed → 0.28.0-5dd9190

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/{alias-5aeeb2f5.cjs → alias-3f5ac719.cjs} +267 -142
  2. package/alias-3f5ac719.cjs.map +1 -0
  3. package/{alias-6eaa2e87.mjs → alias-7164ff43.mjs} +223 -126
  4. package/alias-7164ff43.mjs.map +1 -0
  5. package/aws-data-api/pg/index.cjs +1 -1
  6. package/aws-data-api/pg/index.d.ts +4 -4
  7. package/aws-data-api/pg/index.mjs +2 -2
  8. package/aws-data-api/pg/migrator.d.ts +4 -4
  9. package/better-sqlite3/index.cjs +2 -2
  10. package/better-sqlite3/index.d.ts +5 -5
  11. package/better-sqlite3/index.mjs +2 -2
  12. package/better-sqlite3/migrator.d.ts +5 -5
  13. package/bun-sqlite/index.cjs +2 -2
  14. package/bun-sqlite/index.d.ts +5 -5
  15. package/bun-sqlite/index.mjs +2 -2
  16. package/bun-sqlite/migrator.d.ts +5 -5
  17. package/column.d-9d2f4045.d.ts +1151 -0
  18. package/d1/index.cjs +2 -2
  19. package/d1/index.d.ts +5 -5
  20. package/d1/index.mjs +2 -2
  21. package/d1/migrator.d.ts +5 -5
  22. package/{driver.d-58d095ec.d.ts → driver.d-055d4782.d.ts} +2 -2
  23. package/{driver.d-d2f034d7.d.ts → driver.d-20707624.d.ts} +2 -2
  24. package/{driver.d-7f308b1e.d.ts → driver.d-ab0f126f.d.ts} +2 -2
  25. package/{driver.d-f55c470d.d.ts → driver.d-b8dd753f.d.ts} +2 -2
  26. package/{driver.d-28b0b849.d.ts → driver.d-c4dd56f7.d.ts} +2 -2
  27. package/{driver.d-53ed595e.d.ts → driver.d-eb654ed5.d.ts} +2 -2
  28. package/index.cjs +3 -3
  29. package/index.d.ts +4 -4
  30. package/index.mjs +2 -2
  31. package/knex/index.d.ts +1 -1
  32. package/kysely/index.d.ts +1 -1
  33. package/libsql/index.cjs +2 -2
  34. package/libsql/index.d.ts +5 -5
  35. package/libsql/index.mjs +2 -2
  36. package/libsql/migrator.d.ts +5 -5
  37. package/mysql-core/index.cjs +57 -21
  38. package/mysql-core/index.cjs.map +1 -1
  39. package/mysql-core/index.d.ts +184 -344
  40. package/mysql-core/index.mjs +58 -22
  41. package/mysql-core/index.mjs.map +1 -1
  42. package/mysql2/index.cjs +14 -10
  43. package/mysql2/index.cjs.map +1 -1
  44. package/mysql2/index.d.ts +16 -12
  45. package/mysql2/index.mjs +15 -11
  46. package/mysql2/index.mjs.map +1 -1
  47. package/mysql2/migrator.d.ts +4 -4
  48. package/neon-http/index.cjs +1 -1
  49. package/neon-http/index.d.ts +4 -4
  50. package/neon-http/index.mjs +2 -2
  51. package/neon-http/migrator.cjs +1 -1
  52. package/neon-http/migrator.d.ts +4 -4
  53. package/neon-http/migrator.mjs +1 -1
  54. package/neon-serverless/index.cjs +1 -1
  55. package/neon-serverless/index.d.ts +4 -4
  56. package/neon-serverless/index.mjs +2 -2
  57. package/neon-serverless/migrator.d.ts +4 -4
  58. package/node-postgres/index.cjs +1 -1
  59. package/node-postgres/index.d.ts +4 -4
  60. package/node-postgres/index.mjs +2 -2
  61. package/node-postgres/migrator.d.ts +4 -4
  62. package/package.json +3 -3
  63. package/pg-core/index.cjs +1 -1
  64. package/pg-core/index.cjs.map +1 -1
  65. package/pg-core/index.d.ts +207 -373
  66. package/pg-core/index.mjs +48 -18
  67. package/pg-core/index.mjs.map +1 -1
  68. package/planetscale-serverless/index.cjs +5 -5
  69. package/planetscale-serverless/index.cjs.map +1 -1
  70. package/planetscale-serverless/index.d.ts +5 -5
  71. package/planetscale-serverless/index.mjs +5 -5
  72. package/planetscale-serverless/index.mjs.map +1 -1
  73. package/planetscale-serverless/migrator.d.ts +4 -4
  74. package/postgres-js/index.cjs +1 -1
  75. package/postgres-js/index.d.ts +4 -4
  76. package/postgres-js/index.mjs +2 -2
  77. package/postgres-js/migrator.d.ts +4 -4
  78. package/{query-promise.d-fd15f63a.d.ts → query-promise.d-bc96befc.d.ts} +48 -45
  79. package/{db.d-2e828d8c.d.ts → select.types.d-570dd25a.d.ts} +281 -465
  80. package/{select.types.d-35b6e089.d.ts → select.types.d-73209a67.d.ts} +47 -258
  81. package/{select.types.d-1ea8ee3b.d.ts → select.types.d-a3c4c974.d.ts} +20 -19
  82. package/{db.d-9d586c00.d.ts → select.types.d-d0a10728.d.ts} +471 -731
  83. package/{session-c47f12d9.mjs → session-0c131cde.mjs} +2 -2
  84. package/{session-c47f12d9.mjs.map → session-0c131cde.mjs.map} +1 -1
  85. package/{session-2431f9e1.mjs → session-16f863cd.mjs} +36 -64
  86. package/session-16f863cd.mjs.map +1 -0
  87. package/{session-6bfef963.cjs → session-805d2876.cjs} +64 -131
  88. package/session-805d2876.cjs.map +1 -0
  89. package/{session-fa99bfce.mjs → session-ac71392b.mjs} +67 -134
  90. package/session-ac71392b.mjs.map +1 -0
  91. package/{session-fa9720a5.cjs → session-e9306785.cjs} +61 -71
  92. package/session-e9306785.cjs.map +1 -0
  93. package/sql-js/index.cjs +2 -2
  94. package/sql-js/index.d.ts +5 -5
  95. package/sql-js/index.mjs +2 -2
  96. package/sql-js/migrator.d.ts +5 -5
  97. package/sqlite-core/index.cjs +2 -2
  98. package/sqlite-core/index.d.ts +83 -137
  99. package/sqlite-core/index.mjs +28 -10
  100. package/sqlite-core/index.mjs.map +1 -1
  101. package/sqlite-proxy/index.cjs +2 -2
  102. package/sqlite-proxy/index.d.ts +6 -6
  103. package/sqlite-proxy/index.mjs +2 -2
  104. package/sqlite-proxy/migrator.cjs +1 -1
  105. package/sqlite-proxy/migrator.d.ts +5 -5
  106. package/sqlite-proxy/migrator.mjs +1 -1
  107. package/vercel-postgres/index.cjs +1 -1
  108. package/vercel-postgres/index.d.ts +4 -4
  109. package/vercel-postgres/index.mjs +2 -2
  110. package/vercel-postgres/migrator.d.ts +4 -4
  111. package/version.cjs +1 -1
  112. package/version.d.ts +1 -1
  113. package/version.mjs +1 -1
  114. package/alias-5aeeb2f5.cjs.map +0 -1
  115. package/alias-6eaa2e87.mjs.map +0 -1
  116. package/column.d-9d74a4f3.d.ts +0 -558
  117. package/session-2431f9e1.mjs.map +0 -1
  118. package/session-6bfef963.cjs.map +0 -1
  119. package/session-fa9720a5.cjs.map +0 -1
  120. package/session-fa99bfce.mjs.map +0 -1
@@ -1,50 +1,41 @@
1
- import { P as PgColumnBuilder, a as PgColumn, A as AnyPgTable, B as BuildAliasTable, b as PgTableFn, p as pgView, c as pgMaterializedView, d as AnyPgColumn, I as Index, F as ForeignKey, C as Check, e as PrimaryKey, U as UniqueConstraint, f as PgView, V as ViewWithConfig, g as PgMaterializedView, h as PgMaterializedViewWithConfig } from '../db.d-9d586c00.js';
2
- export { y as AnyForeignKeyBuilder, G as AnyIndexBuilder, r as AnyPgColumnBuilder, s as AnyPgColumnHKT, a6 as AnyPgSelect, ay as AnyPgTableHKT, i as CheckBuilder, aC as DefaultViewBuilderCore, x as ForeignKeyBuilder, J as GetColumnsTableName, H as IndexBuilder, E as IndexBuilderOn, D as IndexColumn, a5 as Join, a8 as JoinFn, ad as LockConfig, ac as LockStrength, aH as ManualMaterializedViewBuilder, aE as ManualViewBuilder, aG as MaterializedViewBuilder, aF as MaterializedViewBuilderCore, n as PgArray, m as PgArrayBuilder, k as PgArrayBuilderHKT, l as PgArrayHKT, o as PgColumnBuilderHKT, q as PgColumnHKT, t as PgDatabase, X as PgDelete, W as PgDeleteConfig, u as PgDialect, $ as PgInsert, _ as PgInsertBuilder, Y as PgInsertConfig, Z as PgInsertValue, aL as PgMaterializedViewConfig, aM as PgMaterializedViewWithSelection, a1 as PgRefreshMaterializedView, a4 as PgSelect, a2 as PgSelectBuilder, a7 as PgSelectConfig, ah as PgSelectHKT, ae as PgSelectHKTBase, af as PgSelectKind, a3 as PgSelectQueryBuilder, ag as PgSelectQueryBuilderHKT, ap as PgSession, ax as PgTable, av as PgTableExtraConfig, az as PgTableWithColumns, aq as PgTransaction, ao as PgTransactionConfig, al as PgUpdate, ak as PgUpdateBuilder, ai as PgUpdateConfig, aj as PgUpdateSetSource, aI as PgViewBase, aJ as PgViewConfig, aK as PgViewWithSelection, an as PreparedQuery, am as PreparedQueryConfig, N as PrimaryKeyBuilder, a0 as QueryBuilder, ar as QueryResultHKT, as as QueryResultKind, w as Reference, R as ReferenceConfig, aa as SelectedFields, a9 as SelectedFieldsFlat, ab as SelectedFieldsOrdered, at as SubqueryWithSelection, aw as TableConfig, S as UniqueConstraintBuilder, T as UniqueOnConstraintBuilder, v as UpdateDeleteAction, aD as ViewBuilder, au as WithSubqueryWithSelection, j as check, z as foreignKey, K as index, aA as pgTable, aB as pgTableCreator, M as primaryKey, O as unique, L as uniqueIndex, Q as uniqueKeyName } from '../db.d-9d586c00.js';
3
- import { o as ColumnBuilderHKTBase, aD as Assume, l as ColumnBuilderBaseConfig, c as ColumnHKTBase, C as ColumnBaseConfig, e as entityKind, W as WithEnum, aK as Writable, S as Simplify, aE as Equal, a as SQL, p as ColumnBuilderKind, X as SelectedFields, A as AnyColumn, T as Table, ap as TableConfig } from '../column.d-9d74a4f3.js';
1
+ import { P as PgViewBase, B as BuildAliasTable, p as pgView, a as pgMaterializedView, b as PgView, V as ViewWithConfig, c as PgMaterializedView, d as PgMaterializedViewWithConfig } from '../select.types.d-d0a10728.js';
2
+ export { A as AnyPgSelect, T as DefaultViewBuilderCore, J as Join, s as JoinFn, v as LockConfig, L as LockStrength, _ as ManualMaterializedViewBuilder, X as ManualViewBuilder, Z as MaterializedViewBuilder, Y as MaterializedViewBuilderCore, e as PgDatabase, h as PgDelete, g as PgDeleteConfig, f as PgDialect, l as PgInsert, k as PgInsertBuilder, i as PgInsertConfig, j as PgInsertValue, a1 as PgMaterializedViewConfig, a2 as PgMaterializedViewWithSelection, m as PgRefreshMaterializedView, q as PgSelect, n as PgSelectBuilder, r as PgSelectConfig, z as PgSelectHKT, w as PgSelectHKTBase, x as PgSelectKind, o as PgSelectQueryBuilder, y as PgSelectQueryBuilderHKT, K as PgSession, M as PgTransaction, I as PgTransactionConfig, F as PgUpdate, E as PgUpdateBuilder, C as PgUpdateConfig, D as PgUpdateSetSource, $ as PgViewConfig, a0 as PgViewWithSelection, H as PreparedQuery, G as PreparedQueryConfig, Q as QueryBuilder, N as QueryResultHKT, O as QueryResultKind, t as SelectedFields, S as SelectedFieldsFlat, u as SelectedFieldsOrdered, R as SubqueryWithSelection, U as ViewBuilder, W as WithSubqueryWithSelection } from '../select.types.d-d0a10728.js';
3
+ import { i as ColumnBuilderBaseConfig, bq as PgColumnBuilder, e as entityKind, C as ColumnBaseConfig, bo as PgColumn, N as NotNull, H as HasDefault, aC as Writable, bm as AnyPgTable, aw as Equal, a as SQL, g as ColumnDataType, c3 as PgTableFn, c4 as Index, c5 as ForeignKey, c6 as Check, c7 as PrimaryKey, c8 as UniqueConstraint, E as SelectedFields, A as AnyColumn, T as Table, ak as TableConfig, d as Column, bn as AnyPgColumn } from '../column.d-9d2f4045.js';
4
+ export { ch as AnyForeignKeyBuilder, ck as AnyIndexBuilder, br as AnyPgColumnBuilder, c9 as CheckBuilder, cg as ForeignKeyBuilder, cm as GetColumnsTableName, cl as IndexBuilder, cj as IndexBuilderOn, bp as IndexColumn, cc as PgArray, cb as PgArrayBuilder, bs as PgTable, cv as PgTableExtraConfig, bt as PgTableWithColumns, cq as PrimaryKeyBuilder, cf as Reference, cd as ReferenceConfig, cw as TableConfig, ct as UniqueConstraintBuilder, cu as UniqueOnConstraintBuilder, ce as UpdateDeleteAction, ca as check, ci as foreignKey, cn as index, cx as pgTable, cy as pgTableCreator, cp as primaryKey, cr as unique, co as uniqueIndex, cs as uniqueKeyName } from '../column.d-9d2f4045.js';
5
+ import '../select.types.d-a3c4c974.js';
6
+ import '../query-promise.d-bc96befc.js';
4
7
  import '../migrator.js';
5
- import '../query-promise.d-fd15f63a.js';
6
- import '../select.types.d-1ea8ee3b.js';
7
8
 
8
- interface PgBigInt53BuilderHKT extends ColumnBuilderHKTBase {
9
- _type: PgBigInt53Builder<Assume<this['config'], ColumnBuilderBaseConfig>>;
10
- _columnHKT: PgBigInt53HKT;
11
- }
12
- interface PgBigInt53HKT extends ColumnHKTBase {
13
- _type: PgBigInt53<Assume<this['config'], ColumnBaseConfig>>;
14
- }
15
9
  type PgBigInt53BuilderInitial<TName extends string> = PgBigInt53Builder<{
16
10
  name: TName;
11
+ dataType: 'number';
12
+ columnType: 'PgBigInt53';
17
13
  data: number;
18
14
  driverParam: number | string;
19
- notNull: false;
20
- hasDefault: false;
15
+ enumValues: undefined;
21
16
  }>;
22
- declare class PgBigInt53Builder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgBigInt53BuilderHKT, T> {
17
+ declare class PgBigInt53Builder<T extends ColumnBuilderBaseConfig<'number', 'PgBigInt53'>> extends PgColumnBuilder<T> {
23
18
  static readonly [entityKind]: string;
19
+ constructor(name: T['name']);
24
20
  }
25
- declare class PgBigInt53<T extends ColumnBaseConfig> extends PgColumn<PgBigInt53HKT, T> {
21
+ declare class PgBigInt53<T extends ColumnBaseConfig<'number', 'PgBigInt53'>> extends PgColumn<T> {
26
22
  static readonly [entityKind]: string;
27
23
  getSQLType(): string;
28
24
  mapFromDriverValue(value: number | string): number;
29
25
  }
30
- interface PgBigInt64BuilderHKT extends ColumnBuilderHKTBase {
31
- _type: PgBigInt64Builder<Assume<this['config'], ColumnBuilderBaseConfig>>;
32
- _columnHKT: PgBigInt64HKT;
33
- }
34
- interface PgBigInt64HKT extends ColumnHKTBase {
35
- _type: PgBigInt64<Assume<this['config'], ColumnBaseConfig>>;
36
- }
37
26
  type PgBigInt64BuilderInitial<TName extends string> = PgBigInt64Builder<{
38
27
  name: TName;
28
+ dataType: 'bigint';
29
+ columnType: 'PgBigInt64';
39
30
  data: bigint;
40
31
  driverParam: string;
41
- notNull: false;
42
- hasDefault: false;
32
+ enumValues: undefined;
43
33
  }>;
44
- declare class PgBigInt64Builder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgBigInt64BuilderHKT, T> {
34
+ declare class PgBigInt64Builder<T extends ColumnBuilderBaseConfig<'bigint', 'PgBigInt64'>> extends PgColumnBuilder<T> {
45
35
  static readonly [entityKind]: string;
36
+ constructor(name: T['name']);
46
37
  }
47
- declare class PgBigInt64<T extends ColumnBaseConfig> extends PgColumn<PgBigInt64HKT, T> {
38
+ declare class PgBigInt64<T extends ColumnBaseConfig<'bigint', 'PgBigInt64'>> extends PgColumn<T> {
48
39
  static readonly [entityKind]: string;
49
40
  getSQLType(): string;
50
41
  mapFromDriverValue(value: string): bigint;
@@ -54,48 +45,36 @@ interface PgBigIntConfig<T extends 'number' | 'bigint' = 'number' | 'bigint'> {
54
45
  }
55
46
  declare function bigint<TName extends string, TMode extends PgBigIntConfig['mode']>(name: TName, config: PgBigIntConfig<TMode>): TMode extends 'number' ? PgBigInt53BuilderInitial<TName> : PgBigInt64BuilderInitial<TName>;
56
47
 
57
- interface PgBigSerial53BuilderHKT extends ColumnBuilderHKTBase {
58
- _type: PgBigSerial53Builder<Assume<this['config'], ColumnBuilderBaseConfig>>;
59
- _columnHKT: PgBigSerial53HKT;
60
- }
61
- interface PgBigSerial53HKT extends ColumnHKTBase {
62
- _type: PgBigSerial53<Assume<this['config'], ColumnBaseConfig>>;
63
- }
64
- type PgBigSerial53BuilderInitial<TName extends string> = PgBigSerial53Builder<{
48
+ type PgBigSerial53BuilderInitial<TName extends string> = NotNull<HasDefault<PgBigSerial53Builder<{
65
49
  name: TName;
50
+ dataType: 'number';
51
+ columnType: 'PgBigSerial53';
66
52
  data: number;
67
53
  driverParam: number;
68
- notNull: true;
69
- hasDefault: true;
70
- }>;
71
- declare class PgBigSerial53Builder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgBigSerial53BuilderHKT, T> {
54
+ enumValues: undefined;
55
+ }>>>;
56
+ declare class PgBigSerial53Builder<T extends ColumnBuilderBaseConfig<'number', 'PgBigSerial53'>> extends PgColumnBuilder<T> {
72
57
  static readonly [entityKind]: string;
73
58
  constructor(name: string);
74
59
  }
75
- declare class PgBigSerial53<T extends ColumnBaseConfig> extends PgColumn<PgBigSerial53HKT, T> {
60
+ declare class PgBigSerial53<T extends ColumnBaseConfig<'number', 'PgBigSerial53'>> extends PgColumn<T> {
76
61
  static readonly [entityKind]: string;
77
62
  getSQLType(): string;
78
63
  mapFromDriverValue(value: number): number;
79
64
  }
80
- interface PgBigSerial64BuilderHKT extends ColumnBuilderHKTBase {
81
- _type: PgBigSerial64Builder<Assume<this['config'], ColumnBuilderBaseConfig>>;
82
- _columnHKT: PgBigSerial64HKT;
83
- }
84
- interface PgBigSerial64HKT extends ColumnHKTBase {
85
- _type: PgBigSerial64<Assume<this['config'], ColumnBaseConfig>>;
86
- }
87
- type PgBigSerial64BuilderInitial<TName extends string> = PgBigSerial64Builder<{
65
+ type PgBigSerial64BuilderInitial<TName extends string> = NotNull<HasDefault<PgBigSerial64Builder<{
88
66
  name: TName;
67
+ dataType: 'bigint';
68
+ columnType: 'PgBigSerial64';
89
69
  data: bigint;
90
70
  driverParam: string;
91
- notNull: true;
92
- hasDefault: true;
93
- }>;
94
- declare class PgBigSerial64Builder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgBigSerial64BuilderHKT, T> {
71
+ enumValues: undefined;
72
+ }>>>;
73
+ declare class PgBigSerial64Builder<T extends ColumnBuilderBaseConfig<'bigint', 'PgBigSerial64'>> extends PgColumnBuilder<T> {
95
74
  static readonly [entityKind]: string;
96
75
  constructor(name: string);
97
76
  }
98
- declare class PgBigSerial64<T extends ColumnBaseConfig> extends PgColumn<PgBigSerial64HKT, T> {
77
+ declare class PgBigSerial64<T extends ColumnBaseConfig<'bigint', 'PgBigSerial64'>> extends PgColumn<T> {
99
78
  static readonly [entityKind]: string;
100
79
  getSQLType(): string;
101
80
  mapFromDriverValue(value: string): bigint;
@@ -105,105 +84,88 @@ interface PgBigSerialConfig<T extends 'number' | 'bigint' = 'number' | 'bigint'>
105
84
  }
106
85
  declare function bigserial<TName extends string, TMode extends PgBigSerialConfig['mode']>(name: TName, config: PgBigSerialConfig<TMode>): TMode extends 'number' ? PgBigSerial53BuilderInitial<TName> : PgBigSerial64BuilderInitial<TName>;
107
86
 
108
- interface PgBooleanBuilderHKT extends ColumnBuilderHKTBase {
109
- _type: PgBooleanBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
110
- _columnHKT: PgBooleanHKT;
111
- }
112
- interface PgBooleanHKT extends ColumnHKTBase {
113
- _type: PgBoolean<Assume<this['config'], ColumnBaseConfig>>;
114
- }
115
87
  type PgBooleanBuilderInitial<TName extends string> = PgBooleanBuilder<{
116
88
  name: TName;
89
+ dataType: 'boolean';
90
+ columnType: 'PgBoolean';
117
91
  data: boolean;
118
92
  driverParam: boolean;
119
- notNull: false;
120
- hasDefault: false;
93
+ enumValues: undefined;
121
94
  }>;
122
- declare class PgBooleanBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgBooleanBuilderHKT, T> {
95
+ declare class PgBooleanBuilder<T extends ColumnBuilderBaseConfig<'boolean', 'PgBoolean'>> extends PgColumnBuilder<T> {
123
96
  static readonly [entityKind]: string;
97
+ constructor(name: T['name']);
124
98
  }
125
- declare class PgBoolean<T extends ColumnBaseConfig> extends PgColumn<PgBooleanHKT, T> {
99
+ declare class PgBoolean<T extends ColumnBaseConfig<'boolean', 'PgBoolean'>> extends PgColumn<T> {
126
100
  static readonly [entityKind]: string;
127
101
  getSQLType(): string;
128
102
  }
129
103
  declare function boolean<TName extends string>(name: TName): PgBooleanBuilderInitial<TName>;
130
104
 
131
- interface PgCharBuilderHKT extends ColumnBuilderHKTBase {
132
- _type: PgCharBuilder<Assume<this['config'], ColumnBuilderBaseConfig & WithEnum>>;
133
- _columnHKT: PgCharHKT;
134
- }
135
- interface PgCharHKT extends ColumnHKTBase {
136
- _type: PgChar<Assume<this['config'], ColumnBaseConfig & WithEnum>>;
137
- }
138
105
  type PgCharBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = PgCharBuilder<{
139
106
  name: TName;
107
+ dataType: 'string';
108
+ columnType: 'PgChar';
140
109
  data: TEnum[number];
141
110
  enumValues: TEnum;
142
111
  driverParam: string;
143
- notNull: false;
144
- hasDefault: false;
145
112
  }>;
146
- declare class PgCharBuilder<T extends ColumnBuilderBaseConfig & WithEnum> extends PgColumnBuilder<PgCharBuilderHKT, T, {
113
+ declare class PgCharBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgChar'>> extends PgColumnBuilder<T, {
147
114
  length: number | undefined;
148
- } & WithEnum<T['enumValues']>> {
115
+ enumValues: T['enumValues'];
116
+ }> {
149
117
  static readonly [entityKind]: string;
150
118
  constructor(name: string, config: PgCharConfig<T['enumValues']>);
151
119
  }
152
- declare class PgChar<T extends ColumnBaseConfig & WithEnum> extends PgColumn<PgCharHKT, T, {
120
+ declare class PgChar<T extends ColumnBaseConfig<'string', 'PgChar'>> extends PgColumn<T, {
153
121
  length: number | undefined;
154
- } & WithEnum<T['enumValues']>> {
122
+ enumValues: T['enumValues'];
123
+ }> {
155
124
  static readonly [entityKind]: string;
156
125
  readonly length: number | undefined;
157
126
  readonly enumValues: T["enumValues"];
158
127
  getSQLType(): string;
159
128
  }
160
- interface PgCharConfig<TEnum extends readonly string[] | string[]> {
129
+ interface PgCharConfig<TEnum extends readonly string[] | string[] | undefined> {
161
130
  length?: number;
162
131
  enum?: TEnum;
163
132
  }
164
133
  declare function char<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>>(name: TName, config?: PgCharConfig<T | Writable<T>>): PgCharBuilderInitial<TName, Writable<T>>;
165
134
 
166
- interface PgCidrBuilderHKT extends ColumnBuilderHKTBase {
167
- _type: PgCidrBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
168
- _columnHKT: PgCidrHKT;
169
- }
170
- interface PgCidrHKT extends ColumnHKTBase {
171
- _type: PgCidr<Assume<this['config'], ColumnBaseConfig>>;
172
- }
173
135
  type PgCidrBuilderInitial<TName extends string> = PgCidrBuilder<{
174
136
  name: TName;
137
+ dataType: 'string';
138
+ columnType: 'PgCidr';
175
139
  data: string;
176
140
  driverParam: string;
177
- notNull: false;
178
- hasDefault: false;
141
+ enumValues: undefined;
179
142
  }>;
180
- declare class PgCidrBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgCidrBuilderHKT, T> {
143
+ declare class PgCidrBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgCidr'>> extends PgColumnBuilder<T> {
181
144
  static readonly [entityKind]: string;
145
+ constructor(name: T['name']);
182
146
  }
183
- declare class PgCidr<T extends ColumnBaseConfig> extends PgColumn<PgCidrHKT, T> {
147
+ declare class PgCidr<T extends ColumnBaseConfig<'string', 'PgCidr'>> extends PgColumn<T> {
184
148
  static readonly [entityKind]: string;
185
149
  getSQLType(): string;
186
150
  }
187
151
  declare function cidr<TName extends string>(name: TName): PgCidrBuilderInitial<TName>;
188
152
 
189
- type ConvertCustomConfig<TName extends string, T extends Partial<CustomTypeValues>> = Simplify<{
153
+ type ConvertCustomConfig<TName extends string, T extends Partial<CustomTypeValues>> = {
190
154
  name: TName;
155
+ dataType: 'custom';
156
+ columnType: 'PgCustomColumn';
191
157
  data: T['data'];
192
158
  driverParam: T['driverData'];
193
- notNull: T['notNull'] extends true ? true : false;
194
- hasDefault: T['default'] extends true ? true : false;
195
- }>;
159
+ enumValues: undefined;
160
+ } & (T['notNull'] extends true ? {
161
+ notNull: true;
162
+ } : {}) & (T['default'] extends true ? {
163
+ hasDefault: true;
164
+ } : {});
196
165
  interface PgCustomColumnInnerConfig {
197
166
  customTypeValues: CustomTypeValues;
198
167
  }
199
- interface PgCustomColumnBuilderHKT extends ColumnBuilderHKTBase {
200
- _type: PgCustomColumnBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
201
- _columnHKT: PgCustomColumnHKT;
202
- }
203
- interface PgCustomColumnHKT extends ColumnHKTBase {
204
- _type: PgCustomColumn<Assume<this['config'], ColumnBaseConfig>>;
205
- }
206
- declare class PgCustomColumnBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgCustomColumnBuilderHKT, T, {
168
+ declare class PgCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom', 'PgCustomColumn'>> extends PgColumnBuilder<T, {
207
169
  fieldConfig: CustomTypeValues['config'];
208
170
  customTypeParams: CustomTypeParams<any>;
209
171
  }, {
@@ -212,9 +174,8 @@ declare class PgCustomColumnBuilder<T extends ColumnBuilderBaseConfig> extends P
212
174
  static readonly [entityKind]: string;
213
175
  constructor(name: T['name'], fieldConfig: CustomTypeValues['config'], customTypeParams: CustomTypeParams<any>);
214
176
  }
215
- declare class PgCustomColumn<T extends ColumnBaseConfig> extends PgColumn<PgCustomColumnHKT, T> {
177
+ declare class PgCustomColumn<T extends ColumnBaseConfig<'custom', 'PgCustomColumn'>> extends PgColumn<T> {
216
178
  static readonly [entityKind]: string;
217
- protected $pgColumnBrand: 'PgCustomColumn';
218
179
  private sqlName;
219
180
  private mapTo?;
220
181
  private mapFrom?;
@@ -331,56 +292,42 @@ interface CustomTypeParams<T extends CustomTypeValues> {
331
292
  */
332
293
  declare function customType<T extends CustomTypeValues = CustomTypeValues>(customTypeParams: CustomTypeParams<T>): Equal<T['configRequired'], true> extends true ? <TName extends string>(dbName: TName, fieldConfig: T['config']) => PgCustomColumnBuilder<ConvertCustomConfig<TName, T>> : <TName extends string>(dbName: TName, fieldConfig?: T['config']) => PgCustomColumnBuilder<ConvertCustomConfig<TName, T>>;
333
294
 
334
- declare abstract class PgDateColumnBaseBuilder<THKT extends ColumnBuilderHKTBase, T extends ColumnBuilderBaseConfig, TRuntimeConfig extends object = {}> extends PgColumnBuilder<THKT, T, TRuntimeConfig> {
295
+ declare abstract class PgDateColumnBaseBuilder<T extends ColumnBuilderBaseConfig<ColumnDataType, string>, TRuntimeConfig extends object = object> extends PgColumnBuilder<T, TRuntimeConfig> {
335
296
  static readonly [entityKind]: string;
336
- defaultNow(): ColumnBuilderKind<THKT, Omit<T, "hasDefault"> & {
337
- hasDefault: true;
338
- } extends infer T_1 ? { [K in keyof T_1]: (Omit<T, "hasDefault"> & {
339
- hasDefault: true;
340
- })[K]; } : never>;
297
+ defaultNow(): HasDefault<this>;
341
298
  }
342
299
 
343
- interface PgDateBuilderHKT extends ColumnBuilderHKTBase {
344
- _type: PgDateBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
345
- _columnHKT: PgDateHKT;
346
- }
347
- interface PgDateHKT extends ColumnHKTBase {
348
- _type: PgDate<Assume<this['config'], ColumnBaseConfig>>;
349
- }
350
300
  type PgDateBuilderInitial<TName extends string> = PgDateBuilder<{
351
301
  name: TName;
302
+ dataType: 'date';
303
+ columnType: 'PgDate';
352
304
  data: Date;
353
305
  driverParam: string;
354
- notNull: false;
355
- hasDefault: false;
306
+ enumValues: undefined;
356
307
  }>;
357
- declare class PgDateBuilder<T extends ColumnBuilderBaseConfig> extends PgDateColumnBaseBuilder<PgDateBuilderHKT, T> {
308
+ declare class PgDateBuilder<T extends ColumnBuilderBaseConfig<'date', 'PgDate'>> extends PgDateColumnBaseBuilder<T> {
358
309
  static readonly [entityKind]: string;
310
+ constructor(name: T['name']);
359
311
  }
360
- declare class PgDate<T extends ColumnBaseConfig> extends PgColumn<PgDateHKT, T> {
312
+ declare class PgDate<T extends ColumnBaseConfig<'date', 'PgDate'>> extends PgColumn<T> {
361
313
  static readonly [entityKind]: string;
362
314
  getSQLType(): string;
363
315
  mapFromDriverValue(value: string): Date;
364
316
  mapToDriverValue(value: Date): string;
365
317
  }
366
- interface PgDateStringBuilderHKT extends ColumnBuilderHKTBase {
367
- _type: PgDateStringBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
368
- _columnHKT: PgDateStringHKT;
369
- }
370
- interface PgDateStringHKT extends ColumnHKTBase {
371
- _type: PgDateString<Assume<this['config'], ColumnBaseConfig>>;
372
- }
373
318
  type PgDateStringBuilderInitial<TName extends string> = PgDateStringBuilder<{
374
319
  name: TName;
320
+ dataType: 'string';
321
+ columnType: 'PgDateString';
375
322
  data: string;
376
323
  driverParam: string;
377
- notNull: false;
378
- hasDefault: false;
324
+ enumValues: undefined;
379
325
  }>;
380
- declare class PgDateStringBuilder<T extends ColumnBuilderBaseConfig> extends PgDateColumnBaseBuilder<PgDateStringBuilderHKT, T> {
326
+ declare class PgDateStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgDateString'>> extends PgDateColumnBaseBuilder<T> {
381
327
  static readonly [entityKind]: string;
328
+ constructor(name: T['name']);
382
329
  }
383
- declare class PgDateString<T extends ColumnBaseConfig> extends PgColumn<PgDateStringHKT, T> {
330
+ declare class PgDateString<T extends ColumnBaseConfig<'string', 'PgDateString'>> extends PgColumn<T> {
384
331
  static readonly [entityKind]: string;
385
332
  getSQLType(): string;
386
333
  }
@@ -391,60 +338,52 @@ declare function date<TName extends string>(TName: TName, config?: {
391
338
  mode: 'date';
392
339
  }): PgDateBuilderInitial<TName>;
393
340
 
394
- interface PgDoublePrecisionBuilderHKT extends ColumnBuilderHKTBase {
395
- _type: PgDoublePrecisionBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
396
- _columnHKT: PgDoublePrecisionHKT;
397
- }
398
- interface PgDoublePrecisionHKT extends ColumnHKTBase {
399
- _type: PgDoublePrecision<Assume<this['config'], ColumnBaseConfig>>;
400
- }
401
341
  type PgDoublePrecisionBuilderInitial<TName extends string> = PgDoublePrecisionBuilder<{
402
342
  name: TName;
343
+ dataType: 'number';
344
+ columnType: 'PgDoublePrecision';
403
345
  data: number;
404
346
  driverParam: string | number;
405
- notNull: false;
406
- hasDefault: false;
347
+ enumValues: undefined;
407
348
  }>;
408
- declare class PgDoublePrecisionBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgDoublePrecisionBuilderHKT, T> {
349
+ declare class PgDoublePrecisionBuilder<T extends ColumnBuilderBaseConfig<'number', 'PgDoublePrecision'>> extends PgColumnBuilder<T> {
409
350
  static readonly [entityKind]: string;
351
+ constructor(name: T['name']);
410
352
  }
411
- declare class PgDoublePrecision<T extends ColumnBaseConfig> extends PgColumn<PgDoublePrecisionHKT, T> {
353
+ declare class PgDoublePrecision<T extends ColumnBaseConfig<'number', 'PgDoublePrecision'>> extends PgColumn<T> {
412
354
  static readonly [entityKind]: string;
413
355
  getSQLType(): string;
414
356
  mapFromDriverValue(value: string | number): number;
415
357
  }
416
358
  declare function doublePrecision<TName extends string>(name: TName): PgDoublePrecisionBuilderInitial<TName>;
417
359
 
418
- interface PgEnumColumnBuilderHKT extends ColumnBuilderHKTBase {
419
- _type: PgEnumColumnBuilder<Assume<this['config'], ColumnBuilderBaseConfig & WithEnum>>;
420
- _columnHKT: PgEnumColumnHKT;
421
- }
422
- interface PgEnumColumnHKT extends ColumnHKTBase {
423
- _type: PgEnumColumn<Assume<this['config'], ColumnBaseConfig & WithEnum>>;
424
- }
425
360
  type PgEnumColumnBuilderInitial<TName extends string, TValues extends [string, ...string[]]> = PgEnumColumnBuilder<{
426
361
  name: TName;
362
+ dataType: 'string';
363
+ columnType: 'PgEnumColumn';
427
364
  data: TValues[number];
428
365
  enumValues: TValues;
429
366
  driverParam: string;
430
- notNull: false;
431
- hasDefault: false;
432
367
  }>;
433
- interface PgEnum<TValues extends [string, ...string[]]> extends WithEnum<TValues> {
368
+ interface PgEnum<TValues extends [string, ...string[]]> {
434
369
  <TName extends string>(name: TName): PgEnumColumnBuilderInitial<TName, TValues>;
435
370
  readonly enumName: string;
436
371
  readonly enumValues: TValues;
437
372
  }
438
373
  declare function isPgEnum(obj: unknown): obj is PgEnum<[string, ...string[]]>;
439
- declare class PgEnumColumnBuilder<T extends ColumnBuilderBaseConfig & WithEnum> extends PgColumnBuilder<PgEnumColumnBuilderHKT, T, {
374
+ declare class PgEnumColumnBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgEnumColumn'> & {
375
+ enumValues: [string, ...string[]];
376
+ }> extends PgColumnBuilder<T, {
440
377
  enum: PgEnum<T['enumValues']>;
441
378
  }> {
442
379
  static readonly [entityKind]: string;
443
380
  constructor(name: string, enumInstance: PgEnum<T['enumValues']>);
444
381
  }
445
- declare class PgEnumColumn<T extends ColumnBaseConfig & WithEnum> extends PgColumn<PgEnumColumnHKT, T, {
382
+ declare class PgEnumColumn<T extends ColumnBaseConfig<'string', 'PgEnumColumn'> & {
383
+ enumValues: [string, ...string[]];
384
+ }> extends PgColumn<T, {
446
385
  enum: PgEnum<T['enumValues']>;
447
- }> implements WithEnum<T['enumValues']> {
386
+ }> {
448
387
  static readonly [entityKind]: string;
449
388
  readonly enum: PgEnum<T["enumValues"]>;
450
389
  readonly enumValues: T["enumValues"];
@@ -455,75 +394,59 @@ declare class PgEnumColumn<T extends ColumnBaseConfig & WithEnum> extends PgColu
455
394
  }
456
395
  declare function pgEnum<U extends string, T extends Readonly<[U, ...U[]]>>(enumName: string, values: T | Writable<T>): PgEnum<Writable<T>>;
457
396
 
458
- interface PgInetBuilderHKT extends ColumnBuilderHKTBase {
459
- _type: PgInetBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
460
- _columnHKT: PgInetHKT;
461
- }
462
- interface PgInetHKT extends ColumnHKTBase {
463
- _type: PgInet<Assume<this['config'], ColumnBaseConfig>>;
464
- }
465
397
  type PgInetBuilderInitial<TName extends string> = PgInetBuilder<{
466
398
  name: TName;
399
+ dataType: 'string';
400
+ columnType: 'PgInet';
467
401
  data: string;
468
402
  driverParam: string;
469
- notNull: false;
470
- hasDefault: false;
403
+ enumValues: undefined;
471
404
  }>;
472
- declare class PgInetBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgInetBuilderHKT, T> {
405
+ declare class PgInetBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgInet'>> extends PgColumnBuilder<T> {
473
406
  static readonly [entityKind]: string;
407
+ constructor(name: T['name']);
474
408
  }
475
- declare class PgInet<T extends ColumnBaseConfig> extends PgColumn<PgInetHKT, T> {
409
+ declare class PgInet<T extends ColumnBaseConfig<'string', 'PgInet'>> extends PgColumn<T> {
476
410
  static readonly [entityKind]: string;
477
411
  getSQLType(): string;
478
412
  }
479
413
  declare function inet<TName extends string>(name: TName): PgInetBuilderInitial<TName>;
480
414
 
481
- interface PgIntegerBuilderHKT extends ColumnBuilderHKTBase {
482
- _type: PgIntegerBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
483
- _columnHKT: PgIntegerHKT;
484
- }
485
- interface PgIntegerHKT extends ColumnHKTBase {
486
- _type: PgInteger<Assume<this['config'], ColumnBaseConfig>>;
487
- }
488
415
  type PgIntegerBuilderInitial<TName extends string> = PgIntegerBuilder<{
489
416
  name: TName;
417
+ dataType: 'number';
418
+ columnType: 'PgInteger';
490
419
  data: number;
491
420
  driverParam: number | string;
492
- hasDefault: false;
493
- notNull: false;
421
+ enumValues: undefined;
494
422
  }>;
495
- declare class PgIntegerBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgIntegerBuilderHKT, T> {
423
+ declare class PgIntegerBuilder<T extends ColumnBuilderBaseConfig<'number', 'PgInteger'>> extends PgColumnBuilder<T> {
496
424
  static readonly [entityKind]: string;
425
+ constructor(name: T['name']);
497
426
  }
498
- declare class PgInteger<T extends ColumnBaseConfig> extends PgColumn<PgIntegerHKT, T> {
427
+ declare class PgInteger<T extends ColumnBaseConfig<'number', 'PgInteger'>> extends PgColumn<T> {
499
428
  static readonly [entityKind]: string;
500
429
  getSQLType(): string;
501
430
  mapFromDriverValue(value: number | string): number;
502
431
  }
503
432
  declare function integer<TName extends string>(name: TName): PgIntegerBuilderInitial<TName>;
504
433
 
505
- interface PgTimestampBuilderHKT extends ColumnBuilderHKTBase {
506
- _type: PgTimestampBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
507
- _columnHKT: PgTimestampHKT;
508
- }
509
- interface PgTimestampHKT extends ColumnHKTBase {
510
- _type: PgTimestamp<Assume<this['config'], ColumnBaseConfig>>;
511
- }
512
434
  type PgTimestampBuilderInitial<TName extends string> = PgTimestampBuilder<{
513
435
  name: TName;
436
+ dataType: 'date';
437
+ columnType: 'PgTimestamp';
514
438
  data: Date;
515
439
  driverParam: string;
516
- notNull: false;
517
- hasDefault: false;
440
+ enumValues: undefined;
518
441
  }>;
519
- declare class PgTimestampBuilder<T extends ColumnBuilderBaseConfig> extends PgDateColumnBaseBuilder<PgTimestampBuilderHKT, T, {
442
+ declare class PgTimestampBuilder<T extends ColumnBuilderBaseConfig<'date', 'PgTimestamp'>> extends PgDateColumnBaseBuilder<T, {
520
443
  withTimezone: boolean;
521
444
  precision: number | undefined;
522
445
  }> {
523
446
  static readonly [entityKind]: string;
524
447
  constructor(name: string, withTimezone: boolean, precision: number | undefined);
525
448
  }
526
- declare class PgTimestamp<T extends ColumnBaseConfig> extends PgColumn<PgTimestampHKT, T> {
449
+ declare class PgTimestamp<T extends ColumnBaseConfig<'date', 'PgTimestamp'>> extends PgColumn<T> {
527
450
  static readonly [entityKind]: string;
528
451
  readonly withTimezone: boolean;
529
452
  readonly precision: number | undefined;
@@ -534,28 +457,22 @@ declare class PgTimestamp<T extends ColumnBaseConfig> extends PgColumn<PgTimesta
534
457
  mapFromDriverValue: (value: string) => Date;
535
458
  mapToDriverValue: (value: Date) => string;
536
459
  }
537
- interface PgTimestampStringBuilderHKT extends ColumnBuilderHKTBase {
538
- _type: PgTimestampStringBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
539
- _columnHKT: PgTimestampStringHKT;
540
- }
541
- interface PgTimestampStringHKT extends ColumnHKTBase {
542
- _type: PgTimestampString<Assume<this['config'], ColumnBaseConfig>>;
543
- }
544
460
  type PgTimestampStringBuilderInitial<TName extends string> = PgTimestampStringBuilder<{
545
461
  name: TName;
462
+ dataType: 'string';
463
+ columnType: 'PgTimestampString';
546
464
  data: string;
547
465
  driverParam: string;
548
- notNull: false;
549
- hasDefault: false;
466
+ enumValues: undefined;
550
467
  }>;
551
- declare class PgTimestampStringBuilder<T extends ColumnBuilderBaseConfig> extends PgDateColumnBaseBuilder<PgTimestampStringBuilderHKT, T, {
468
+ declare class PgTimestampStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgTimestampString'>> extends PgDateColumnBaseBuilder<T, {
552
469
  withTimezone: boolean;
553
470
  precision: number | undefined;
554
471
  }> {
555
472
  static readonly [entityKind]: string;
556
473
  constructor(name: string, withTimezone: boolean, precision: number | undefined);
557
474
  }
558
- declare class PgTimestampString<T extends ColumnBaseConfig> extends PgColumn<PgTimestampStringHKT, T> {
475
+ declare class PgTimestampString<T extends ColumnBaseConfig<'string', 'PgTimestampString'>> extends PgColumn<T> {
559
476
  static readonly [entityKind]: string;
560
477
  readonly withTimezone: boolean;
561
478
  readonly precision: number | undefined;
@@ -572,27 +489,21 @@ interface PgTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'>
572
489
  }
573
490
  declare function timestamp<TName extends string, TMode extends PgTimestampConfig['mode'] & {}>(name: TName, config?: PgTimestampConfig<TMode>): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilderInitial<TName> : PgTimestampBuilderInitial<TName>;
574
491
 
575
- interface PgIntervalBuilderHKT extends ColumnBuilderHKTBase {
576
- _type: PgIntervalBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
577
- _columnHKT: PgIntervalHKT;
578
- }
579
- interface PgIntervalHKT extends ColumnHKTBase {
580
- _type: PgInterval<Assume<this['config'], ColumnBaseConfig>>;
581
- }
582
492
  type PgIntervalBuilderInitial<TName extends string> = PgIntervalBuilder<{
583
493
  name: TName;
494
+ dataType: 'string';
495
+ columnType: 'PgInterval';
584
496
  data: string;
585
497
  driverParam: string;
586
- notNull: false;
587
- hasDefault: false;
498
+ enumValues: undefined;
588
499
  }>;
589
- declare class PgIntervalBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgIntervalBuilderHKT, T, {
500
+ declare class PgIntervalBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgInterval'>> extends PgColumnBuilder<T, {
590
501
  intervalConfig: IntervalConfig;
591
502
  }> {
592
503
  static readonly [entityKind]: string;
593
504
  constructor(name: T['name'], intervalConfig: IntervalConfig);
594
505
  }
595
- declare class PgInterval<T extends ColumnBaseConfig> extends PgColumn<PgIntervalHKT, T, {
506
+ declare class PgInterval<T extends ColumnBaseConfig<'string', 'PgInterval'>> extends PgColumn<T, {
596
507
  intervalConfig: IntervalConfig;
597
508
  }> {
598
509
  static readonly [entityKind]: string;
@@ -606,26 +517,20 @@ interface IntervalConfig {
606
517
  }
607
518
  declare function interval<TName extends string>(name: TName, config?: IntervalConfig): PgIntervalBuilderInitial<TName>;
608
519
 
609
- interface PgJsonBuilderHKT extends ColumnBuilderHKTBase {
610
- _type: PgJsonBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
611
- _columnHKT: PgJsonHKT;
612
- }
613
- interface PgJsonHKT extends ColumnHKTBase {
614
- _type: PgJson<Assume<this['config'], ColumnBaseConfig>>;
615
- }
616
520
  type PgJsonBuilderInitial<TName extends string> = PgJsonBuilder<{
617
521
  name: TName;
522
+ dataType: 'json';
523
+ columnType: 'PgJson';
618
524
  data: unknown;
619
525
  driverParam: unknown;
620
- notNull: false;
621
- hasDefault: false;
526
+ enumValues: undefined;
622
527
  }>;
623
- declare class PgJsonBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgJsonBuilderHKT, T> {
528
+ declare class PgJsonBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgJson'>> extends PgColumnBuilder<T> {
624
529
  static readonly [entityKind]: string;
530
+ constructor(name: T['name']);
625
531
  }
626
- declare class PgJson<T extends ColumnBaseConfig> extends PgColumn<PgJsonHKT, T> {
532
+ declare class PgJson<T extends ColumnBaseConfig<'json', 'PgJson'>> extends PgColumn<T> {
627
533
  static readonly [entityKind]: string;
628
- protected $pgColumnBrand: 'PgJson';
629
534
  constructor(table: AnyPgTable<{
630
535
  name: T['tableName'];
631
536
  }>, config: PgJsonBuilder<T>['config']);
@@ -635,26 +540,20 @@ declare class PgJson<T extends ColumnBaseConfig> extends PgColumn<PgJsonHKT, T>
635
540
  }
636
541
  declare function json<TName extends string>(name: TName): PgJsonBuilderInitial<TName>;
637
542
 
638
- interface PgJsonbBuilderHKT extends ColumnBuilderHKTBase {
639
- _type: PgJsonbBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
640
- _columnHKT: PgJsonbHKT;
641
- }
642
- interface PgJsonbHKT extends ColumnHKTBase {
643
- _type: PgJsonb<Assume<this['config'], ColumnBaseConfig>>;
644
- }
645
543
  type PgJsonbBuilderInitial<TName extends string> = PgJsonbBuilder<{
646
544
  name: TName;
545
+ dataType: 'json';
546
+ columnType: 'PgJsonb';
647
547
  data: unknown;
648
548
  driverParam: unknown;
649
- notNull: false;
650
- hasDefault: false;
549
+ enumValues: undefined;
651
550
  }>;
652
- declare class PgJsonbBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgJsonbBuilderHKT, T> {
551
+ declare class PgJsonbBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgJsonb'>> extends PgColumnBuilder<T> {
653
552
  static readonly [entityKind]: string;
553
+ constructor(name: T['name']);
654
554
  }
655
- declare class PgJsonb<T extends ColumnBaseConfig> extends PgColumn<PgJsonbHKT, T> {
555
+ declare class PgJsonb<T extends ColumnBaseConfig<'json', 'PgJsonb'>> extends PgColumn<T> {
656
556
  static readonly [entityKind]: string;
657
- protected $pgColumnBrand: 'PgJsonb';
658
557
  constructor(table: AnyPgTable<{
659
558
  name: T['tableName'];
660
559
  }>, config: PgJsonbBuilder<T>['config']);
@@ -664,74 +563,58 @@ declare class PgJsonb<T extends ColumnBaseConfig> extends PgColumn<PgJsonbHKT, T
664
563
  }
665
564
  declare function jsonb<TName extends string>(name: TName): PgJsonbBuilderInitial<TName>;
666
565
 
667
- interface PgMacaddrBuilderHKT extends ColumnBuilderHKTBase {
668
- _type: PgMacaddrBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
669
- _columnHKT: PgMacaddrHKT;
670
- }
671
- interface PgMacaddrHKT extends ColumnHKTBase {
672
- _type: PgMacaddr<Assume<this['config'], ColumnBaseConfig>>;
673
- }
674
566
  type PgMacaddrBuilderInitial<TName extends string> = PgMacaddrBuilder<{
675
567
  name: TName;
568
+ dataType: 'string';
569
+ columnType: 'PgMacaddr';
676
570
  data: string;
677
571
  driverParam: string;
678
- notNull: false;
679
- hasDefault: false;
572
+ enumValues: undefined;
680
573
  }>;
681
- declare class PgMacaddrBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgMacaddrBuilderHKT, T> {
574
+ declare class PgMacaddrBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgMacaddr'>> extends PgColumnBuilder<T> {
682
575
  static readonly [entityKind]: string;
576
+ constructor(name: T['name']);
683
577
  }
684
- declare class PgMacaddr<T extends ColumnBaseConfig> extends PgColumn<PgMacaddrHKT, T> {
578
+ declare class PgMacaddr<T extends ColumnBaseConfig<'string', 'PgMacaddr'>> extends PgColumn<T> {
685
579
  static readonly [entityKind]: string;
686
580
  getSQLType(): string;
687
581
  }
688
582
  declare function macaddr<TName extends string>(name: TName): PgMacaddrBuilderInitial<TName>;
689
583
 
690
- interface PgMacaddr8BuilderHKT extends ColumnBuilderHKTBase {
691
- _type: PgMacaddr8Builder<Assume<this['config'], ColumnBuilderBaseConfig>>;
692
- _columnHKT: PgMacaddr8HKT;
693
- }
694
- interface PgMacaddr8HKT extends ColumnHKTBase {
695
- _type: PgMacaddr8<Assume<this['config'], ColumnBaseConfig>>;
696
- }
697
584
  type PgMacaddr8BuilderInitial<TName extends string> = PgMacaddr8Builder<{
698
585
  name: TName;
586
+ dataType: 'string';
587
+ columnType: 'PgMacaddr8';
699
588
  data: string;
700
589
  driverParam: string;
701
- notNull: false;
702
- hasDefault: false;
590
+ enumValues: undefined;
703
591
  }>;
704
- declare class PgMacaddr8Builder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgMacaddr8BuilderHKT, T> {
592
+ declare class PgMacaddr8Builder<T extends ColumnBuilderBaseConfig<'string', 'PgMacaddr8'>> extends PgColumnBuilder<T> {
705
593
  static readonly [entityKind]: string;
594
+ constructor(name: T['name']);
706
595
  }
707
- declare class PgMacaddr8<T extends ColumnBaseConfig> extends PgColumn<PgMacaddr8HKT, T> {
596
+ declare class PgMacaddr8<T extends ColumnBaseConfig<'string', 'PgMacaddr8'>> extends PgColumn<T> {
708
597
  static readonly [entityKind]: string;
709
598
  getSQLType(): string;
710
599
  }
711
600
  declare function macaddr8<TName extends string>(name: TName): PgMacaddr8BuilderInitial<TName>;
712
601
 
713
- interface PgNumericBuilderHKT extends ColumnBuilderHKTBase {
714
- _type: PgNumericBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
715
- _columnHKT: PgNumericHKT;
716
- }
717
- interface PgNumericHKT extends ColumnHKTBase {
718
- _type: PgNumeric<Assume<this['config'], ColumnBaseConfig>>;
719
- }
720
602
  type PgNumericBuilderInitial<TName extends string> = PgNumericBuilder<{
721
603
  name: TName;
604
+ dataType: 'string';
605
+ columnType: 'PgNumeric';
722
606
  data: string;
723
607
  driverParam: string;
724
- notNull: false;
725
- hasDefault: false;
608
+ enumValues: undefined;
726
609
  }>;
727
- declare class PgNumericBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgNumericBuilderHKT, T, {
610
+ declare class PgNumericBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgNumeric'>> extends PgColumnBuilder<T, {
728
611
  precision: number | undefined;
729
612
  scale: number | undefined;
730
613
  }> {
731
614
  static readonly [entityKind]: string;
732
615
  constructor(name: string, precision?: number, scale?: number);
733
616
  }
734
- declare class PgNumeric<T extends ColumnBaseConfig> extends PgColumn<PgNumericHKT, T> {
617
+ declare class PgNumeric<T extends ColumnBaseConfig<'string', 'PgNumeric'>> extends PgColumn<T> {
735
618
  static readonly [entityKind]: string;
736
619
  readonly precision: number | undefined;
737
620
  readonly scale: number | undefined;
@@ -752,27 +635,21 @@ declare function numeric<TName extends string>(name: TName, config?: {
752
635
  }): PgNumericBuilderInitial<TName>;
753
636
  declare const decimal: typeof numeric;
754
637
 
755
- interface PgRealBuilderHKT extends ColumnBuilderHKTBase {
756
- _type: PgRealBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
757
- _columnHKT: PgRealHKT;
758
- }
759
- interface PgRealHKT extends ColumnHKTBase {
760
- _type: PgReal<Assume<this['config'], ColumnBaseConfig>>;
761
- }
762
638
  type PgRealBuilderInitial<TName extends string> = PgRealBuilder<{
763
639
  name: TName;
640
+ dataType: 'number';
641
+ columnType: 'PgReal';
764
642
  data: number;
765
643
  driverParam: string | number;
766
- notNull: false;
767
- hasDefault: false;
644
+ enumValues: undefined;
768
645
  }>;
769
- declare class PgRealBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgRealBuilderHKT, T, {
646
+ declare class PgRealBuilder<T extends ColumnBuilderBaseConfig<'number', 'PgReal'>> extends PgColumnBuilder<T, {
770
647
  length: number | undefined;
771
648
  }> {
772
649
  static readonly [entityKind]: string;
773
650
  constructor(name: string, length?: number);
774
651
  }
775
- declare class PgReal<T extends ColumnBaseConfig> extends PgColumn<PgRealHKT, T> {
652
+ declare class PgReal<T extends ColumnBaseConfig<'number', 'PgReal'>> extends PgColumn<T> {
776
653
  static readonly [entityKind]: string;
777
654
  constructor(table: AnyPgTable<{
778
655
  name: T['tableName'];
@@ -782,129 +659,96 @@ declare class PgReal<T extends ColumnBaseConfig> extends PgColumn<PgRealHKT, T>
782
659
  }
783
660
  declare function real<TName extends string>(name: TName): PgRealBuilderInitial<TName>;
784
661
 
785
- type PgSerialBuilderInitial<TName extends string> = PgSerialBuilder<{
662
+ type PgSerialBuilderInitial<TName extends string> = NotNull<HasDefault<PgSerialBuilder<{
786
663
  name: TName;
664
+ dataType: 'number';
665
+ columnType: 'PgSerial';
787
666
  data: number;
788
667
  driverParam: number;
789
- notNull: true;
790
- hasDefault: true;
791
- }>;
792
- interface PgSerialBuilderHKT extends ColumnBuilderHKTBase {
793
- _type: PgSerialBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
794
- _columnHKT: PgSerialHKT;
795
- }
796
- interface PgSerialBuilderHKT extends ColumnBuilderHKTBase {
797
- _type: PgSerialBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
798
- _columnHKT: PgSerialHKT;
799
- }
800
- interface PgSerialHKT extends ColumnHKTBase {
801
- _type: PgSerial<Assume<this['config'], ColumnBaseConfig>>;
802
- }
803
- interface PgSerialHKT extends ColumnHKTBase {
804
- _type: PgSerial<Assume<this['config'], ColumnBaseConfig>>;
805
- }
806
- declare class PgSerialBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgSerialBuilderHKT, T> {
668
+ enumValues: undefined;
669
+ }>>>;
670
+ declare class PgSerialBuilder<T extends ColumnBuilderBaseConfig<'number', 'PgSerial'>> extends PgColumnBuilder<T> {
807
671
  static readonly [entityKind]: string;
808
672
  constructor(name: string);
809
673
  }
810
- declare class PgSerial<T extends ColumnBaseConfig> extends PgColumn<PgSerialHKT, T> {
674
+ declare class PgSerial<T extends ColumnBaseConfig<'number', 'PgSerial'>> extends PgColumn<T> {
811
675
  static readonly [entityKind]: string;
812
676
  getSQLType(): string;
813
677
  }
814
678
  declare function serial<TName extends string>(name: TName): PgSerialBuilderInitial<TName>;
815
679
 
816
- interface PgSmallIntBuilderHKT extends ColumnBuilderHKTBase {
817
- _type: PgSmallIntBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
818
- _columnHKT: PgSmallIntHKT;
819
- }
820
- interface PgSmallIntHKT extends ColumnHKTBase {
821
- _type: PgSmallInt<Assume<this['config'], ColumnBaseConfig>>;
822
- }
823
680
  type PgSmallIntBuilderInitial<TName extends string> = PgSmallIntBuilder<{
824
681
  name: TName;
682
+ dataType: 'number';
683
+ columnType: 'PgSmallInt';
825
684
  data: number;
826
685
  driverParam: number | string;
827
- notNull: false;
828
- hasDefault: false;
686
+ enumValues: undefined;
829
687
  }>;
830
- declare class PgSmallIntBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgSmallIntBuilderHKT, T> {
688
+ declare class PgSmallIntBuilder<T extends ColumnBuilderBaseConfig<'number', 'PgSmallInt'>> extends PgColumnBuilder<T> {
831
689
  static readonly [entityKind]: string;
690
+ constructor(name: T['name']);
832
691
  }
833
- declare class PgSmallInt<T extends ColumnBaseConfig> extends PgColumn<PgSmallIntHKT, T> {
692
+ declare class PgSmallInt<T extends ColumnBaseConfig<'number', 'PgSmallInt'>> extends PgColumn<T> {
834
693
  static readonly [entityKind]: string;
835
694
  getSQLType(): string;
836
695
  mapFromDriverValue: (value: number | string) => number;
837
696
  }
838
697
  declare function smallint<TName extends string>(name: TName): PgSmallIntBuilderInitial<TName>;
839
698
 
840
- interface PgSmallSerialBuilderHKT extends ColumnBuilderHKTBase {
841
- _type: PgSmallSerialBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
842
- _columnHKT: PgSmallSerialHKT;
843
- }
844
- interface PgSmallSerialHKT extends ColumnHKTBase {
845
- _type: PgSmallSerial<Assume<this['config'], ColumnBaseConfig>>;
846
- }
847
699
  type PgSmallSerialBuilderInitial<TName extends string> = PgSmallSerialBuilder<{
848
700
  name: TName;
701
+ dataType: 'number';
702
+ columnType: 'PgSmallSerial';
849
703
  data: number;
850
704
  driverParam: number;
851
- notNull: false;
852
- hasDefault: false;
705
+ enumValues: undefined;
853
706
  }>;
854
- declare class PgSmallSerialBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgSmallSerialBuilderHKT, T> {
707
+ declare class PgSmallSerialBuilder<T extends ColumnBuilderBaseConfig<'number', 'PgSmallSerial'>> extends PgColumnBuilder<T> {
855
708
  static readonly [entityKind]: string;
856
709
  constructor(name: string);
857
710
  }
858
- declare class PgSmallSerial<T extends ColumnBaseConfig> extends PgColumn<PgSmallSerialHKT, T> {
711
+ declare class PgSmallSerial<T extends ColumnBaseConfig<'number', 'PgSmallSerial'>> extends PgColumn<T> {
859
712
  static readonly [entityKind]: string;
860
713
  getSQLType(): string;
861
714
  }
862
715
  declare function smallserial<TName extends string>(name: TName): PgSmallSerialBuilderInitial<TName>;
863
716
 
864
- interface PgTextBuilderHKT extends ColumnBuilderHKTBase {
865
- _type: PgTextBuilder<Assume<this['config'], ColumnBuilderBaseConfig & WithEnum>>;
866
- _columnHKT: PgTextHKT;
867
- }
868
- interface PgTextHKT extends ColumnHKTBase {
869
- _type: PgText<Assume<this['config'], ColumnBaseConfig & WithEnum>>;
870
- }
871
717
  type PgTextBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = PgTextBuilder<{
872
718
  name: TName;
719
+ dataType: 'string';
720
+ columnType: 'PgText';
873
721
  data: TEnum[number];
874
722
  enumValues: TEnum;
875
723
  driverParam: string;
876
- notNull: false;
877
- hasDefault: false;
878
724
  }>;
879
- declare class PgTextBuilder<T extends ColumnBuilderBaseConfig & WithEnum> extends PgColumnBuilder<PgTextBuilderHKT, T, WithEnum<T['enumValues']>> {
725
+ declare class PgTextBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgText'>> extends PgColumnBuilder<T, {
726
+ enumValues: T['enumValues'];
727
+ }> {
880
728
  static readonly [entityKind]: string;
881
729
  constructor(name: T['name'], config: PgTextConfig<T['enumValues']>);
882
730
  }
883
- declare class PgText<T extends ColumnBaseConfig & WithEnum> extends PgColumn<PgTextHKT, T, WithEnum<T['enumValues']>> implements WithEnum<T['enumValues']> {
731
+ declare class PgText<T extends ColumnBaseConfig<'string', 'PgText'>> extends PgColumn<T, {
732
+ enumValues: T['enumValues'];
733
+ }> {
884
734
  static readonly [entityKind]: string;
885
735
  readonly enumValues: T["enumValues"];
886
736
  getSQLType(): string;
887
737
  }
888
- interface PgTextConfig<TEnum extends readonly string[] | string[]> {
738
+ interface PgTextConfig<TEnum extends readonly string[] | string[] | undefined> {
889
739
  enum?: TEnum;
890
740
  }
891
741
  declare function text<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>>(name: TName, config?: PgTextConfig<T | Writable<T>>): PgTextBuilderInitial<TName, Writable<T>>;
892
742
 
893
- interface PgTimeBuilderHKT extends ColumnBuilderHKTBase {
894
- _type: PgTimeBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
895
- _columnHKT: PgTimeHKT;
896
- }
897
- interface PgTimeHKT extends ColumnHKTBase {
898
- _type: PgTime<Assume<this['config'], ColumnBaseConfig>>;
899
- }
900
743
  type PgTimeBuilderInitial<TName extends string> = PgTimeBuilder<{
901
744
  name: TName;
745
+ dataType: 'string';
746
+ columnType: 'PgTime';
902
747
  data: string;
903
748
  driverParam: string;
904
- notNull: false;
905
- hasDefault: false;
749
+ enumValues: undefined;
906
750
  }>;
907
- declare class PgTimeBuilder<T extends ColumnBuilderBaseConfig> extends PgDateColumnBaseBuilder<PgTimeBuilderHKT, T, {
751
+ declare class PgTimeBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgTime'>> extends PgDateColumnBaseBuilder<T, {
908
752
  withTimezone: boolean;
909
753
  precision: number | undefined;
910
754
  }> {
@@ -913,7 +757,7 @@ declare class PgTimeBuilder<T extends ColumnBuilderBaseConfig> extends PgDateCol
913
757
  static readonly [entityKind]: string;
914
758
  constructor(name: T['name'], withTimezone: boolean, precision: number | undefined);
915
759
  }
916
- declare class PgTime<T extends ColumnBaseConfig> extends PgColumn<PgTimeHKT, T> {
760
+ declare class PgTime<T extends ColumnBaseConfig<'string', 'PgTime'>> extends PgColumn<T> {
917
761
  static readonly [entityKind]: string;
918
762
  readonly withTimezone: boolean;
919
763
  readonly precision: number | undefined;
@@ -928,69 +772,59 @@ interface TimeConfig {
928
772
  }
929
773
  declare function time<TName extends string>(name: TName, config?: TimeConfig): PgTimeBuilderInitial<TName>;
930
774
 
931
- interface PgUUIDBuilderHKT extends ColumnBuilderHKTBase {
932
- _type: PgUUIDBuilder<Assume<this['config'], ColumnBuilderBaseConfig>>;
933
- _columnHKT: PgUUIDHKT;
934
- }
935
- interface PgUUIDHKT extends ColumnHKTBase {
936
- _type: PgUUID<Assume<this['config'], ColumnBaseConfig>>;
937
- }
938
775
  type PgUUIDBuilderInitial<TName extends string> = PgUUIDBuilder<{
939
776
  name: TName;
777
+ dataType: 'string';
778
+ columnType: 'PgUUID';
940
779
  data: string;
941
780
  driverParam: string;
942
- notNull: false;
943
- hasDefault: false;
781
+ enumValues: undefined;
944
782
  }>;
945
- declare class PgUUIDBuilder<T extends ColumnBuilderBaseConfig> extends PgColumnBuilder<PgUUIDBuilderHKT, T> {
783
+ declare class PgUUIDBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgUUID'>> extends PgColumnBuilder<T> {
946
784
  static readonly [entityKind]: string;
785
+ constructor(name: T['name']);
947
786
  /**
948
787
  * Adds `default gen_random_uuid()` to the column definition.
949
788
  */
950
789
  defaultRandom(): ReturnType<this['default']>;
951
790
  }
952
- declare class PgUUID<T extends ColumnBaseConfig> extends PgColumn<PgUUIDHKT, T> {
791
+ declare class PgUUID<T extends ColumnBaseConfig<'string', 'PgUUID'>> extends PgColumn<T> {
953
792
  static readonly [entityKind]: string;
954
793
  getSQLType(): string;
955
794
  }
956
795
  declare function uuid<TName extends string>(name: TName): PgUUIDBuilderInitial<TName>;
957
796
 
958
- interface PgVarcharBuilderHKT extends ColumnBuilderHKTBase {
959
- _type: PgVarcharBuilder<Assume<this['config'], ColumnBuilderBaseConfig & WithEnum>>;
960
- _columnHKT: PgVarcharHKT;
961
- }
962
- interface PgVarcharHKT extends ColumnHKTBase {
963
- _type: PgVarchar<Assume<this['config'], ColumnBaseConfig & WithEnum>>;
964
- }
965
797
  type PgVarcharBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = PgVarcharBuilder<{
966
798
  name: TName;
799
+ dataType: 'string';
800
+ columnType: 'PgVarchar';
967
801
  data: TEnum[number];
968
802
  driverParam: string;
969
803
  enumValues: TEnum;
970
- notNull: false;
971
- hasDefault: false;
972
804
  }>;
973
- declare class PgVarcharBuilder<T extends ColumnBuilderBaseConfig & WithEnum> extends PgColumnBuilder<PgVarcharBuilderHKT, T, {
805
+ declare class PgVarcharBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgVarchar'>> extends PgColumnBuilder<T, {
974
806
  length: number | undefined;
975
- } & WithEnum<T['enumValues']>> {
807
+ enumValues: T['enumValues'];
808
+ }> {
976
809
  static readonly [entityKind]: string;
977
810
  constructor(name: string, config: PgVarcharConfig<T['enumValues']>);
978
811
  }
979
- declare class PgVarchar<T extends ColumnBaseConfig & WithEnum> extends PgColumn<PgVarcharHKT, T, {
812
+ declare class PgVarchar<T extends ColumnBaseConfig<'string', 'PgVarchar'>> extends PgColumn<T, {
980
813
  length: number | undefined;
981
- } & WithEnum<T['enumValues']>> implements WithEnum<T['enumValues']> {
814
+ enumValues: T['enumValues'];
815
+ }> {
982
816
  static readonly [entityKind]: string;
983
817
  readonly length: number | undefined;
984
818
  readonly enumValues: T["enumValues"];
985
819
  getSQLType(): string;
986
820
  }
987
- interface PgVarcharConfig<TEnum extends readonly string[] | string[]> {
821
+ interface PgVarcharConfig<TEnum extends readonly string[] | string[] | undefined> {
988
822
  length?: number;
989
823
  enum?: TEnum;
990
824
  }
991
825
  declare function varchar<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>>(name: TName, config?: PgVarcharConfig<T | Writable<T>>): PgVarcharBuilderInitial<TName, Writable<T>>;
992
826
 
993
- declare function alias<TTable extends AnyPgTable, TAlias extends string>(table: TTable, alias: TAlias): BuildAliasTable<TTable, TAlias>;
827
+ declare function alias<TTable extends AnyPgTable | PgViewBase, TAlias extends string>(table: TTable, alias: TAlias): BuildAliasTable<TTable, TAlias>;
994
828
 
995
829
  declare class PgSchema<TName extends string = string> {
996
830
  readonly schemaName: TName;
@@ -1004,7 +838,7 @@ declare function isPgSchema(obj: unknown): obj is PgSchema;
1004
838
  declare function pgSchema<T extends string>(name: T): PgSchema<T>;
1005
839
 
1006
840
  declare function getTableConfig<TTable extends AnyPgTable>(table: TTable): {
1007
- columns: AnyPgColumn[];
841
+ columns: PgColumn<ColumnBaseConfig<ColumnDataType, string>, {}, {}>[];
1008
842
  indexes: Index[];
1009
843
  foreignKeys: ForeignKey[];
1010
844
  checks: Check[];
@@ -1018,7 +852,7 @@ declare function getViewConfig<TName extends string = string, TExisting extends
1018
852
  name: TName;
1019
853
  originalName: TName;
1020
854
  schema: string | undefined;
1021
- selectedFields: SelectedFields<AnyColumn, Table<TableConfig<AnyColumn>>>;
855
+ selectedFields: SelectedFields<AnyColumn, Table<TableConfig<Column<any, object, object>>>>;
1022
856
  isExisting: TExisting;
1023
857
  query: TExisting extends true ? undefined : SQL<unknown>;
1024
858
  isAlias: boolean;
@@ -1031,7 +865,7 @@ declare function getMaterializedViewConfig<TName extends string = string, TExist
1031
865
  name: TName;
1032
866
  originalName: TName;
1033
867
  schema: string | undefined;
1034
- selectedFields: SelectedFields<AnyColumn, Table<TableConfig<AnyColumn>>>;
868
+ selectedFields: SelectedFields<AnyColumn, Table<TableConfig<Column<any, object, object>>>>;
1035
869
  isExisting: TExisting;
1036
870
  query: TExisting extends true ? undefined : SQL<unknown>;
1037
871
  isAlias: boolean;
@@ -1047,4 +881,4 @@ type ColumnsWithTable<TTableName extends string, TForeignTableName extends strin
1047
881
  }>;
1048
882
  };
1049
883
 
1050
- export { AnyPgColumn, AnyPgTable, BuildAliasTable, Check, ColumnsWithTable, ConvertCustomConfig, CustomTypeParams, CustomTypeValues, ForeignKey, Index, IntervalConfig, PgBigInt53, PgBigInt53Builder, PgBigInt53BuilderHKT, PgBigInt53BuilderInitial, PgBigInt53HKT, PgBigInt64, PgBigInt64Builder, PgBigInt64BuilderHKT, PgBigInt64BuilderInitial, PgBigInt64HKT, PgBigSerial53, PgBigSerial53Builder, PgBigSerial53BuilderHKT, PgBigSerial53BuilderInitial, PgBigSerial53HKT, PgBigSerial64, PgBigSerial64Builder, PgBigSerial64BuilderHKT, PgBigSerial64BuilderInitial, PgBigSerial64HKT, PgBoolean, PgBooleanBuilder, PgBooleanBuilderHKT, PgBooleanBuilderInitial, PgBooleanHKT, PgChar, PgCharBuilder, PgCharBuilderHKT, PgCharBuilderInitial, PgCharConfig, PgCharHKT, PgCidr, PgCidrBuilder, PgCidrBuilderHKT, PgCidrBuilderInitial, PgCidrHKT, PgColumn, PgColumnBuilder, PgCustomColumn, PgCustomColumnBuilder, PgCustomColumnBuilderHKT, PgCustomColumnHKT, PgCustomColumnInnerConfig, PgDate, PgDateBuilder, PgDateBuilderHKT, PgDateBuilderInitial, PgDateHKT, PgDateString, PgDateStringBuilder, PgDateStringBuilderHKT, PgDateStringBuilderInitial, PgDateStringHKT, PgDoublePrecision, PgDoublePrecisionBuilder, PgDoublePrecisionBuilderHKT, PgDoublePrecisionBuilderInitial, PgDoublePrecisionHKT, PgEnum, PgEnumColumn, PgEnumColumnBuilder, PgEnumColumnBuilderHKT, PgEnumColumnBuilderInitial, PgEnumColumnHKT, PgInet, PgInetBuilder, PgInetBuilderHKT, PgInetBuilderInitial, PgInetHKT, PgInteger, PgIntegerBuilder, PgIntegerBuilderHKT, PgIntegerHKT, PgInterval, PgIntervalBuilder, PgIntervalBuilderHKT, PgIntervalBuilderInitial, PgIntervalHKT, PgJson, PgJsonBuilder, PgJsonBuilderHKT, PgJsonBuilderInitial, PgJsonHKT, PgJsonb, PgJsonbBuilder, PgJsonbBuilderHKT, PgJsonbBuilderInitial, PgJsonbHKT, PgMacaddr, PgMacaddr8, PgMacaddr8Builder, PgMacaddr8BuilderHKT, PgMacaddr8BuilderInitial, PgMacaddr8HKT, PgMacaddrBuilder, PgMacaddrBuilderHKT, PgMacaddrBuilderInitial, PgMacaddrHKT, PgMaterializedView, PgMaterializedViewWithConfig, PgNumeric, PgNumericBuilder, PgNumericBuilderHKT, PgNumericBuilderInitial, PgNumericHKT, PgReal, PgRealBuilder, PgRealBuilderHKT, PgRealBuilderInitial, PgRealHKT, PgSchema, PgSerial, PgSerialBuilder, PgSerialBuilderHKT, PgSerialBuilderInitial, PgSerialHKT, PgSmallInt, PgSmallIntBuilder, PgSmallIntBuilderHKT, PgSmallIntBuilderInitial, PgSmallIntHKT, PgSmallSerial, PgSmallSerialBuilder, PgSmallSerialBuilderHKT, PgSmallSerialBuilderInitial, PgSmallSerialHKT, PgTableFn, PgText, PgTextBuilder, PgTextBuilderHKT, PgTextConfig, PgTextHKT, PgTime, PgTimeBuilder, PgTimeBuilderHKT, PgTimeBuilderInitial, PgTimeHKT, PgTimestamp, PgTimestampBuilder, PgTimestampBuilderHKT, PgTimestampBuilderInitial, PgTimestampConfig, PgTimestampHKT, PgTimestampString, PgTimestampStringBuilder, PgTimestampStringBuilderHKT, PgTimestampStringBuilderInitial, PgTimestampStringHKT, PgUUID, PgUUIDBuilder, PgUUIDBuilderHKT, PgUUIDBuilderInitial, PgUUIDHKT, PgVarchar, PgVarcharBuilder, PgVarcharBuilderHKT, PgVarcharBuilderInitial, PgVarcharConfig, PgVarcharHKT, PgView, Precision, PrimaryKey, TimeConfig, UniqueConstraint, ViewWithConfig, alias, bigint, bigserial, boolean, char, cidr, customType, date, decimal, doublePrecision, getMaterializedViewConfig, getTableConfig, getViewConfig, inet, integer, interval, isPgEnum, isPgSchema, json, jsonb, macaddr, macaddr8, makePgArray, numeric, parsePgArray, parsePgNestedArray, pgEnum, pgMaterializedView, pgSchema, pgView, real, serial, smallint, smallserial, text, time, timestamp, uuid, varchar };
884
+ export { AnyPgColumn, AnyPgTable, BuildAliasTable, Check, ColumnsWithTable, ConvertCustomConfig, CustomTypeParams, CustomTypeValues, ForeignKey, Index, IntervalConfig, PgBigInt53, PgBigInt53Builder, PgBigInt53BuilderInitial, PgBigInt64, PgBigInt64Builder, PgBigInt64BuilderInitial, PgBigSerial53, PgBigSerial53Builder, PgBigSerial53BuilderInitial, PgBigSerial64, PgBigSerial64Builder, PgBigSerial64BuilderInitial, PgBoolean, PgBooleanBuilder, PgBooleanBuilderInitial, PgChar, PgCharBuilder, PgCharBuilderInitial, PgCharConfig, PgCidr, PgCidrBuilder, PgCidrBuilderInitial, PgColumn, PgColumnBuilder, PgCustomColumn, PgCustomColumnBuilder, PgCustomColumnInnerConfig, PgDate, PgDateBuilder, PgDateBuilderInitial, PgDateString, PgDateStringBuilder, PgDateStringBuilderInitial, PgDoublePrecision, PgDoublePrecisionBuilder, PgDoublePrecisionBuilderInitial, PgEnum, PgEnumColumn, PgEnumColumnBuilder, PgEnumColumnBuilderInitial, PgInet, PgInetBuilder, PgInetBuilderInitial, PgInteger, PgIntegerBuilder, PgInterval, PgIntervalBuilder, PgIntervalBuilderInitial, PgJson, PgJsonBuilder, PgJsonBuilderInitial, PgJsonb, PgJsonbBuilder, PgJsonbBuilderInitial, PgMacaddr, PgMacaddr8, PgMacaddr8Builder, PgMacaddr8BuilderInitial, PgMacaddrBuilder, PgMacaddrBuilderInitial, PgMaterializedView, PgMaterializedViewWithConfig, PgNumeric, PgNumericBuilder, PgNumericBuilderInitial, PgReal, PgRealBuilder, PgRealBuilderInitial, PgSchema, PgSerial, PgSerialBuilder, PgSerialBuilderInitial, PgSmallInt, PgSmallIntBuilder, PgSmallIntBuilderInitial, PgSmallSerial, PgSmallSerialBuilder, PgSmallSerialBuilderInitial, PgTableFn, PgText, PgTextBuilder, PgTextConfig, PgTime, PgTimeBuilder, PgTimeBuilderInitial, PgTimestamp, PgTimestampBuilder, PgTimestampBuilderInitial, PgTimestampConfig, PgTimestampString, PgTimestampStringBuilder, PgTimestampStringBuilderInitial, PgUUID, PgUUIDBuilder, PgUUIDBuilderInitial, PgVarchar, PgVarcharBuilder, PgVarcharBuilderInitial, PgVarcharConfig, PgView, PgViewBase, Precision, PrimaryKey, TimeConfig, UniqueConstraint, ViewWithConfig, alias, bigint, bigserial, boolean, char, cidr, customType, date, decimal, doublePrecision, getMaterializedViewConfig, getTableConfig, getViewConfig, inet, integer, interval, isPgEnum, isPgSchema, json, jsonb, macaddr, macaddr8, makePgArray, numeric, parsePgArray, parsePgNestedArray, pgEnum, pgMaterializedView, pgSchema, pgView, real, serial, smallint, smallserial, text, time, timestamp, uuid, varchar };