drizzle-orm 1.0.0-beta.2-4e5ecef → 1.0.0-beta.2-f9236e3

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 (87) hide show
  1. package/cockroach-core/columns/date.cjs +5 -0
  2. package/cockroach-core/columns/date.cjs.map +1 -1
  3. package/cockroach-core/columns/date.d.cts +2 -1
  4. package/cockroach-core/columns/date.d.ts +2 -1
  5. package/cockroach-core/columns/date.js +5 -0
  6. package/cockroach-core/columns/date.js.map +1 -1
  7. package/cockroach-core/columns/timestamp.cjs +5 -0
  8. package/cockroach-core/columns/timestamp.cjs.map +1 -1
  9. package/cockroach-core/columns/timestamp.d.cts +2 -1
  10. package/cockroach-core/columns/timestamp.d.ts +2 -1
  11. package/cockroach-core/columns/timestamp.js +5 -0
  12. package/cockroach-core/columns/timestamp.js.map +1 -1
  13. package/gel-core/query-builders/query.cjs +4 -2
  14. package/gel-core/query-builders/query.cjs.map +1 -1
  15. package/gel-core/query-builders/query.js +4 -2
  16. package/gel-core/query-builders/query.js.map +1 -1
  17. package/mysql-core/columns/datetime.cjs +5 -0
  18. package/mysql-core/columns/datetime.cjs.map +1 -1
  19. package/mysql-core/columns/datetime.d.cts +2 -1
  20. package/mysql-core/columns/datetime.d.ts +2 -1
  21. package/mysql-core/columns/datetime.js +5 -0
  22. package/mysql-core/columns/datetime.js.map +1 -1
  23. package/mysql-core/columns/timestamp.cjs +5 -0
  24. package/mysql-core/columns/timestamp.cjs.map +1 -1
  25. package/mysql-core/columns/timestamp.d.cts +2 -1
  26. package/mysql-core/columns/timestamp.d.ts +2 -1
  27. package/mysql-core/columns/timestamp.js +5 -0
  28. package/mysql-core/columns/timestamp.js.map +1 -1
  29. package/mysql-core/query-builders/query.cjs +4 -2
  30. package/mysql-core/query-builders/query.cjs.map +1 -1
  31. package/mysql-core/query-builders/query.js +4 -2
  32. package/mysql-core/query-builders/query.js.map +1 -1
  33. package/node-postgres/session.cjs +9 -5
  34. package/node-postgres/session.cjs.map +1 -1
  35. package/node-postgres/session.js +9 -5
  36. package/node-postgres/session.js.map +1 -1
  37. package/package.json +1 -1
  38. package/pg-core/columns/date.cjs +5 -0
  39. package/pg-core/columns/date.cjs.map +1 -1
  40. package/pg-core/columns/date.d.cts +2 -1
  41. package/pg-core/columns/date.d.ts +2 -1
  42. package/pg-core/columns/date.js +5 -0
  43. package/pg-core/columns/date.js.map +1 -1
  44. package/pg-core/columns/timestamp.cjs +7 -2
  45. package/pg-core/columns/timestamp.cjs.map +1 -1
  46. package/pg-core/columns/timestamp.d.cts +2 -1
  47. package/pg-core/columns/timestamp.d.ts +2 -1
  48. package/pg-core/columns/timestamp.js +7 -2
  49. package/pg-core/columns/timestamp.js.map +1 -1
  50. package/pg-core/query-builders/query.cjs +4 -2
  51. package/pg-core/query-builders/query.cjs.map +1 -1
  52. package/pg-core/query-builders/query.js +4 -2
  53. package/pg-core/query-builders/query.js.map +1 -1
  54. package/postgres-js/session.cjs +1 -1
  55. package/postgres-js/session.cjs.map +1 -1
  56. package/postgres-js/session.js +1 -1
  57. package/postgres-js/session.js.map +1 -1
  58. package/singlestore-core/columns/datetime.cjs +5 -0
  59. package/singlestore-core/columns/datetime.cjs.map +1 -1
  60. package/singlestore-core/columns/datetime.d.cts +2 -1
  61. package/singlestore-core/columns/datetime.d.ts +2 -1
  62. package/singlestore-core/columns/datetime.js +5 -0
  63. package/singlestore-core/columns/datetime.js.map +1 -1
  64. package/singlestore-core/columns/timestamp.cjs +5 -0
  65. package/singlestore-core/columns/timestamp.cjs.map +1 -1
  66. package/singlestore-core/columns/timestamp.d.cts +2 -1
  67. package/singlestore-core/columns/timestamp.d.ts +2 -1
  68. package/singlestore-core/columns/timestamp.js +5 -0
  69. package/singlestore-core/columns/timestamp.js.map +1 -1
  70. package/singlestore-core/query-builders/query.cjs +4 -2
  71. package/singlestore-core/query-builders/query.cjs.map +1 -1
  72. package/singlestore-core/query-builders/query.js +4 -2
  73. package/singlestore-core/query-builders/query.js.map +1 -1
  74. package/sqlite-core/columns/integer.cjs +1 -0
  75. package/sqlite-core/columns/integer.cjs.map +1 -1
  76. package/sqlite-core/columns/integer.d.cts +1 -1
  77. package/sqlite-core/columns/integer.d.ts +1 -1
  78. package/sqlite-core/columns/integer.js +1 -0
  79. package/sqlite-core/columns/integer.js.map +1 -1
  80. package/sqlite-core/query-builders/query.cjs +4 -2
  81. package/sqlite-core/query-builders/query.cjs.map +1 -1
  82. package/sqlite-core/query-builders/query.js +4 -2
  83. package/sqlite-core/query-builders/query.js.map +1 -1
  84. package/vercel-postgres/session.cjs +2 -2
  85. package/vercel-postgres/session.cjs.map +1 -1
  86. package/vercel-postgres/session.js +2 -2
  87. package/vercel-postgres/session.js.map +1 -1
@@ -22,7 +22,7 @@ export declare class PgTimestamp<T extends ColumnBaseConfig<'object date'>> exte
22
22
  constructor(table: PgTable<any>, config: PgTimestampBuilder['config']);
23
23
  getSQLType(): string;
24
24
  mapFromDriverValue(value: Date | string): Date;
25
- mapToDriverValue: (value: Date) => string;
25
+ mapToDriverValue(value: Date | string): string;
26
26
  }
27
27
  export declare class PgTimestampStringBuilder extends PgDateColumnBaseBuilder<{
28
28
  dataType: 'string timestamp';
@@ -42,6 +42,7 @@ export declare class PgTimestampString<T extends ColumnBaseConfig<'string timest
42
42
  constructor(table: PgTable<any>, config: PgTimestampStringBuilder['config']);
43
43
  getSQLType(): string;
44
44
  mapFromDriverValue(value: Date | string): string;
45
+ mapToDriverValue(value: Date | string): string;
45
46
  }
46
47
  export type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;
47
48
  export interface PgTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
@@ -22,7 +22,7 @@ export declare class PgTimestamp<T extends ColumnBaseConfig<'object date'>> exte
22
22
  constructor(table: PgTable<any>, config: PgTimestampBuilder['config']);
23
23
  getSQLType(): string;
24
24
  mapFromDriverValue(value: Date | string): Date;
25
- mapToDriverValue: (value: Date) => string;
25
+ mapToDriverValue(value: Date | string): string;
26
26
  }
27
27
  export declare class PgTimestampStringBuilder extends PgDateColumnBaseBuilder<{
28
28
  dataType: 'string timestamp';
@@ -42,6 +42,7 @@ export declare class PgTimestampString<T extends ColumnBaseConfig<'string timest
42
42
  constructor(table: PgTable<any>, config: PgTimestampStringBuilder['config']);
43
43
  getSQLType(): string;
44
44
  mapFromDriverValue(value: Date | string): string;
45
+ mapToDriverValue(value: Date | string): string;
45
46
  }
46
47
  export type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;
47
48
  export interface PgTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
@@ -31,9 +31,10 @@ class PgTimestamp extends PgColumn {
31
31
  if (typeof value === "string") return new Date(this.withTimezone ? value : value + "+0000");
32
32
  return value;
33
33
  }
34
- mapToDriverValue = (value) => {
34
+ mapToDriverValue(value) {
35
+ if (typeof value === "string") return value;
35
36
  return value.toISOString();
36
- };
37
+ }
37
38
  }
38
39
  class PgTimestampStringBuilder extends PgDateColumnBaseBuilder {
39
40
  static [entityKind] = "PgTimestampStringBuilder";
@@ -73,6 +74,10 @@ class PgTimestampString extends PgColumn {
73
74
  }
74
75
  return shortened;
75
76
  }
