drizzle-orm 0.40.1 → 0.41.0-668be9a

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 (129) hide show
  1. package/aws-data-api/pg/driver.cjs +1 -1
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.js +1 -1
  4. package/aws-data-api/pg/driver.js.map +1 -1
  5. package/mysql-core/columns/binary.cjs +11 -0
  6. package/mysql-core/columns/binary.cjs.map +1 -1
  7. package/mysql-core/columns/binary.d.cts +1 -0
  8. package/mysql-core/columns/binary.d.ts +1 -0
  9. package/mysql-core/columns/binary.js +11 -0
  10. package/mysql-core/columns/binary.js.map +1 -1
  11. package/mysql-core/columns/decimal.cjs +91 -1
  12. package/mysql-core/columns/decimal.cjs.map +1 -1
  13. package/mysql-core/columns/decimal.d.cts +48 -3
  14. package/mysql-core/columns/decimal.d.ts +48 -3
  15. package/mysql-core/columns/decimal.js +87 -1
  16. package/mysql-core/columns/decimal.js.map +1 -1
  17. package/mysql-core/columns/varbinary.cjs +11 -0
  18. package/mysql-core/columns/varbinary.cjs.map +1 -1
  19. package/mysql-core/columns/varbinary.d.cts +1 -0
  20. package/mysql-core/columns/varbinary.d.ts +1 -0
  21. package/mysql-core/columns/varbinary.js +11 -0
  22. package/mysql-core/columns/varbinary.js.map +1 -1
  23. package/mysql-core/columns/varchar.cjs.map +1 -1
  24. package/mysql-core/columns/varchar.d.cts +1 -1
  25. package/mysql-core/columns/varchar.d.ts +1 -1
  26. package/mysql-core/columns/varchar.js.map +1 -1
  27. package/mysql-core/dialect.cjs +2 -2
  28. package/mysql-core/dialect.cjs.map +1 -1
  29. package/mysql-core/dialect.js +2 -2
  30. package/mysql-core/dialect.js.map +1 -1
  31. package/mysql2/driver.cjs +2 -1
  32. package/mysql2/driver.cjs.map +1 -1
  33. package/mysql2/driver.js +2 -1
  34. package/mysql2/driver.js.map +1 -1
  35. package/neon-http/driver.cjs +5 -0
  36. package/neon-http/driver.cjs.map +1 -1
  37. package/neon-http/driver.js +5 -0
  38. package/neon-http/driver.js.map +1 -1
  39. package/neon-serverless/session.cjs +30 -0
  40. package/neon-serverless/session.cjs.map +1 -1
  41. package/neon-serverless/session.js +30 -0
  42. package/neon-serverless/session.js.map +1 -1
  43. package/node-postgres/session.cjs +30 -0
  44. package/node-postgres/session.cjs.map +1 -1
  45. package/node-postgres/session.js +30 -0
  46. package/node-postgres/session.js.map +1 -1
  47. package/package.json +1 -1
  48. package/pg-core/columns/numeric.cjs +91 -1
  49. package/pg-core/columns/numeric.cjs.map +1 -1
  50. package/pg-core/columns/numeric.d.cts +62 -6
  51. package/pg-core/columns/numeric.d.ts +62 -6
  52. package/pg-core/columns/numeric.js +87 -1
  53. package/pg-core/columns/numeric.js.map +1 -1
  54. package/pg-core/dialect.cjs +1 -1
  55. package/pg-core/dialect.cjs.map +1 -1
  56. package/pg-core/dialect.js +1 -1
  57. package/pg-core/dialect.js.map +1 -1
  58. package/pglite/session.cjs +22 -2
  59. package/pglite/session.cjs.map +1 -1
  60. package/pglite/session.js +22 -2
  61. package/pglite/session.js.map +1 -1
  62. package/postgres-js/driver.cjs +1 -1
  63. package/postgres-js/driver.cjs.map +1 -1
  64. package/postgres-js/driver.js +1 -1
  65. package/postgres-js/driver.js.map +1 -1
  66. package/singlestore/driver.cjs +1 -3
  67. package/singlestore/driver.cjs.map +1 -1
  68. package/singlestore/driver.js +1 -3
  69. package/singlestore/driver.js.map +1 -1
  70. package/singlestore-core/columns/binary.cjs +11 -0
  71. package/singlestore-core/columns/binary.cjs.map +1 -1
  72. package/singlestore-core/columns/binary.d.cts +1 -0
  73. package/singlestore-core/columns/binary.d.ts +1 -0
  74. package/singlestore-core/columns/binary.js +11 -0
  75. package/singlestore-core/columns/binary.js.map +1 -1
  76. package/singlestore-core/columns/decimal.cjs +92 -5
  77. package/singlestore-core/columns/decimal.cjs.map +1 -1
  78. package/singlestore-core/columns/decimal.d.cts +50 -3
  79. package/singlestore-core/columns/decimal.d.ts +50 -3
  80. package/singlestore-core/columns/decimal.js +88 -5
  81. package/singlestore-core/columns/decimal.js.map +1 -1
  82. package/singlestore-core/columns/varbinary.cjs +11 -0
  83. package/singlestore-core/columns/varbinary.cjs.map +1 -1
  84. package/singlestore-core/columns/varbinary.d.cts +1 -0
  85. package/singlestore-core/columns/varbinary.d.ts +1 -0
  86. package/singlestore-core/columns/varbinary.js +11 -0
  87. package/singlestore-core/columns/varbinary.js.map +1 -1
  88. package/singlestore-core/columns/varchar.cjs.map +1 -1
  89. package/singlestore-core/columns/varchar.d.cts +1 -1
  90. package/singlestore-core/columns/varchar.d.ts +1 -1
  91. package/singlestore-core/columns/varchar.js.map +1 -1
  92. package/singlestore-core/dialect.cjs +2 -2
  93. package/singlestore-core/dialect.cjs.map +1 -1
  94. package/singlestore-core/dialect.js +2 -2
  95. package/singlestore-core/dialect.js.map +1 -1
  96. package/sql-js/session.cjs +18 -42
  97. package/sql-js/session.cjs.map +1 -1
  98. package/sql-js/session.d.cts +3 -6
  99. package/sql-js/session.d.ts +3 -6
  100. package/sql-js/session.js +18 -42
  101. package/sql-js/session.js.map +1 -1
  102. package/sqlite-core/columns/blob.cjs +6 -0
  103. package/sqlite-core/columns/blob.cjs.map +1 -1
  104. package/sqlite-core/columns/blob.d.cts +1 -0
  105. package/sqlite-core/columns/blob.d.ts +1 -0
  106. package/sqlite-core/columns/blob.js +6 -0
  107. package/sqlite-core/columns/blob.js.map +1 -1
  108. package/sqlite-core/columns/numeric.cjs +64 -2
  109. package/sqlite-core/columns/numeric.cjs.map +1 -1
  110. package/sqlite-core/columns/numeric.d.cts +43 -2
  111. package/sqlite-core/columns/numeric.d.ts +43 -2
  112. package/sqlite-core/columns/numeric.js +60 -2
  113. package/sqlite-core/columns/numeric.js.map +1 -1
  114. package/sqlite-core/dialect.cjs +15 -5
  115. package/sqlite-core/dialect.cjs.map +1 -1
  116. package/sqlite-core/dialect.js +15 -5
  117. package/sqlite-core/dialect.js.map +1 -1
  118. package/utils.cjs +2 -2
  119. package/utils.cjs.map +1 -1
  120. package/utils.js +2 -2
  121. package/utils.js.map +1 -1
  122. package/vercel-postgres/session.cjs +30 -0
  123. package/vercel-postgres/session.cjs.map +1 -1
  124. package/vercel-postgres/session.js +30 -0
  125. package/vercel-postgres/session.js.map +1 -1
  126. package/version.cjs +1 -1
  127. package/version.d.cts +1 -1
  128. package/version.d.ts +1 -1
  129. package/version.js +1 -1