77
+ mapToDriverValue(value) {
78
+ if (typeof value === "string") return value;
79
+ return value.toISOString();
80
+ }
76
81
  }
77
82
  function timestamp(a, b = {}) {
78
83
  const { name, config } = getColumnNameAndConfig(a, b);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/columns/timestamp.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn } from './common.ts';\nimport { PgDateColumnBaseBuilder } from './date.common.ts';\n\nexport class PgTimestampBuilder extends PgDateColumnBaseBuilder<\n\t{\n\t\tdataType: 'object date';\n\t\tdata: Date;\n\t\tdriverParam: string;\n\t},\n\t{ withTimezone: boolean; precision: number | undefined }\n> {\n\tstatic override readonly [entityKind]: string = 'PgTimestampBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\twithTimezone: boolean,\n\t\tprecision: number | undefined,\n\t) {\n\t\tsuper(name, 'object date', 'PgTimestamp');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgTimestamp(table, this.config as any);\n\t}\n}\n\nexport class PgTimestamp<T extends ColumnBaseConfig<'object date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgTimestamp';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: PgTable<any>, config: PgTimestampBuilder['config']) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.precision === undefined ? '' : ` (${this.precision})`;\n\t\treturn `timestamp${precision}${this.withTimezone ? ' with time zone' : ''}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): Date {\n\t\tif (typeof value === 'string') return new Date(this.withTimezone ? value : value + '+0000');\n\n\t\treturn value;\n\t}\n\n\toverride mapToDriverValue = (value: Date): string => {\n\t\treturn value.toISOString();\n\t};\n}\n\nexport class PgTimestampStringBuilder extends PgDateColumnBaseBuilder<\n\t{\n\t\tdataType: 'string timestamp';\n\t\tdata: string;\n\t\tdriverParam: string;\n\t},\n\t{ withTimezone: boolean; precision: number | undefined }\n> {\n\tstatic override readonly [entityKind]: string = 'PgTimestampStringBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\twithTimezone: boolean,\n\t\tprecision: number | undefined,\n\t) {\n\t\tsuper(name, 'string timestamp', 'PgTimestampString');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgTimestampString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgTimestampString';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: PgTable<any>, config: PgTimestampStringBuilder['config']) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.precision === undefined ? '' : `(${this.precision})`;\n\t\treturn `timestamp${precision}${this.withTimezone ? ' with time zone' : ''}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\n\t\tconst shortened = value.toISOString().slice(0, -1).replace('T', ' ');\n\t\tif (this.withTimezone) {\n\t\t\tconst offset = value.getTimezoneOffset();\n\t\t\tconst sign = offset <= 0 ? '+' : '-';\n\t\t\treturn `${shortened}${sign}${Math.floor(Math.abs(offset) / 60).toString().padStart(2, '0')}`;\n\t\t}\n\n\t\treturn shortened;\n\t}\n}\n\nexport type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface PgTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tprecision?: Precision;\n\twithTimezone?: boolean;\n}\n\nexport function timestamp<TMode extends PgTimestampConfig['mode'] & {}>(\n\tconfig?: PgTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilder : PgTimestampBuilder;\nexport function timestamp<TMode extends PgTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: PgTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilder : PgTimestampBuilder;\nexport function timestamp(a?: string | PgTimestampConfig, b: PgTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<PgTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new PgTimestampStringBuilder(name, config.withTimezone ?? false, config.precision);\n\t}\n\treturn new PgTimestampBuilder(name, config?.withTimezone ?? false, config?.precision);\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,gBAAgB;AACzB,SAAS,+BAA+B;AAEjC,MAAM,2BAA2B,wBAOtC;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,MACA,cACA,WACC;AACD,UAAM,MAAM,eAAe,aAAa;AACxC,SAAK,OAAO,eAAe;AAC3B,SAAK,OAAO,YAAY;AAAA,EACzB;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI,YAAY,OAAO,KAAK,MAAa;AAAA,EACjD;AACD;AAEO,MAAM,oBAA+D,SAAY;AAAA,EACvF,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YAAY,OAAqB,QAAsC;AACtE,UAAM,OAAO,MAAM;AACnB,SAAK,eAAe,OAAO;AAC3B,SAAK,YAAY,OAAO;AAAA,EACzB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,cAAc,SAAY,KAAK,KAAK,KAAK,SAAS;AACzE,WAAO,YAAY,SAAS,GAAG,KAAK,eAAe,oBAAoB,EAAE;AAAA,EAC1E;AAAA,EAES,mBAAmB,OAA4B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO,IAAI,KAAK,KAAK,eAAe,QAAQ,QAAQ,OAAO;AAE1F,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,CAAC,UAAwB;AACpD,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAEO,MAAM,iCAAiC,wBAO5C;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,MACA,cACA,WACC;AACD,UAAM,MAAM,oBAAoB,mBAAmB;AACnD,SAAK,OAAO,eAAe;AAC3B,SAAK,OAAO,YAAY;AAAA,EACzB;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,0BAA0E,SAAY;AAAA,EAClG,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YAAY,OAAqB,QAA4C;AAC5E,UAAM,OAAO,MAAM;AACnB,SAAK,eAAe,OAAO;AAC3B,SAAK,YAAY,OAAO;AAAA,EACzB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,cAAc,SAAY,KAAK,IAAI,KAAK,SAAS;AACxE,WAAO,YAAY,SAAS,GAAG,KAAK,eAAe,oBAAoB,EAAE;AAAA,EAC1E;AAAA,EAES,mBAAmB,OAA8B;AACzD,QAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,UAAM,YAAY,MAAM,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AACnE,QAAI,KAAK,cAAc;AACtB,YAAM,SAAS,MAAM,kBAAkB;AACvC,YAAM,OAAO,UAAU,IAAI,MAAM;AACjC,aAAO,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,IAC3F;AAEA,WAAO;AAAA,EACR;AACD;AAiBO,SAAS,UAAU,GAAgC,IAAuB,CAAC,GAAG;AACpF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAsD,GAAG,CAAC;AACnF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,yBAAyB,MAAM,OAAO,gBAAgB,OAAO,OAAO,SAAS;AAAA,EACzF;AACA,SAAO,IAAI,mBAAmB,MAAM,QAAQ,gBAAgB,OAAO,QAAQ,SAAS;AACrF;","names":[]}
1
+ {"version":3,"sources":["../../../src/pg-core/columns/timestamp.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn } from './common.ts';\nimport { PgDateColumnBaseBuilder } from './date.common.ts';\n\nexport class PgTimestampBuilder extends PgDateColumnBaseBuilder<\n\t{\n\t\tdataType: 'object date';\n\t\tdata: Date;\n\t\tdriverParam: string;\n\t},\n\t{ withTimezone: boolean; precision: number | undefined }\n> {\n\tstatic override readonly [entityKind]: string = 'PgTimestampBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\twithTimezone: boolean,\n\t\tprecision: number | undefined,\n\t) {\n\t\tsuper(name, 'object date', 'PgTimestamp');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgTimestamp(table, this.config as any);\n\t}\n}\n\nexport class PgTimestamp<T extends ColumnBaseConfig<'object date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgTimestamp';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: PgTable<any>, config: PgTimestampBuilder['config']) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.precision === undefined ? '' : ` (${this.precision})`;\n\t\treturn `timestamp${precision}${this.withTimezone ? ' with time zone' : ''}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): Date {\n\t\tif (typeof value === 'string') return new Date(this.withTimezone ? value : value + '+0000');\n\n\t\treturn value;\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString();\n\t}\n}\n\nexport class PgTimestampStringBuilder extends PgDateColumnBaseBuilder<\n\t{\n\t\tdataType: 'string timestamp';\n\t\tdata: string;\n\t\tdriverParam: string;\n\t},\n\t{ withTimezone: boolean; precision: number | undefined }\n> {\n\tstatic override readonly [entityKind]: string = 'PgTimestampStringBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\twithTimezone: boolean,\n\t\tprecision: number | undefined,\n\t) {\n\t\tsuper(name, 'string timestamp', 'PgTimestampString');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgTimestampString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgTimestampString';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: PgTable<any>, config: PgTimestampStringBuilder['config']) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.precision === undefined ? '' : `(${this.precision})`;\n\t\treturn `timestamp${precision}${this.withTimezone ? ' with time zone' : ''}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\n\t\tconst shortened = value.toISOString().slice(0, -1).replace('T', ' ');\n\t\tif (this.withTimezone) {\n\t\t\tconst offset = value.getTimezoneOffset();\n\t\t\tconst sign = offset <= 0 ? '+' : '-';\n\t\t\treturn `${shortened}${sign}${Math.floor(Math.abs(offset) / 60).toString().padStart(2, '0')}`;\n\t\t}\n\n\t\treturn shortened;\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString();\n\t}\n}\n\nexport type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface PgTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tprecision?: Precision;\n\twithTimezone?: boolean;\n}\n\nexport function timestamp<TMode extends PgTimestampConfig['mode'] & {}>(\n\tconfig?: PgTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilder : PgTimestampBuilder;\nexport function timestamp<TMode extends PgTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: PgTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilder : PgTimestampBuilder;\nexport function timestamp(a?: string | PgTimestampConfig, b: PgTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<PgTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new PgTimestampStringBuilder(name, config.withTimezone ?? false, config.precision);\n\t}\n\treturn new PgTimestampBuilder(name, config?.withTimezone ?? false, config?.precision);\n}\n"],"mappings":"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","names":[]}
@@ -82,8 +82,10 @@ class PgRelationalQuery extends import_query_promise.QueryPromise {
82
82
  builtQuery,
83
83
  void 0,
84
84
  name,
85
- (rawRows, mapColumnValue) => {
86
- const rows = rawRows.map((row) => (0, import_relations.mapRelationalRow)(row, query.selection, mapColumnValue, this.parseJson));
85
+ (rows, mapColumnValue) => {
86
+ for (const row of rows) {
87
+ (0, import_relations.mapRelationalRow)(row, query.selection, mapColumnValue, this.parseJson);
88
+ }
87
89
  if (this.mode === "first") {
88
90
  return rows[0];
89
91
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, QueryWithTypings, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { KnownKeysOnly, NeonAuthToken } from '~/utils.ts';\nimport type { PgDialect } from '../dialect.ts';\nimport type { PgPreparedQuery, PgSession, PreparedQueryConfig } from '../session.ts';\nimport type { PgTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'PgRelationalQueryBuilderV2';\n\n\tconstructor(\n\t\tprivate schema: TSchema,\n\t\tprivate table: PgTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: PgDialect,\n\t\tprivate session: PgSession,\n\t\tprivate parseJson: boolean,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'many'> | undefined ?? true,\n\t\t\t'many',\n\t\t\tthis.parseJson,\n\t\t);\n\t}\n\n\tfindFirst<TConfig extends DBQueryConfig<'one', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'one', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig> | undefined> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'one'> | undefined ?? true,\n\t\t\t'first',\n\t\t\tthis.parseJson,\n\t\t);\n\t}\n}\n\nexport class PgRelationalQuery<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'pg'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'PgRelationalQueryV2';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'pg';\n\t\treadonly result: TResult;\n\t};\n\n\tconstructor(\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate table: PgTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: PgDialect,\n\t\tprivate session: PgSession,\n\t\tprivate config: DBQueryConfig<'many' | 'one'> | true,\n\t\tprivate mode: 'many' | 'first',\n\t\tprivate parseJson: boolean,\n\t) {\n\t\tsuper();\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): PgPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\t\treturn this.session.prepareRelationalQuery<PreparedQueryConfig & { execute: TResult }>(\n\t\t\t\tbuiltQuery,\n\t\t\t\tundefined,\n\t\t\t\tname,\n\t\t\t\t(rawRows, mapColumnValue) => {\n\t\t\t\t\tconst rows = rawRows.map((row) => mapRelationalRow(row, query.selection, mapColumnValue, this.parseJson));\n\t\t\t\t\tif (this.mode === 'first') {\n\t\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t\t}\n\t\t\t\t\treturn rows as TResult;\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tprepare(name: string): PgPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn this._prepare(name);\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tschema: this.schema,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\tmode: this.mode,\n\t\t});\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql;\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql);\n\n\t\treturn { query, builtQuery };\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\tprivate authToken?: NeonAuthToken;\n\t/** @internal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\treturn this._prepare().execute(undefined, this.authToken);\n\t\t});\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,2BAA6B;AAC7B,uBAOO;AAGP,qBAAuB;AAMhB,MAAM,uBAGX;AAAA,EAGD,YACS,QACA,OACA,aACA,SACA,SACA,WACP;AANO;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EATH,QAAiB,wBAAU,IAAY;AAAA,EAWvC,SACC,QACmE;AACnE,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA+C;AAAA,MAC/C;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAEA,UACC,QAC6E;AAC7E,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA8C;AAAA,MAC9C;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,0BAAmC,kCAEhD;AAAA,EAQC,YACS,QACA,OACA,aACA,SACA,SACA,QACA,MACA,WACP;AACD,UAAM;AATE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAlBA,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAqBhD,SAAS,MAA4E;AACpF,WAAO,sBAAO,gBAAgB,wBAAwB,MAAM;AAC3D,YAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAE1C,aAAO,KAAK,QAAQ;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAAC,SAAS,mBAAmB;AAC5B,gBAAM,OAAO,QAAQ,IAAI,CAAC,YAAQ,mCAAiB,KAAK,MAAM,WAAW,gBAAgB,KAAK,SAAS,CAAC;AACxG,cAAI,KAAK,SAAS,SAAS;AAC1B,mBAAO,KAAK,CAAC;AAAA,UACd;AACA,iBAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,QAAQ,MAA2E;AAClF,WAAO,KAAK,SAAS,IAAI;AAAA,EAC1B;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,QAAQ,KAAK;AAAA,MACb,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,MAAM,KAAK;AAAA,IACZ,CAAC;AAAA,EACF;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAG;AAEpD,WAAO,EAAE,OAAO,WAAW;AAAA,EAC5B;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAEQ;AAAA;AAAA,EAER,SAAS,OAAuB;AAC/B,SAAK,YAAY;AACjB,WAAO;AAAA,EACR;AAAA,EAES,UAA4B;AACpC,WAAO,sBAAO,gBAAgB,qBAAqB,MAAM;AACxD,aAAO,KAAK,SAAS,EAAE,QAAQ,QAAW,KAAK,SAAS;AAAA,IACzD,CAAC;AAAA,EACF;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/pg-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, QueryWithTypings, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { KnownKeysOnly, NeonAuthToken } from '~/utils.ts';\nimport type { PgDialect } from '../dialect.ts';\nimport type { PgPreparedQuery, PgSession, PreparedQueryConfig } from '../session.ts';\nimport type { PgTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'PgRelationalQueryBuilderV2';\n\n\tconstructor(\n\t\tprivate schema: TSchema,\n\t\tprivate table: PgTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: PgDialect,\n\t\tprivate session: PgSession,\n\t\tprivate parseJson: boolean,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'many'> | undefined ?? true,\n\t\t\t'many',\n\t\t\tthis.parseJson,\n\t\t);\n\t}\n\n\tfindFirst<TConfig extends DBQueryConfig<'one', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'one', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig> | undefined> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'one'> | undefined ?? true,\n\t\t\t'first',\n\t\t\tthis.parseJson,\n\t\t);\n\t}\n}\n\nexport class PgRelationalQuery<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'pg'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'PgRelationalQueryV2';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'pg';\n\t\treadonly result: TResult;\n\t};\n\n\tconstructor(\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate table: PgTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: PgDialect,\n\t\tprivate session: PgSession,\n\t\tprivate config: DBQueryConfig<'many' | 'one'> | true,\n\t\tprivate mode: 'many' | 'first',\n\t\tprivate parseJson: boolean,\n\t) {\n\t\tsuper();\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): PgPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\t\treturn this.session.prepareRelationalQuery<PreparedQueryConfig & { execute: TResult }>(\n\t\t\t\tbuiltQuery,\n\t\t\t\tundefined,\n\t\t\t\tname,\n\t\t\t\t(rows, mapColumnValue) => {\n\t\t\t\t\tfor (const row of rows) {\n\t\t\t\t\t\tmapRelationalRow(row, query.selection, mapColumnValue, this.parseJson);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.mode === 'first') {\n\t\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t\t}\n\t\t\t\t\treturn rows as TResult;\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tprepare(name: string): PgPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn this._prepare(name);\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tschema: this.schema,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\tmode: this.mode,\n\t\t});\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql;\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql);\n\n\t\treturn { query, builtQuery };\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\tprivate authToken?: NeonAuthToken;\n\t/** @internal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\treturn this._prepare().execute(undefined, this.authToken);\n\t\t});\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,2BAA6B;AAC7B,uBAOO;AAGP,qBAAuB;AAMhB,MAAM,uBAGX;AAAA,EAGD,YACS,QACA,OACA,aACA,SACA,SACA,WACP;AANO;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EATH,QAAiB,wBAAU,IAAY;AAAA,EAWvC,SACC,QACmE;AACnE,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA+C;AAAA,MAC/C;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAEA,UACC,QAC6E;AAC7E,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA8C;AAAA,MAC9C;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,0BAAmC,kCAEhD;AAAA,EAQC,YACS,QACA,OACA,aACA,SACA,SACA,QACA,MACA,WACP;AACD,UAAM;AATE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAlBA,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAqBhD,SAAS,MAA4E;AACpF,WAAO,sBAAO,gBAAgB,wBAAwB,MAAM;AAC3D,YAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAE1C,aAAO,KAAK,QAAQ;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAAC,MAAM,mBAAmB;AACzB,qBAAW,OAAO,MAAM;AACvB,mDAAiB,KAAK,MAAM,WAAW,gBAAgB,KAAK,SAAS;AAAA,UACtE;AACA,cAAI,KAAK,SAAS,SAAS;AAC1B,mBAAO,KAAK,CAAC;AAAA,UACd;AACA,iBAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,QAAQ,MAA2E;AAClF,WAAO,KAAK,SAAS,IAAI;AAAA,EAC1B;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,QAAQ,KAAK;AAAA,MACb,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,MAAM,KAAK;AAAA,IACZ,CAAC;AAAA,EACF;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAG;AAEpD,WAAO,EAAE,OAAO,WAAW;AAAA,EAC5B;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAEQ;AAAA;AAAA,EAER,SAAS,OAAuB;AAC/B,SAAK,YAAY;AACjB,WAAO;AAAA,EACR;AAAA,EAES,UAA4B;AACpC,WAAO,sBAAO,gBAAgB,qBAAqB,MAAM;AACxD,aAAO,KAAK,SAAS,EAAE,QAAQ,QAAW,KAAK,SAAS;AAAA,IACzD,CAAC;AAAA,EACF;AACD;","names":[]}
@@ -60,8 +60,10 @@ class PgRelationalQuery extends QueryPromise {
60
60
  builtQuery,
61
61
  void 0,
62
62
  name,
63
- (rawRows, mapColumnValue) => {
64
- const rows = rawRows.map((row) => mapRelationalRow(row, query.selection, mapColumnValue, this.parseJson));
63
+ (rows, mapColumnValue) => {
64
+ for (const row of rows) {
65
+ mapRelationalRow(row, query.selection, mapColumnValue, this.parseJson);
66
+ }
65
67
  if (this.mode === "first") {
66
68
  return rows[0];
67
69
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, QueryWithTypings, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { KnownKeysOnly, NeonAuthToken } from '~/utils.ts';\nimport type { PgDialect } from '../dialect.ts';\nimport type { PgPreparedQuery, PgSession, PreparedQueryConfig } from '../session.ts';\nimport type { PgTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'PgRelationalQueryBuilderV2';\n\n\tconstructor(\n\t\tprivate schema: TSchema,\n\t\tprivate table: PgTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: PgDialect,\n\t\tprivate session: PgSession,\n\t\tprivate parseJson: boolean,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'many'> | undefined ?? true,\n\t\t\t'many',\n\t\t\tthis.parseJson,\n\t\t);\n\t}\n\n\tfindFirst<TConfig extends DBQueryConfig<'one', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'one', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig> | undefined> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'one'> | undefined ?? true,\n\t\t\t'first',\n\t\t\tthis.parseJson,\n\t\t);\n\t}\n}\n\nexport class PgRelationalQuery<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'pg'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'PgRelationalQueryV2';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'pg';\n\t\treadonly result: TResult;\n\t};\n\n\tconstructor(\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate table: PgTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: PgDialect,\n\t\tprivate session: PgSession,\n\t\tprivate config: DBQueryConfig<'many' | 'one'> | true,\n\t\tprivate mode: 'many' | 'first',\n\t\tprivate parseJson: boolean,\n\t) {\n\t\tsuper();\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): PgPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\t\treturn this.session.prepareRelationalQuery<PreparedQueryConfig & { execute: TResult }>(\n\t\t\t\tbuiltQuery,\n\t\t\t\tundefined,\n\t\t\t\tname,\n\t\t\t\t(rawRows, mapColumnValue) => {\n\t\t\t\t\tconst rows = rawRows.map((row) => mapRelationalRow(row, query.selection, mapColumnValue, this.parseJson));\n\t\t\t\t\tif (this.mode === 'first') {\n\t\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t\t}\n\t\t\t\t\treturn rows as TResult;\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tprepare(name: string): PgPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn this._prepare(name);\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tschema: this.schema,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\tmode: this.mode,\n\t\t});\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql;\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql);\n\n\t\treturn { query, builtQuery };\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\tprivate authToken?: NeonAuthToken;\n\t/** @internal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\treturn this._prepare().execute(undefined, this.authToken);\n\t\t});\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B;AAAA,EAIC;AAAA,OAGM;AAGP,SAAS,cAAc;AAMhB,MAAM,uBAGX;AAAA,EAGD,YACS,QACA,OACA,aACA,SACA,SACA,WACP;AANO;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EATH,QAAiB,UAAU,IAAY;AAAA,EAWvC,SACC,QACmE;AACnE,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA+C;AAAA,MAC/C;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAEA,UACC,QAC6E;AAC7E,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA8C;AAAA,MAC9C;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,0BAAmC,aAEhD;AAAA,EAQC,YACS,QACA,OACA,aACA,SACA,SACA,QACA,MACA,WACP;AACD,UAAM;AATE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAlBA,QAA0B,UAAU,IAAY;AAAA;AAAA,EAqBhD,SAAS,MAA4E;AACpF,WAAO,OAAO,gBAAgB,wBAAwB,MAAM;AAC3D,YAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAE1C,aAAO,KAAK,QAAQ;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAAC,SAAS,mBAAmB;AAC5B,gBAAM,OAAO,QAAQ,IAAI,CAAC,QAAQ,iBAAiB,KAAK,MAAM,WAAW,gBAAgB,KAAK,SAAS,CAAC;AACxG,cAAI,KAAK,SAAS,SAAS;AAC1B,mBAAO,KAAK,CAAC;AAAA,UACd;AACA,iBAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,QAAQ,MAA2E;AAClF,WAAO,KAAK,SAAS,IAAI;AAAA,EAC1B;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,QAAQ,KAAK;AAAA,MACb,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,MAAM,KAAK;AAAA,IACZ,CAAC;AAAA,EACF;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAG;AAEpD,WAAO,EAAE,OAAO,WAAW;AAAA,EAC5B;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAEQ;AAAA;AAAA,EAER,SAAS,OAAuB;AAC/B,SAAK,YAAY;AACjB,WAAO;AAAA,EACR;AAAA,EAES,UAA4B;AACpC,WAAO,OAAO,gBAAgB,qBAAqB,MAAM;AACxD,aAAO,KAAK,SAAS,EAAE,QAAQ,QAAW,KAAK,SAAS;AAAA,IACzD,CAAC;AAAA,EACF;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/pg-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, QueryWithTypings, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { KnownKeysOnly, NeonAuthToken } from '~/utils.ts';\nimport type { PgDialect } from '../dialect.ts';\nimport type { PgPreparedQuery, PgSession, PreparedQueryConfig } from '../session.ts';\nimport type { PgTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'PgRelationalQueryBuilderV2';\n\n\tconstructor(\n\t\tprivate schema: TSchema,\n\t\tprivate table: PgTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: PgDialect,\n\t\tprivate session: PgSession,\n\t\tprivate parseJson: boolean,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'many'> | undefined ?? true,\n\t\t\t'many',\n\t\t\tthis.parseJson,\n\t\t);\n\t}\n\n\tfindFirst<TConfig extends DBQueryConfig<'one', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'one', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig> | undefined> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'one'> | undefined ?? true,\n\t\t\t'first',\n\t\t\tthis.parseJson,\n\t\t);\n\t}\n}\n\nexport class PgRelationalQuery<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'pg'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'PgRelationalQueryV2';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'pg';\n\t\treadonly result: TResult;\n\t};\n\n\tconstructor(\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate table: PgTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: PgDialect,\n\t\tprivate session: PgSession,\n\t\tprivate config: DBQueryConfig<'many' | 'one'> | true,\n\t\tprivate mode: 'many' | 'first',\n\t\tprivate parseJson: boolean,\n\t) {\n\t\tsuper();\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): PgPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\t\treturn this.session.prepareRelationalQuery<PreparedQueryConfig & { execute: TResult }>(\n\t\t\t\tbuiltQuery,\n\t\t\t\tundefined,\n\t\t\t\tname,\n\t\t\t\t(rows, mapColumnValue) => {\n\t\t\t\t\tfor (const row of rows) {\n\t\t\t\t\t\tmapRelationalRow(row, query.selection, mapColumnValue, this.parseJson);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.mode === 'first') {\n\t\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t\t}\n\t\t\t\t\treturn rows as TResult;\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tprepare(name: string): PgPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn this._prepare(name);\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tschema: this.schema,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\tmode: this.mode,\n\t\t});\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql;\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql);\n\n\t\treturn { query, builtQuery };\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\tprivate authToken?: NeonAuthToken;\n\t/** @internal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\treturn this._prepare().execute(undefined, this.authToken);\n\t\t});\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B;AAAA,EAIC;AAAA,OAGM;AAGP,SAAS,cAAc;AAMhB,MAAM,uBAGX;AAAA,EAGD,YACS,QACA,OACA,aACA,SACA,SACA,WACP;AANO;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EATH,QAAiB,UAAU,IAAY;AAAA,EAWvC,SACC,QACmE;AACnE,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA+C;AAAA,MAC/C;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAEA,UACC,QAC6E;AAC7E,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA8C;AAAA,MAC9C;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,0BAAmC,aAEhD;AAAA,EAQC,YACS,QACA,OACA,aACA,SACA,SACA,QACA,MACA,WACP;AACD,UAAM;AATE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAlBA,QAA0B,UAAU,IAAY;AAAA;AAAA,EAqBhD,SAAS,MAA4E;AACpF,WAAO,OAAO,gBAAgB,wBAAwB,MAAM;AAC3D,YAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAE1C,aAAO,KAAK,QAAQ;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAAC,MAAM,mBAAmB;AACzB,qBAAW,OAAO,MAAM;AACvB,6BAAiB,KAAK,MAAM,WAAW,gBAAgB,KAAK,SAAS;AAAA,UACtE;AACA,cAAI,KAAK,SAAS,SAAS;AAC1B,mBAAO,KAAK,CAAC;AAAA,UACd;AACA,iBAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,QAAQ,MAA2E;AAClF,WAAO,KAAK,SAAS,IAAI;AAAA,EAC1B;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,QAAQ,KAAK;AAAA,MACb,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,MAAM,KAAK;AAAA,IACZ,CAAC;AAAA,EACF;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAG;AAEpD,WAAO,EAAE,OAAO,WAAW;AAAA,EAC5B;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAEQ;AAAA;AAAA,EAER,SAAS,OAAuB;AAC/B,SAAK,YAAY;AACjB,WAAO;AAAA,EACR;AAAA,EAES,UAA4B;AACpC,WAAO,OAAO,gBAAgB,qBAAqB,MAAM;AACxD,aAAO,KAAK,SAAS,EAAE,QAAQ,QAAW,KAAK,SAAS;AAAA,IACzD,CAAC;AAAA,EACF;AACD;","names":[]}
@@ -92,7 +92,7 @@ class PostgresJsPreparedQuery extends import_session.PgPreparedQuery {
92
92
  return client.unsafe(query, params);
93
93
  });
94
94
  return import_tracing.tracer.startActiveSpan("drizzle.mapResponse", () => {
95
- return customResultMapper(rows);
95
+ return customResultMapper(Object.values(rows));
96
96
  });
97
97
  });
98
98
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres-js/session.ts"],"sourcesContent":["import type { Row, RowList, Sql, TransactionSql } from 'postgres';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class PostgresJsPreparedQuery<\n\tT extends PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Sql,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\t\treturn this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.unsafe(query, params as any[]);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.unsafe(query, params as any[]).values();\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? (customResultMapper as (rows: unknown[][]) => T['execute'])(rows)\n\t\t\t\t\t: rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { queryString: query, client, customResultMapper } = this;\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn client.unsafe(query, params as any[]);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn this.client.unsafe(this.queryString, params as any[]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface PostgresJsSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class PostgresJsSession<\n\tTSQL extends Sql,\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsSession';\n\n\tlogger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tpublic client: TSQL,\n\t\tdialect: PgDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\t/** @internal */\n\t\treadonly options: PostgresJsSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tquery(query: string, params: unknown[]): Promise<RowList<Row[]>> {\n\t\tthis.logger.logQuery(query, params);\n\t\treturn this.client.unsafe(query, params as any[]).values();\n\t}\n\n\tqueryObjects<T extends Row>(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<RowList<T[]>> {\n\t\treturn this.client.unsafe(query, params as any[]);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T> {\n\t\treturn this.client.begin(async (client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction(this.dialect, session, this.schema, this.relations);\n\t\t\tif (config) {\n\t\t\t\tawait tx.setTransaction(config);\n\t\t\t}\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport class PostgresJsTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgTransaction<PostgresJsQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\t/** @internal */\n\t\toverride readonly session: PostgresJsSession<TransactionSql, TFullSchema, TRelations, TSchema>,\n\t\tschema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\trelations: TRelations,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, relations, schema, nestedIndex);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn this.session.client.savepoint((client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.session.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.relations,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport interface PostgresJsQueryResultHKT extends PgQueryResultHKT {\n\ttype: RowList<Assume<this['row'], Row>[]>;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/postgres-js/session.ts"],"sourcesContent":["import type { Row, RowList, Sql, TransactionSql } from 'postgres';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class PostgresJsPreparedQuery<\n\tT extends PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Sql,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\t\treturn this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.unsafe(query, params as any[]);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.unsafe(query, params as any[]).values();\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? (customResultMapper as (rows: unknown[][]) => T['execute'])(rows)\n\t\t\t\t\t: rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { queryString: query, client, customResultMapper } = this;\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn client.unsafe(query, params as any[]);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(Object.values(rows));\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn this.client.unsafe(this.queryString, params as any[]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface PostgresJsSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class PostgresJsSession<\n\tTSQL extends Sql,\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsSession';\n\n\tlogger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tpublic client: TSQL,\n\t\tdialect: PgDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\t/** @internal */\n\t\treadonly options: PostgresJsSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tquery(query: string, params: unknown[]): Promise<RowList<Row[]>> {\n\t\tthis.logger.logQuery(query, params);\n\t\treturn this.client.unsafe(query, params as any[]).values();\n\t}\n\n\tqueryObjects<T extends Row>(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<RowList<T[]>> {\n\t\treturn this.client.unsafe(query, params as any[]);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T> {\n\t\treturn this.client.begin(async (client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction(this.dialect, session, this.schema, this.relations);\n\t\t\tif (config) {\n\t\t\t\tawait tx.setTransaction(config);\n\t\t\t}\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport class PostgresJsTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgTransaction<PostgresJsQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\t/** @internal */\n\t\toverride readonly session: PostgresJsSession<TransactionSql, TFullSchema, TRelations, TSchema>,\n\t\tschema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\trelations: TRelations,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, relations, schema, nestedIndex);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn this.session.client.savepoint((client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.session.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.relations,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport interface PostgresJsQueryResultHKT extends PgQueryResultHKT {\n\ttype: RowList<Assume<this['row'], Row>[]>;\n}\n"],"mappings":"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","names":[]}
@@ -67,7 +67,7 @@ class PostgresJsPreparedQuery extends PgPreparedQuery {
67
67
  return client.unsafe(query, params);
68
68
  });
69
69
  return tracer.startActiveSpan("drizzle.mapResponse", () => {
70
- return customResultMapper(rows);
70
+ return customResultMapper(Object.values(rows));
71
71
  });
72
72
  });
73
73
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres-js/session.ts"],"sourcesContent":["import type { Row, RowList, Sql, TransactionSql } from 'postgres';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class PostgresJsPreparedQuery<\n\tT extends PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Sql,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\t\treturn this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.unsafe(query, params as any[]);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.unsafe(query, params as any[]).values();\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? (customResultMapper as (rows: unknown[][]) => T['execute'])(rows)\n\t\t\t\t\t: rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { queryString: query, client, customResultMapper } = this;\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn client.unsafe(query, params as any[]);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn this.client.unsafe(this.queryString, params as any[]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface PostgresJsSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class PostgresJsSession<\n\tTSQL extends Sql,\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsSession';\n\n\tlogger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tpublic client: TSQL,\n\t\tdialect: PgDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\t/** @internal */\n\t\treadonly options: PostgresJsSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tquery(query: string, params: unknown[]): Promise<RowList<Row[]>> {\n\t\tthis.logger.logQuery(query, params);\n\t\treturn this.client.unsafe(query, params as any[]).values();\n\t}\n\n\tqueryObjects<T extends Row>(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<RowList<T[]>> {\n\t\treturn this.client.unsafe(query, params as any[]);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T> {\n\t\treturn this.client.begin(async (client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction(this.dialect, session, this.schema, this.relations);\n\t\t\tif (config) {\n\t\t\t\tawait tx.setTransaction(config);\n\t\t\t}\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport class PostgresJsTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgTransaction<PostgresJsQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\t/** @internal */\n\t\toverride readonly session: PostgresJsSession<TransactionSql, TFullSchema, TRelations, TSchema>,\n\t\tschema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\trelations: TRelations,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, relations, schema, nestedIndex);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn this.session.client.savepoint((client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.session.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.relations,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport interface PostgresJsQueryResultHKT extends PgQueryResultHKT {\n\ttype: RowList<Assume<this['row'], Row>[]>;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/postgres-js/session.ts"],"sourcesContent":["import type { Row, RowList, Sql, TransactionSql } from 'postgres';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class PostgresJsPreparedQuery<\n\tT extends PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Sql,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\t\treturn this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.unsafe(query, params as any[]);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.unsafe(query, params as any[]).values();\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? (customResultMapper as (rows: unknown[][]) => T['execute'])(rows)\n\t\t\t\t\t: rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { queryString: query, client, customResultMapper } = this;\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn client.unsafe(query, params as any[]);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(Object.values(rows));\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn this.client.unsafe(this.queryString, params as any[]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface PostgresJsSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class PostgresJsSession<\n\tTSQL extends Sql,\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsSession';\n\n\tlogger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tpublic client: TSQL,\n\t\tdialect: PgDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\t/** @internal */\n\t\treadonly options: PostgresJsSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tquery(query: string, params: unknown[]): Promise<RowList<Row[]>> {\n\t\tthis.logger.logQuery(query, params);\n\t\treturn this.client.unsafe(query, params as any[]).values();\n\t}\n\n\tqueryObjects<T extends Row>(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<RowList<T[]>> {\n\t\treturn this.client.unsafe(query, params as any[]);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T> {\n\t\treturn this.client.begin(async (client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction(this.dialect, session, this.schema, this.relations);\n\t\t\tif (config) {\n\t\t\t\tawait tx.setTransaction(config);\n\t\t\t}\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport class PostgresJsTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgTransaction<PostgresJsQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\t/** @internal */\n\t\toverride readonly session: PostgresJsSession<TransactionSql, TFullSchema, TRelations, TSchema>,\n\t\tschema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\trelations: TRelations,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, relations, schema, nestedIndex);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn this.session.client.savepoint((client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.session.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.relations,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport interface PostgresJsQueryResultHKT extends PgQueryResultHKT {\n\ttype: RowList<Assume<this['row'], Row>[]>;\n}\n"],"mappings":"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","names":[]}
@@ -54,6 +54,7 @@ class SingleStoreDateTime extends import_common.SingleStoreColumn {
54
54
  return `datetime`;
55
55
  }
56
56
  mapToDriverValue(value) {
57
+ if (typeof value === "string") return value;
57
58
  return value.toISOString().replace("T", " ").replace("Z", "");
58
59
  }
59
60
  mapFromDriverValue(value) {
@@ -85,6 +86,10 @@ class SingleStoreDateTimeString extends import_common.SingleStoreColumn {
85
86
  getSQLType() {
86
87
  return `datetime`;
87
88
  }
89
+ mapToDriverValue(value) {
90
+ if (typeof value === "string") return value;
91
+ return value.toISOString().replace("T", " ").replace("Z", "");
92
+ }
88
93
  }
89
94
  function datetime(a, b) {
90
95
  const { name, config } = (0, import_utils.getColumnNameAndConfig)(a, b);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/singlestore-core/columns/datetime.ts"],"sourcesContent":["import type { GeneratedColumnConfig, HasGenerated } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySingleStoreTable, SingleStoreTable } from '~/singlestore-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreColumn, SingleStoreColumnBuilder, type SingleStoreGeneratedColumnConfig } from './common.ts';\n\nexport class SingleStoreDateTimeBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tas: SQL | (() => SQL) | this['_']['data'],\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tconfig?: SingleStoreGeneratedColumnConfig,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreDateTime');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTime(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTime<T extends ColumnBaseConfig<'object date'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTime';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\n\t}\n\n\toverride mapToDriverValue(value: Date): unknown {\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value.replace(' ', 'T') + 'Z');\n\t}\n}\n\nexport class SingleStoreDateTimeStringBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'string datetime';\n\tdata: string;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t_as: SQL | (() => SQL) | this['_']['data'],\n\t\t_config?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string datetime', 'SingleStoreDateTimeString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTimeString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTimeString<T extends ColumnBaseConfig<'string datetime'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeString';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\n\t}\n}\n\nexport interface SingleStoreDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime(a?: string | SingleStoreDatetimeConfig, b?: SingleStoreDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreDateTimeStringBuilder(name);\n\t}\n\treturn new SingleStoreDateTimeBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAG3B,mBAAmD;AACnD,oBAAmG;AAE5F,MAAM,mCAAmC,uCAIlB;AAAA;AAAA,EAEpB,kBAER,IAEA,QACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,qBAAqB;AAAA,EACjD;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAuE,gCAAqB;AAAA,EACxG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAAsB;AAC/C,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAAA,EAC9C;AACD;AAEO,MAAM,yCAAyC,uCAIxB;AAAA;AAAA,EAEpB,kBACR,KACA,SACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,mBAAmB,2BAA2B;AAAA,EAC3D;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kCAAiF,gCAAqB;AAAA,EAClH,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAeO,SAAS,SAAS,GAAwC,GAA+B;AAC/F,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA8D,GAAG,CAAC;AAC3F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,iCAAiC,IAAI;AAAA,EACjD;AACA,SAAO,IAAI,2BAA2B,IAAI;AAC3C;","names":[]}
1
+ {"version":3,"sources":["../../../src/singlestore-core/columns/datetime.ts"],"sourcesContent":["import type { GeneratedColumnConfig, HasGenerated } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySingleStoreTable, SingleStoreTable } from '~/singlestore-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreColumn, SingleStoreColumnBuilder, type SingleStoreGeneratedColumnConfig } from './common.ts';\n\nexport class SingleStoreDateTimeBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tas: SQL | (() => SQL) | this['_']['data'],\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tconfig?: SingleStoreGeneratedColumnConfig,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreDateTime');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTime(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTime<T extends ColumnBaseConfig<'object date'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTime';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value.replace(' ', 'T') + 'Z');\n\t}\n}\n\nexport class SingleStoreDateTimeStringBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'string datetime';\n\tdata: string;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t_as: SQL | (() => SQL) | this['_']['data'],\n\t\t_config?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string datetime', 'SingleStoreDateTimeString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTimeString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTimeString<T extends ColumnBaseConfig<'string datetime'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeString';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n}\n\nexport interface SingleStoreDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime(a?: string | SingleStoreDatetimeConfig, b?: SingleStoreDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreDateTimeStringBuilder(name);\n\t}\n\treturn new SingleStoreDateTimeBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAG3B,mBAAmD;AACnD,oBAAmG;AAE5F,MAAM,mCAAmC,uCAIlB;AAAA;AAAA,EAEpB,kBAER,IAEA,QACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,qBAAqB;AAAA,EACjD;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAuE,gCAAqB;AAAA,EACxG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAAA,EAC9C;AACD;AAEO,MAAM,yCAAyC,uCAIxB;AAAA;AAAA,EAEpB,kBACR,KACA,SACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,mBAAmB,2BAA2B;AAAA,EAC3D;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kCAAiF,gCAAqB;AAAA,EAClH,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AACD;AAeO,SAAS,SAAS,GAAwC,GAA+B;AAC/F,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA8D,GAAG,CAAC;AAC3F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,iCAAiC,IAAI;AAAA,EACjD;AACA,SAAO,IAAI,2BAA2B,IAAI;AAC3C;","names":[]}
@@ -22,7 +22,7 @@ export declare class SingleStoreDateTime<T extends ColumnBaseConfig<'object date
22
22
  name: T['tableName'];
23
23
  }>, config: SingleStoreDateTimeBuilder['config']);
24
24
  getSQLType(): string;
25
- mapToDriverValue(value: Date): unknown;
25
+ mapToDriverValue(value: Date | string): string;
26
26
  mapFromDriverValue(value: string): Date;
27
27
  }
28
28
  export declare class SingleStoreDateTimeStringBuilder extends SingleStoreColumnBuilder<{
@@ -42,6 +42,7 @@ export declare class SingleStoreDateTimeString<T extends ColumnBaseConfig<'strin
42
42
  name: T['tableName'];
43
43
  }>, config: SingleStoreDateTimeStringBuilder['config']);
44
44
  getSQLType(): string;
45
+ mapToDriverValue(value: Date | string): string;
45
46
  }
46
47
  export interface SingleStoreDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
47
48
  mode?: TMode;
@@ -22,7 +22,7 @@ export declare class SingleStoreDateTime<T extends ColumnBaseConfig<'object date
22
22
  name: T['tableName'];
23
23
  }>, config: SingleStoreDateTimeBuilder['config']);
24
24
  getSQLType(): string;
25
- mapToDriverValue(value: Date): unknown;
25
+ mapToDriverValue(value: Date | string): string;
26
26
  mapFromDriverValue(value: string): Date;
27
27
  }
28
28
  export declare class SingleStoreDateTimeStringBuilder extends SingleStoreColumnBuilder<{
@@ -42,6 +42,7 @@ export declare class SingleStoreDateTimeString<T extends ColumnBaseConfig<'strin
42
42
  name: T['tableName'];
43
43
  }>, config: SingleStoreDateTimeStringBuilder['config']);
44
44
  getSQLType(): string;
45
+ mapToDriverValue(value: Date | string): string;
45
46
  }
46
47
  export interface SingleStoreDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
47
48
  mode?: TMode;
@@ -27,6 +27,7 @@ class SingleStoreDateTime extends SingleStoreColumn {
27
27
  return `datetime`;
28
28
  }
29
29
  mapToDriverValue(value) {
30
+ if (typeof value === "string") return value;
30
31
  return value.toISOString().replace("T", " ").replace("Z", "");
31
32
  }
32
33
  mapFromDriverValue(value) {
@@ -58,6 +59,10 @@ class SingleStoreDateTimeString extends SingleStoreColumn {
58
59
  getSQLType() {
59
60
  return `datetime`;
60
61
  }
62
+ mapToDriverValue(value) {
63
+ if (typeof value === "string") return value;
64
+ return value.toISOString().replace("T", " ").replace("Z", "");
65
+ }
61
66
  }
62
67
  function datetime(a, b) {
63
68
  const { name, config } = getColumnNameAndConfig(a, b);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/singlestore-core/columns/datetime.ts"],"sourcesContent":["import type { GeneratedColumnConfig, HasGenerated } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySingleStoreTable, SingleStoreTable } from '~/singlestore-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreColumn, SingleStoreColumnBuilder, type SingleStoreGeneratedColumnConfig } from './common.ts';\n\nexport class SingleStoreDateTimeBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tas: SQL | (() => SQL) | this['_']['data'],\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tconfig?: SingleStoreGeneratedColumnConfig,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreDateTime');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTime(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTime<T extends ColumnBaseConfig<'object date'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTime';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\n\t}\n\n\toverride mapToDriverValue(value: Date): unknown {\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value.replace(' ', 'T') + 'Z');\n\t}\n}\n\nexport class SingleStoreDateTimeStringBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'string datetime';\n\tdata: string;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t_as: SQL | (() => SQL) | this['_']['data'],\n\t\t_config?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string datetime', 'SingleStoreDateTimeString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTimeString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTimeString<T extends ColumnBaseConfig<'string datetime'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeString';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\n\t}\n}\n\nexport interface SingleStoreDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime(a?: string | SingleStoreDatetimeConfig, b?: SingleStoreDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreDateTimeStringBuilder(name);\n\t}\n\treturn new SingleStoreDateTimeBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAG3B,SAAqB,8BAA8B;AACnD,SAAS,mBAAmB,gCAAuE;AAE5F,MAAM,mCAAmC,yBAIlB;AAAA;AAAA,EAEpB,kBAER,IAEA,QACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,qBAAqB;AAAA,EACjD;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAuE,kBAAqB;AAAA,EACxG,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAAsB;AAC/C,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAAA,EAC9C;AACD;AAEO,MAAM,yCAAyC,yBAIxB;AAAA;AAAA,EAEpB,kBACR,KACA,SACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,mBAAmB,2BAA2B;AAAA,EAC3D;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kCAAiF,kBAAqB;AAAA,EAClH,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAeO,SAAS,SAAS,GAAwC,GAA+B;AAC/F,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA8D,GAAG,CAAC;AAC3F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,iCAAiC,IAAI;AAAA,EACjD;AACA,SAAO,IAAI,2BAA2B,IAAI;AAC3C;","names":[]}
1
+ {"version":3,"sources":["../../../src/singlestore-core/columns/datetime.ts"],"sourcesContent":["import type { GeneratedColumnConfig, HasGenerated } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySingleStoreTable, SingleStoreTable } from '~/singlestore-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreColumn, SingleStoreColumnBuilder, type SingleStoreGeneratedColumnConfig } from './common.ts';\n\nexport class SingleStoreDateTimeBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tas: SQL | (() => SQL) | this['_']['data'],\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tconfig?: SingleStoreGeneratedColumnConfig,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreDateTime');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTime(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTime<T extends ColumnBaseConfig<'object date'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTime';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value.replace(' ', 'T') + 'Z');\n\t}\n}\n\nexport class SingleStoreDateTimeStringBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'string datetime';\n\tdata: string;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t_as: SQL | (() => SQL) | this['_']['data'],\n\t\t_config?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string datetime', 'SingleStoreDateTimeString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTimeString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTimeString<T extends ColumnBaseConfig<'string datetime'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeString';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n}\n\nexport interface SingleStoreDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime(a?: string | SingleStoreDatetimeConfig, b?: SingleStoreDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreDateTimeStringBuilder(name);\n\t}\n\treturn new SingleStoreDateTimeBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAG3B,SAAqB,8BAA8B;AACnD,SAAS,mBAAmB,gCAAuE;AAE5F,MAAM,mCAAmC,yBAIlB;AAAA;AAAA,EAEpB,kBAER,IAEA,QACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,qBAAqB;AAAA,EACjD;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAuE,kBAAqB;AAAA,EACxG,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAAA,EAC9C;AACD;AAEO,MAAM,yCAAyC,yBAIxB;AAAA;AAAA,EAEpB,kBACR,KACA,SACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,mBAAmB,2BAA2B;AAAA,EAC3D;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kCAAiF,kBAAqB;AAAA,EAClH,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AACD;AAeO,SAAS,SAAS,GAAwC,GAA+B;AAC/F,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA8D,GAAG,CAAC;AAC3F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,iCAAiC,IAAI;AAAA,EACjD;AACA,SAAO,IAAI,2BAA2B,IAAI;AAC3C;","names":[]}
@@ -54,6 +54,7 @@ class SingleStoreTimestamp extends import_date_common.SingleStoreDateBaseColumn
54
54
  return /* @__PURE__ */ new Date(value + "+0000");
55
55
  }
56
56
  mapToDriverValue(value) {
57
+ if (typeof value === "string") return value;
57
58
  return value.toISOString().slice(0, -1).replace("T", " ");
58
59
  }
59
60
  }