@@ -2,6 +2,7 @@ import type { ColumnBuilderBaseConfig } from "../../column-builder.cjs";
2
2
  import type { ColumnBaseConfig } from "../../column.cjs";
3
3
  import { entityKind } from "../../entity.cjs";
4
4
  import type { AnyPgTable } from "../table.cjs";
5
+ import { type Equal } from "../../utils.cjs";
5
6
  import { PgColumn, PgColumnBuilder } from "./common.cjs";
6
7
  export type PgNumericBuilderInitial<TName extends string> = PgNumericBuilder<{
7
8
  name: TName;
@@ -25,19 +26,74 @@ export declare class PgNumeric<T extends ColumnBaseConfig<'string', 'PgNumeric'>
25
26
  constructor(table: AnyPgTable<{
26
27
  name: T['tableName'];
27
28
  }>, config: PgNumericBuilder<T>['config']);
29
+ mapFromDriverValue(value: unknown): string;
28
30
  getSQLType(): string;
29
31
  }
30
- export type PgNumericConfig = {
32
+ export type PgNumericNumberBuilderInitial<TName extends string> = PgNumericNumberBuilder<{
33
+ name: TName;
34
+ dataType: 'number';
35
+ columnType: 'PgNumericNumber';
36
+ data: number;
37
+ driverParam: string;
38
+ enumValues: undefined;
39
+ }>;
40
+ export declare class PgNumericNumberBuilder<T extends ColumnBuilderBaseConfig<'number', 'PgNumericNumber'>> extends PgColumnBuilder<T, {
41
+ precision: number | undefined;
42
+ scale: number | undefined;
43
+ }> {
44
+ static readonly [entityKind]: string;
45
+ constructor(name: T['name'], precision?: number, scale?: number);
46
+ }
47
+ export declare class PgNumericNumber<T extends ColumnBaseConfig<'number', 'PgNumericNumber'>> extends PgColumn<T> {
48
+ static readonly [entityKind]: string;
49
+ readonly precision: number | undefined;
50
+ readonly scale: number | undefined;
51
+ constructor(table: AnyPgTable<{
52
+ name: T['tableName'];
53
+ }>, config: PgNumericNumberBuilder<T>['config']);
54
+ mapFromDriverValue(value: unknown): number;
55
+ mapToDriverValue: StringConstructor;
56
+ getSQLType(): string;
57
+ }
58
+ export type PgNumericBigIntBuilderInitial<TName extends string> = PgNumericBigIntBuilder<{
59
+ name: TName;
60
+ dataType: 'bigint';
61
+ columnType: 'PgNumericBigInt';
62
+ data: bigint;
63
+ driverParam: string;
64
+ enumValues: undefined;
65
+ }>;
66
+ export declare class PgNumericBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'PgNumericBigInt'>> extends PgColumnBuilder<T, {
67
+ precision: number | undefined;
68
+ scale: number | undefined;
69
+ }> {
70
+ static readonly [entityKind]: string;
71
+ constructor(name: T['name'], precision?: number, scale?: number);
72
+ }
73
+ export declare class PgNumericBigInt<T extends ColumnBaseConfig<'bigint', 'PgNumericBigInt'>> extends PgColumn<T> {
74
+ static readonly [entityKind]: string;
75
+ readonly precision: number | undefined;
76
+ readonly scale: number | undefined;
77
+ constructor(table: AnyPgTable<{
78
+ name: T['tableName'];
79
+ }>, config: PgNumericBigIntBuilder<T>['config']);
80
+ mapFromDriverValue: BigIntConstructor;
81
+ mapToDriverValue: StringConstructor;
82
+ getSQLType(): string;
83
+ }
84
+ export type PgNumericConfig<T extends 'string' | 'number' | 'bigint' = 'string' | 'number' | 'bigint'> = {
31
85
  precision: number;
32
86
  scale?: number;
87
+ mode?: T;
33
88
  } | {
34
89
  precision?: number;
35
90
  scale: number;
91
+ mode?: T;
36
92
  } | {
37
- precision: number;
38
- scale: number;
93
+ precision?: number;
94
+ scale?: number;
95
+ mode: T;
39
96
  };
40
- export declare function numeric(): PgNumericBuilderInitial<''>;
41
- export declare function numeric(config?: PgNumericConfig): PgNumericBuilderInitial<''>;
42
- export declare function numeric<TName extends string>(name: TName, config?: PgNumericConfig): PgNumericBuilderInitial<TName>;
97
+ export declare function numeric<TMode extends 'string' | 'number' | 'bigint'>(config?: PgNumericConfig<TMode>): Equal<TMode, 'number'> extends true ? PgNumericNumberBuilderInitial<''> : Equal<TMode, 'bigint'> extends true ? PgNumericBigIntBuilderInitial<''> : PgNumericBuilderInitial<''>;
98
+ export declare function numeric<TName extends string, TMode extends 'string' | 'number' | 'bigint'>(name: TName, config?: PgNumericConfig<TMode>): Equal<TMode, 'number'> extends true ? PgNumericNumberBuilderInitial<TName> : Equal<TMode, 'bigint'> extends true ? PgNumericBigIntBuilderInitial<TName> : PgNumericBuilderInitial<TName>;
43
99
  export declare const decimal: typeof numeric;
@@ -2,6 +2,7 @@ import type { ColumnBuilderBaseConfig } from "../../column-builder.js";
2
2
  import type { ColumnBaseConfig } from "../../column.js";
3
3
  import { entityKind } from "../../entity.js";
4
4
  import type { AnyPgTable } from "../table.js";
5
+ import { type Equal } from "../../utils.js";
5
6
  import { PgColumn, PgColumnBuilder } from "./common.js";
6
7
  export type PgNumericBuilderInitial<TName extends string> = PgNumericBuilder<{
7
8
  name: TName;
@@ -25,19 +26,74 @@ export declare class PgNumeric<T extends ColumnBaseConfig<'string', 'PgNumeric'>
25
26
  constructor(table: AnyPgTable<{
26
27
  name: T['tableName'];
27
28
  }>, config: PgNumericBuilder<T>['config']);
29
+ mapFromDriverValue(value: unknown): string;
28
30
  getSQLType(): string;
29
31
  }
30
- export type PgNumericConfig = {
32
+ export type PgNumericNumberBuilderInitial<TName extends string> = PgNumericNumberBuilder<{
33
+ name: TName;
34
+ dataType: 'number';
35
+ columnType: 'PgNumericNumber';
36
+ data: number;
37
+ driverParam: string;
38
+ enumValues: undefined;
39
+ }>;
40
+ export declare class PgNumericNumberBuilder<T extends ColumnBuilderBaseConfig<'number', 'PgNumericNumber'>> extends PgColumnBuilder<T, {
41
+ precision: number | undefined;
42
+ scale: number | undefined;
43
+ }> {
44
+ static readonly [entityKind]: string;
45
+ constructor(name: T['name'], precision?: number, scale?: number);
46
+ }
47
+ export declare class PgNumericNumber<T extends ColumnBaseConfig<'number', 'PgNumericNumber'>> extends PgColumn<T> {
48
+ static readonly [entityKind]: string;
49
+ readonly precision: number | undefined;
50
+ readonly scale: number | undefined;
51
+ constructor(table: AnyPgTable<{
52
+ name: T['tableName'];
53
+ }>, config: PgNumericNumberBuilder<T>['config']);
54
+ mapFromDriverValue(value: unknown): number;
55
+ mapToDriverValue: StringConstructor;
56
+ getSQLType(): string;
57
+ }
58
+ export type PgNumericBigIntBuilderInitial<TName extends string> = PgNumericBigIntBuilder<{
59
+ name: TName;
60
+ dataType: 'bigint';
61
+ columnType: 'PgNumericBigInt';
62
+ data: bigint;
63
+ driverParam: string;
64
+ enumValues: undefined;
65
+ }>;
66
+ export declare class PgNumericBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'PgNumericBigInt'>> extends PgColumnBuilder<T, {
67
+ precision: number | undefined;
68
+ scale: number | undefined;
69
+ }> {
70
+ static readonly [entityKind]: string;
71
+ constructor(name: T['name'], precision?: number, scale?: number);
72
+ }
73
+ export declare class PgNumericBigInt<T extends ColumnBaseConfig<'bigint', 'PgNumericBigInt'>> extends PgColumn<T> {
74
+ static readonly [entityKind]: string;
75
+ readonly precision: number | undefined;
76
+ readonly scale: number | undefined;
77
+ constructor(table: AnyPgTable<{
78
+ name: T['tableName'];
79
+ }>, config: PgNumericBigIntBuilder<T>['config']);
80
+ mapFromDriverValue: BigIntConstructor;
81
+ mapToDriverValue: StringConstructor;
82
+ getSQLType(): string;
83
+ }
84
+ export type PgNumericConfig<T extends 'string' | 'number' | 'bigint' = 'string' | 'number' | 'bigint'> = {
31
85
  precision: number;
32
86
  scale?: number;
87
+ mode?: T;
33
88
  } | {
34
89
  precision?: number;
35
90
  scale: number;
91
+ mode?: T;
36
92
  } | {
37
- precision: number;
38
- scale: number;
93
+ precision?: number;
94
+ scale?: number;
95
+ mode: T;
39
96
  };
40
- export declare function numeric(): PgNumericBuilderInitial<''>;
41
- export declare function numeric(config?: PgNumericConfig): PgNumericBuilderInitial<''>;
42
- export declare function numeric<TName extends string>(name: TName, config?: PgNumericConfig): PgNumericBuilderInitial<TName>;
97
+ export declare function numeric<TMode extends 'string' | 'number' | 'bigint'>(config?: PgNumericConfig<TMode>): Equal<TMode, 'number'> extends true ? PgNumericNumberBuilderInitial<''> : Equal<TMode, 'bigint'> extends true ? PgNumericBigIntBuilderInitial<''> : PgNumericBuilderInitial<''>;
98
+ export declare function numeric<TName extends string, TMode extends 'string' | 'number' | 'bigint'>(name: TName, config?: PgNumericConfig<TMode>): Equal<TMode, 'number'> extends true ? PgNumericNumberBuilderInitial<TName> : Equal<TMode, 'bigint'> extends true ? PgNumericBigIntBuilderInitial<TName> : PgNumericBuilderInitial<TName>;
43
99
  export declare const decimal: typeof numeric;
@@ -22,6 +22,87 @@ class PgNumeric extends PgColumn {
22
22
  this.precision = config.precision;
23
23
  this.scale = config.scale;
24
24
  }
25
+ mapFromDriverValue(value) {
26
+ if (typeof value === "string")
27
+ return value;
28
+ return String(value);
29
+ }
30
+ getSQLType() {
31
+ if (this.precision !== void 0 && this.scale !== void 0) {
32
+ return `numeric(${this.precision}, ${this.scale})`;
33
+ } else if (this.precision === void 0) {
34
+ return "numeric";
35
+ } else {
36
+ return `numeric(${this.precision})`;
37
+ }
38
+ }
39
+ }
40
+ class PgNumericNumberBuilder extends PgColumnBuilder {
41
+ static [entityKind] = "PgNumericNumberBuilder";
42
+ constructor(name, precision, scale) {
43
+ super(name, "number", "PgNumericNumber");
44
+ this.config.precision = precision;
45
+ this.config.scale = scale;
46
+ }
47
+ /** @internal */
48
+ build(table) {
49
+ return new PgNumericNumber(
50
+ table,
51
+ this.config
52
+ );
53
+ }
54
+ }
55
+ class PgNumericNumber extends PgColumn {
56
+ static [entityKind] = "PgNumericNumber";
57
+ precision;
58
+ scale;
59
+ constructor(table, config) {
60
+ super(table, config);
61
+ this.precision = config.precision;
62
+ this.scale = config.scale;
63
+ }
64
+ mapFromDriverValue(value) {
65
+ if (typeof value === "number")
66
+ return value;
67
+ return Number(value);
68
+ }
69
+ mapToDriverValue = String;
70
+ getSQLType() {
71
+ if (this.precision !== void 0 && this.scale !== void 0) {
72
+ return `numeric(${this.precision}, ${this.scale})`;
73
+ } else if (this.precision === void 0) {
74
+ return "numeric";
75
+ } else {
76
+ return `numeric(${this.precision})`;
77
+ }
78
+ }
79
+ }
80
+ class PgNumericBigIntBuilder extends PgColumnBuilder {
81
+ static [entityKind] = "PgNumericBigIntBuilder";
82
+ constructor(name, precision, scale) {
83
+ super(name, "bigint", "PgNumericBigInt");
84
+ this.config.precision = precision;
85
+ this.config.scale = scale;
86
+ }
87
+ /** @internal */
88
+ build(table) {
89
+ return new PgNumericBigInt(
90
+ table,
91
+ this.config
92
+ );
93
+ }
94
+ }
95
+ class PgNumericBigInt extends PgColumn {
96
+ static [entityKind] = "PgNumericBigInt";
97
+ precision;
98
+ scale;
99
+ constructor(table, config) {
100
+ super(table, config);
101
+ this.precision = config.precision;
102
+ this.scale = config.scale;
103
+ }
104
+ mapFromDriverValue = BigInt;
105
+ mapToDriverValue = String;
25
106
  getSQLType() {
26
107
  if (this.precision !== void 0 && this.scale !== void 0) {
27
108
  return `numeric(${this.precision}, ${this.scale})`;
@@ -34,12 +115,17 @@ class PgNumeric extends PgColumn {
34
115
  }
35
116
  function numeric(a, b) {
36
117
  const { name, config } = getColumnNameAndConfig(a, b);
37
- return new PgNumericBuilder(name, config?.precision, config?.scale);
118
+ const mode = config?.mode;
119
+ return mode === "number" ? new PgNumericNumberBuilder(name, config?.precision, config?.scale) : mode === "bigint" ? new PgNumericBigIntBuilder(name, config?.precision, config?.scale) : new PgNumericBuilder(name, config?.precision, config?.scale);
38
120
  }
39
121
  const decimal = numeric;
40
122
  export {
41
123
  PgNumeric,
124
+ PgNumericBigInt,
125
+ PgNumericBigIntBuilder,
42
126
  PgNumericBuilder,
127
+ PgNumericNumber,
128
+ PgNumericNumberBuilder,
43
129
  decimal,
44
130
  numeric
45
131
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/columns/numeric.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport type PgNumericBuilderInitial<TName extends string> = PgNumericBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgNumeric';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgNumericBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgNumeric'>> extends PgColumnBuilder<\n\tT,\n\t{\n\t\tprecision: number | undefined;\n\t\tscale: number | undefined;\n\t}\n> {\n\tstatic override readonly [entityKind]: string = 'PgNumericBuilder';\n\n\tconstructor(name: T['name'], precision?: number, scale?: number) {\n\t\tsuper(name, 'string', 'PgNumeric');\n\t\tthis.config.precision = precision;\n\t\tthis.config.scale = scale;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgNumeric<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgNumeric<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class PgNumeric<T extends ColumnBaseConfig<'string', 'PgNumeric'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgNumeric';\n\n\treadonly precision: number | undefined;\n\treadonly scale: number | undefined;\n\n\tconstructor(table: AnyPgTable<{ name: T['tableName'] }>, config: PgNumericBuilder<T>['config']) {\n\t\tsuper(table, config);\n\t\tthis.precision = config.precision;\n\t\tthis.scale = config.scale;\n\t}\n\n\tgetSQLType(): string {\n\t\tif (this.precision !== undefined && this.scale !== undefined) {\n\t\t\treturn `numeric(${this.precision}, ${this.scale})`;\n\t\t} else if (this.precision === undefined) {\n\t\t\treturn 'numeric';\n\t\t} else {\n\t\t\treturn `numeric(${this.precision})`;\n\t\t}\n\t}\n}\n\nexport type PgNumericConfig =\n\t| { precision: number; scale?: number }\n\t| { precision?: number; scale: number }\n\t| { precision: number; scale: number };\n\nexport function numeric(): PgNumericBuilderInitial<''>;\nexport function numeric(\n\tconfig?: PgNumericConfig,\n): PgNumericBuilderInitial<''>;\nexport function numeric<TName extends string>(\n\tname: TName,\n\tconfig?: PgNumericConfig,\n): PgNumericBuilderInitial<TName>;\nexport function numeric(a?: string | PgNumericConfig, b?: PgNumericConfig) {\n\tconst { name, config } = getColumnNameAndConfig<PgNumericConfig>(a, b);\n\treturn new PgNumericBuilder(name, config?.precision, config?.scale);\n}\n\nexport const decimal = numeric;\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,8BAA8B;AACvC,SAAS,UAAU,uBAAuB;AAWnC,MAAM,yBAAmF,gBAM9F;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,WAAoB,OAAgB;AAChE,UAAM,MAAM,UAAU,WAAW;AACjC,SAAK,OAAO,YAAY;AACxB,SAAK,OAAO,QAAQ;AAAA,EACrB;AAAA;AAAA,EAGS,MACR,OAC6C;AAC7C,WAAO,IAAI,UAA2C,OAAO,KAAK,MAA8C;AAAA,EACjH;AACD;AAEO,MAAM,kBAAqE,SAAY;AAAA,EAC7F,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YAAY,OAA6C,QAAuC;AAC/F,UAAM,OAAO,MAAM;AACnB,SAAK,YAAY,OAAO;AACxB,SAAK,QAAQ,OAAO;AAAA,EACrB;AAAA,EAEA,aAAqB;AACpB,QAAI,KAAK,cAAc,UAAa,KAAK,UAAU,QAAW;AAC7D,aAAO,WAAW,KAAK,SAAS,KAAK,KAAK,KAAK;AAAA,IAChD,WAAW,KAAK,cAAc,QAAW;AACxC,aAAO;AAAA,IACR,OAAO;AACN,aAAO,WAAW,KAAK,SAAS;AAAA,IACjC;AAAA,EACD;AACD;AAeO,SAAS,QAAQ,GAA8B,GAAqB;AAC1E,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAwC,GAAG,CAAC;AACrE,SAAO,IAAI,iBAAiB,MAAM,QAAQ,WAAW,QAAQ,KAAK;AACnE;AAEO,MAAM,UAAU;","names":[]}
1
+ {"version":3,"sources":["../../../src/pg-core/columns/numeric.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport type PgNumericBuilderInitial<TName extends string> = PgNumericBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgNumeric';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgNumericBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgNumeric'>> extends PgColumnBuilder<\n\tT,\n\t{\n\t\tprecision: number | undefined;\n\t\tscale: number | undefined;\n\t}\n> {\n\tstatic override readonly [entityKind]: string = 'PgNumericBuilder';\n\n\tconstructor(name: T['name'], precision?: number, scale?: number) {\n\t\tsuper(name, 'string', 'PgNumeric');\n\t\tthis.config.precision = precision;\n\t\tthis.config.scale = scale;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgNumeric<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgNumeric<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class PgNumeric<T extends ColumnBaseConfig<'string', 'PgNumeric'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgNumeric';\n\n\treadonly precision: number | undefined;\n\treadonly scale: number | undefined;\n\n\tconstructor(table: AnyPgTable<{ name: T['tableName'] }>, config: PgNumericBuilder<T>['config']) {\n\t\tsuper(table, config);\n\t\tthis.precision = config.precision;\n\t\tthis.scale = config.scale;\n\t}\n\n\toverride mapFromDriverValue(value: unknown): string {\n\t\tif (typeof value === 'string') return value;\n\n\t\treturn String(value);\n\t}\n\n\tgetSQLType(): string {\n\t\tif (this.precision !== undefined && this.scale !== undefined) {\n\t\t\treturn `numeric(${this.precision}, ${this.scale})`;\n\t\t} else if (this.precision === undefined) {\n\t\t\treturn 'numeric';\n\t\t} else {\n\t\t\treturn `numeric(${this.precision})`;\n\t\t}\n\t}\n}\n\nexport type PgNumericNumberBuilderInitial<TName extends string> = PgNumericNumberBuilder<{\n\tname: TName;\n\tdataType: 'number';\n\tcolumnType: 'PgNumericNumber';\n\tdata: number;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgNumericNumberBuilder<T extends ColumnBuilderBaseConfig<'number', 'PgNumericNumber'>>\n\textends PgColumnBuilder<\n\t\tT,\n\t\t{\n\t\t\tprecision: number | undefined;\n\t\t\tscale: number | undefined;\n\t\t}\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'PgNumericNumberBuilder';\n\n\tconstructor(name: T['name'], precision?: number, scale?: number) {\n\t\tsuper(name, 'number', 'PgNumericNumber');\n\t\tthis.config.precision = precision;\n\t\tthis.config.scale = scale;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgNumericNumber<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgNumericNumber<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class PgNumericNumber<T extends ColumnBaseConfig<'number', 'PgNumericNumber'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgNumericNumber';\n\n\treadonly precision: number | undefined;\n\treadonly scale: number | undefined;\n\n\tconstructor(table: AnyPgTable<{ name: T['tableName'] }>, config: PgNumericNumberBuilder<T>['config']) {\n\t\tsuper(table, config);\n\t\tthis.precision = config.precision;\n\t\tthis.scale = config.scale;\n\t}\n\n\toverride mapFromDriverValue(value: unknown): number {\n\t\tif (typeof value === 'number') return value;\n\n\t\treturn Number(value);\n\t}\n\n\toverride mapToDriverValue = String;\n\n\tgetSQLType(): string {\n\t\tif (this.precision !== undefined && this.scale !== undefined) {\n\t\t\treturn `numeric(${this.precision}, ${this.scale})`;\n\t\t} else if (this.precision === undefined) {\n\t\t\treturn 'numeric';\n\t\t} else {\n\t\t\treturn `numeric(${this.precision})`;\n\t\t}\n\t}\n}\n\nexport type PgNumericBigIntBuilderInitial<TName extends string> = PgNumericBigIntBuilder<{\n\tname: TName;\n\tdataType: 'bigint';\n\tcolumnType: 'PgNumericBigInt';\n\tdata: bigint;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgNumericBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'PgNumericBigInt'>>\n\textends PgColumnBuilder<\n\t\tT,\n\t\t{\n\t\t\tprecision: number | undefined;\n\t\t\tscale: number | undefined;\n\t\t}\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'PgNumericBigIntBuilder';\n\n\tconstructor(name: T['name'], precision?: number, scale?: number) {\n\t\tsuper(name, 'bigint', 'PgNumericBigInt');\n\t\tthis.config.precision = precision;\n\t\tthis.config.scale = scale;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgNumericBigInt<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgNumericBigInt<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class PgNumericBigInt<T extends ColumnBaseConfig<'bigint', 'PgNumericBigInt'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgNumericBigInt';\n\n\treadonly precision: number | undefined;\n\treadonly scale: number | undefined;\n\n\tconstructor(table: AnyPgTable<{ name: T['tableName'] }>, config: PgNumericBigIntBuilder<T>['config']) {\n\t\tsuper(table, config);\n\t\tthis.precision = config.precision;\n\t\tthis.scale = config.scale;\n\t}\n\n\toverride mapFromDriverValue = BigInt;\n\n\toverride mapToDriverValue = String;\n\n\tgetSQLType(): string {\n\t\tif (this.precision !== undefined && this.scale !== undefined) {\n\t\t\treturn `numeric(${this.precision}, ${this.scale})`;\n\t\t} else if (this.precision === undefined) {\n\t\t\treturn 'numeric';\n\t\t} else {\n\t\t\treturn `numeric(${this.precision})`;\n\t\t}\n\t}\n}\n\nexport type PgNumericConfig<T extends 'string' | 'number' | 'bigint' = 'string' | 'number' | 'bigint'> =\n\t| { precision: number; scale?: number; mode?: T }\n\t| { precision?: number; scale: number; mode?: T }\n\t| { precision?: number; scale?: number; mode: T };\n\nexport function numeric<TMode extends 'string' | 'number' | 'bigint'>(\n\tconfig?: PgNumericConfig<TMode>,\n): Equal<TMode, 'number'> extends true ? PgNumericNumberBuilderInitial<''>\n\t: Equal<TMode, 'bigint'> extends true ? PgNumericBigIntBuilderInitial<''>\n\t: PgNumericBuilderInitial<''>;\nexport function numeric<TName extends string, TMode extends 'string' | 'number' | 'bigint'>(\n\tname: TName,\n\tconfig?: PgNumericConfig<TMode>,\n): Equal<TMode, 'number'> extends true ? PgNumericNumberBuilderInitial<TName>\n\t: Equal<TMode, 'bigint'> extends true ? PgNumericBigIntBuilderInitial<TName>\n\t: PgNumericBuilderInitial<TName>;\nexport function numeric(a?: string | PgNumericConfig, b?: PgNumericConfig) {\n\tconst { name, config } = getColumnNameAndConfig<PgNumericConfig>(a, b);\n\tconst mode = config?.mode;\n\treturn mode === 'number'\n\t\t? new PgNumericNumberBuilder(name, config?.precision, config?.scale)\n\t\t: mode === 'bigint'\n\t\t? new PgNumericBigIntBuilder(name, config?.precision, config?.scale)\n\t\t: new PgNumericBuilder(name, config?.precision, config?.scale);\n}\n\nexport const decimal = numeric;\n"],"mappings":"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","names":[]}
@@ -219,7 +219,7 @@ class PgDialect {
219
219
  return import_sql2.sql.join(joinsArray);
220
220
  }
221
221
  buildFromTable(table) {
222
- if ((0, import_entity.is)(table, import_table2.Table) && table[import_table2.Table.Symbol.OriginalName] !== table[import_table2.Table.Symbol.Name]) {
222
+ if ((0, import_entity.is)(table, import_table2.Table) && table[import_table2.Table.Symbol.IsAlias]) {
223
223
  let fullName = import_sql2.sql`${import_sql2.sql.identifier(table[import_table2.Table.Symbol.OriginalName])}`;
224
224
  if (table[import_table2.Table.Symbol.Schema]) {
225
225
  fullName = import_sql2.sql`${import_sql2.sql.identifier(table[import_table2.Table.Symbol.Schema])}.${fullName}`;