@@ -78,6 +79,10 @@ class SingleStoreTimestampString extends import_date_common.SingleStoreDateBaseC
78
79
  getSQLType() {
79
80
  return `timestamp`;
80
81
  }
82
+ mapToDriverValue(value) {
83
+ if (typeof value === "string") return value;
84
+ return value.toISOString().slice(0, -1).replace("T", " ");
85
+ }
81
86
  }
82
87
  function timestamp(a, b = {}) {
83
88
  const { name, config } = (0, import_utils.getColumnNameAndConfig)(a, b);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/singlestore-core/columns/timestamp.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { SingleStoreTable } from '~/singlestore-core/table.ts';\nimport { sql } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreDateBaseColumn, SingleStoreDateColumnBaseBuilder } from './date.common.ts';\n\nexport class SingleStoreTimestampBuilder extends SingleStoreDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, SingleStoreTimestampConfig> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestampBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreTimestamp');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreTimestamp(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n\n\toverride defaultNow() {\n\t\treturn this.default(sql`CURRENT_TIMESTAMP`);\n\t}\n}\n\nexport class SingleStoreTimestamp<T extends ColumnBaseConfig<'object date'>>\n\textends SingleStoreDateBaseColumn<T, SingleStoreTimestampConfig>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestamp';\n\n\tgetSQLType(): string {\n\t\treturn `timestamp`;\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value + '+0000');\n\t}\n\n\toverride mapToDriverValue(value: Date): string {\n\t\treturn value.toISOString().slice(0, -1).replace('T', ' ');\n\t}\n}\n\nexport class SingleStoreTimestampStringBuilder extends SingleStoreDateColumnBaseBuilder<{\n\tdataType: 'string timestamp';\n\tdata: string;\n\tdriverParam: string | number;\n}, SingleStoreTimestampConfig> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestampStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string timestamp', 'SingleStoreTimestampString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreTimestampString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n\n\toverride defaultNow() {\n\t\treturn this.default(sql`CURRENT_TIMESTAMP`);\n\t}\n}\n\nexport class SingleStoreTimestampString<T extends ColumnBaseConfig<'string timestamp'>>\n\textends SingleStoreDateBaseColumn<T, SingleStoreTimestampConfig>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestampString';\n\n\tgetSQLType(): string {\n\t\treturn `timestamp`;\n\t}\n}\n\nexport interface SingleStoreTimestampConfig<TMode extends 'string' | 'date' = 'string' | 'date'> {\n\tmode?: TMode;\n}\n\nexport function timestamp<TMode extends SingleStoreTimestampConfig['mode'] & {}>(\n\tconfig?: SingleStoreTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreTimestampStringBuilder\n\t: SingleStoreTimestampBuilder;\nexport function timestamp<TMode extends SingleStoreTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreTimestampStringBuilder\n\t: SingleStoreTimestampBuilder;\nexport function timestamp(a?: string | SingleStoreTimestampConfig, b: SingleStoreTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreTimestampStringBuilder(name);\n\t}\n\treturn new SingleStoreTimestampBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,iBAAoB;AACpB,mBAAmD;AACnD,yBAA4E;AAErE,MAAM,oCAAoC,oDAIlB;AAAA,EAC9B,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,sBAAsB;AAAA,EAClD;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAES,aAAa;AACrB,WAAO,KAAK,QAAQ,iCAAsB;AAAA,EAC3C;AACD;AAEO,MAAM,6BACJ,6CACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,QAAQ,OAAO;AAAA,EAChC;AAAA,EAES,iBAAiB,OAAqB;AAC9C,WAAO,MAAM,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EACzD;AACD;AAEO,MAAM,0CAA0C,oDAIxB;AAAA,EAC9B,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,oBAAoB,4BAA4B;AAAA,EAC7D;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAES,aAAa;AACrB,WAAO,KAAK,QAAQ,iCAAsB;AAAA,EAC3C;AACD;AAEO,MAAM,mCACJ,6CACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAeO,SAAS,UAAU,GAAyC,IAAgC,CAAC,GAAG;AACtG,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA+D,GAAG,CAAC;AAC5F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,kCAAkC,IAAI;AAAA,EAClD;AACA,SAAO,IAAI,4BAA4B,IAAI;AAC5C;","names":[]}
1
+ {"version":3,"sources":["../../../src/singlestore-core/columns/timestamp.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { SingleStoreTable } from '~/singlestore-core/table.ts';\nimport { sql } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreDateBaseColumn, SingleStoreDateColumnBaseBuilder } from './date.common.ts';\n\nexport class SingleStoreTimestampBuilder extends SingleStoreDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, SingleStoreTimestampConfig> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestampBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreTimestamp');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreTimestamp(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n\n\toverride defaultNow() {\n\t\treturn this.default(sql`CURRENT_TIMESTAMP`);\n\t}\n}\n\nexport class SingleStoreTimestamp<T extends ColumnBaseConfig<'object date'>>\n\textends SingleStoreDateBaseColumn<T, SingleStoreTimestampConfig>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestamp';\n\n\tgetSQLType(): string {\n\t\treturn `timestamp`;\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value + '+0000');\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().slice(0, -1).replace('T', ' ');\n\t}\n}\n\nexport class SingleStoreTimestampStringBuilder extends SingleStoreDateColumnBaseBuilder<{\n\tdataType: 'string timestamp';\n\tdata: string;\n\tdriverParam: string | number;\n}, SingleStoreTimestampConfig> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestampStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string timestamp', 'SingleStoreTimestampString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreTimestampString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n\n\toverride defaultNow() {\n\t\treturn this.default(sql`CURRENT_TIMESTAMP`);\n\t}\n}\n\nexport class SingleStoreTimestampString<T extends ColumnBaseConfig<'string timestamp'>>\n\textends SingleStoreDateBaseColumn<T, SingleStoreTimestampConfig>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestampString';\n\n\tgetSQLType(): string {\n\t\treturn `timestamp`;\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().slice(0, -1).replace('T', ' ');\n\t}\n}\n\nexport interface SingleStoreTimestampConfig<TMode extends 'string' | 'date' = 'string' | 'date'> {\n\tmode?: TMode;\n}\n\nexport function timestamp<TMode extends SingleStoreTimestampConfig['mode'] & {}>(\n\tconfig?: SingleStoreTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreTimestampStringBuilder\n\t: SingleStoreTimestampBuilder;\nexport function timestamp<TMode extends SingleStoreTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreTimestampStringBuilder\n\t: SingleStoreTimestampBuilder;\nexport function timestamp(a?: string | SingleStoreTimestampConfig, b: SingleStoreTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreTimestampStringBuilder(name);\n\t}\n\treturn new SingleStoreTimestampBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,iBAAoB;AACpB,mBAAmD;AACnD,yBAA4E;AAErE,MAAM,oCAAoC,oDAIlB;AAAA,EAC9B,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,sBAAsB;AAAA,EAClD;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAES,aAAa;AACrB,WAAO,KAAK,QAAQ,iCAAsB;AAAA,EAC3C;AACD;AAEO,MAAM,6BACJ,6CACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,QAAQ,OAAO;AAAA,EAChC;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EACzD;AACD;AAEO,MAAM,0CAA0C,oDAIxB;AAAA,EAC9B,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,oBAAoB,4BAA4B;AAAA,EAC7D;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAES,aAAa;AACrB,WAAO,KAAK,QAAQ,iCAAsB;AAAA,EAC3C;AACD;AAEO,MAAM,mCACJ,6CACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EACzD;AACD;AAeO,SAAS,UAAU,GAAyC,IAAgC,CAAC,GAAG;AACtG,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA+D,GAAG,CAAC;AAC5F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,kCAAkC,IAAI;AAAA,EAClD;AACA,SAAO,IAAI,4BAA4B,IAAI;AAC5C;","names":[]}
@@ -15,7 +15,7 @@ export declare class SingleStoreTimestamp<T extends ColumnBaseConfig<'object dat
15
15
  static readonly [entityKind]: string;
16
16
  getSQLType(): string;
17
17
  mapFromDriverValue(value: string): Date;
18
- mapToDriverValue(value: Date): string;
18
+ mapToDriverValue(value: Date | string): string;
19
19
  }
20
20
  export declare class SingleStoreTimestampStringBuilder extends SingleStoreDateColumnBaseBuilder<{
21
21
  dataType: 'string timestamp';
@@ -29,6 +29,7 @@ export declare class SingleStoreTimestampStringBuilder extends SingleStoreDateCo
29
29
  export declare class SingleStoreTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends SingleStoreDateBaseColumn<T, SingleStoreTimestampConfig> {
30
30
  static readonly [entityKind]: string;
31
31
  getSQLType(): string;
32
+ mapToDriverValue(value: Date | string): string;
32
33
  }
33
34
  export interface SingleStoreTimestampConfig<TMode extends 'string' | 'date' = 'string' | 'date'> {
34
35
  mode?: TMode;
@@ -15,7 +15,7 @@ export declare class SingleStoreTimestamp<T extends ColumnBaseConfig<'object dat
15
15
  static readonly [entityKind]: string;
16
16
  getSQLType(): string;
17
17
  mapFromDriverValue(value: string): Date;
18
- mapToDriverValue(value: Date): string;
18
+ mapToDriverValue(value: Date | string): string;
19
19
  }
20
20
  export declare class SingleStoreTimestampStringBuilder extends SingleStoreDateColumnBaseBuilder<{
21
21
  dataType: 'string timestamp';
@@ -29,6 +29,7 @@ export declare class SingleStoreTimestampStringBuilder extends SingleStoreDateCo
29
29
  export declare class SingleStoreTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends SingleStoreDateBaseColumn<T, SingleStoreTimestampConfig> {
30
30
  static readonly [entityKind]: string;
31
31
  getSQLType(): string;
32
+ mapToDriverValue(value: Date | string): string;
32
33
  }
33
34
  export interface SingleStoreTimestampConfig<TMode extends 'string' | 'date' = 'string' | 'date'> {
34
35
  mode?: TMode;