drizzle-databend 0.1.11 → 0.1.13

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 (107) hide show
  1. package/dist/columns.d.ts +25 -37
  2. package/dist/databend-core/alias.d.ts +1 -0
  3. package/dist/databend-core/columns/all.d.ts +35 -0
  4. package/dist/databend-core/columns/array.d.ts +16 -0
  5. package/dist/databend-core/columns/bigint.d.ts +24 -0
  6. package/dist/databend-core/columns/binary.d.ts +13 -0
  7. package/dist/databend-core/columns/bitmap.d.ts +13 -0
  8. package/dist/databend-core/columns/boolean.d.ts +13 -0
  9. package/dist/databend-core/columns/common.d.ts +45 -0
  10. package/dist/databend-core/columns/custom.d.ts +33 -0
  11. package/dist/databend-core/columns/date.d.ts +16 -0
  12. package/dist/databend-core/columns/decimal.d.ts +19 -0
  13. package/dist/databend-core/columns/double.d.ts +14 -0
  14. package/dist/databend-core/columns/float.d.ts +14 -0
  15. package/dist/databend-core/columns/index.d.ts +21 -0
  16. package/dist/databend-core/columns/integer.d.ts +13 -0
  17. package/dist/databend-core/columns/map.d.ts +17 -0
  18. package/dist/databend-core/columns/smallint.d.ts +13 -0
  19. package/dist/databend-core/columns/text.d.ts +13 -0
  20. package/dist/databend-core/columns/timestamp.d.ts +16 -0
  21. package/dist/databend-core/columns/tinyint.d.ts +13 -0
  22. package/dist/databend-core/columns/tuple.d.ts +16 -0
  23. package/dist/databend-core/columns/varchar.d.ts +17 -0
  24. package/dist/databend-core/columns/variant.d.ts +15 -0
  25. package/dist/databend-core/db.d.ts +31 -0
  26. package/dist/databend-core/dialect.d.ts +29 -0
  27. package/dist/databend-core/index.d.ts +18 -0
  28. package/dist/databend-core/indexes.d.ts +24 -0
  29. package/dist/databend-core/primary-keys.d.ts +20 -0
  30. package/dist/databend-core/query-builders/count.d.ts +18 -0
  31. package/dist/databend-core/query-builders/delete.d.ts +18 -0
  32. package/dist/databend-core/query-builders/index.d.ts +5 -0
  33. package/dist/databend-core/query-builders/insert.d.ts +27 -0
  34. package/dist/databend-core/query-builders/query-builder.d.ts +19 -0
  35. package/dist/databend-core/query-builders/query.d.ts +37 -0
  36. package/dist/databend-core/query-builders/raw.d.ts +17 -0
  37. package/dist/databend-core/query-builders/select.d.ts +66 -0
  38. package/dist/databend-core/query-builders/update.d.ts +27 -0
  39. package/dist/databend-core/schema.d.ts +12 -0
  40. package/dist/databend-core/session.d.ts +28 -0
  41. package/dist/databend-core/subquery.d.ts +1 -0
  42. package/dist/databend-core/table.d.ts +12 -0
  43. package/dist/databend-core/utils.d.ts +7 -0
  44. package/dist/databend-core/view-base.d.ts +5 -0
  45. package/dist/databend-core/view-common.d.ts +1 -0
  46. package/dist/databend-core/view.d.ts +30 -0
  47. package/dist/dialect.d.ts +1 -10
  48. package/dist/driver.d.ts +4 -4
  49. package/dist/index.d.ts +10 -0
  50. package/dist/index.mjs +2611 -205
  51. package/dist/session.d.ts +22 -19
  52. package/dist/sql/result-mapper.d.ts +2 -3
  53. package/dist/sql/selection.d.ts +2 -1
  54. package/package.json +4 -4
  55. package/src/columns.ts +8 -7
  56. package/src/databend-core/alias.ts +5 -0
  57. package/src/databend-core/columns/all.ts +38 -0
  58. package/src/databend-core/columns/array.ts +46 -0
  59. package/src/databend-core/columns/bigint.ts +52 -0
  60. package/src/databend-core/columns/binary.ts +27 -0
  61. package/src/databend-core/columns/bitmap.ts +27 -0
  62. package/src/databend-core/columns/boolean.ts +27 -0
  63. package/src/databend-core/columns/common.ts +97 -0
  64. package/src/databend-core/columns/custom.ts +86 -0
  65. package/src/databend-core/columns/date.ts +49 -0
  66. package/src/databend-core/columns/decimal.ts +44 -0
  67. package/src/databend-core/columns/double.ts +34 -0
  68. package/src/databend-core/columns/float.ts +31 -0
  69. package/src/databend-core/columns/index.ts +21 -0
  70. package/src/databend-core/columns/integer.ts +27 -0
  71. package/src/databend-core/columns/map.ts +49 -0
  72. package/src/databend-core/columns/smallint.ts +27 -0
  73. package/src/databend-core/columns/text.ts +27 -0
  74. package/src/databend-core/columns/timestamp.ts +51 -0
  75. package/src/databend-core/columns/tinyint.ts +27 -0
  76. package/src/databend-core/columns/tuple.ts +46 -0
  77. package/src/databend-core/columns/varchar.ts +35 -0
  78. package/src/databend-core/columns/variant.ts +45 -0
  79. package/src/databend-core/db.ts +153 -0
  80. package/src/databend-core/dialect.ts +725 -0
  81. package/src/databend-core/index.ts +18 -0
  82. package/src/databend-core/indexes.ts +67 -0
  83. package/src/databend-core/primary-keys.ts +48 -0
  84. package/src/databend-core/query-builders/count.ts +47 -0
  85. package/src/databend-core/query-builders/delete.ts +56 -0
  86. package/src/databend-core/query-builders/index.ts +5 -0
  87. package/src/databend-core/query-builders/insert.ts +105 -0
  88. package/src/databend-core/query-builders/query-builder.ts +77 -0
  89. package/src/databend-core/query-builders/query.ts +124 -0
  90. package/src/databend-core/query-builders/raw.ts +37 -0
  91. package/src/databend-core/query-builders/select.ts +412 -0
  92. package/src/databend-core/query-builders/update.ts +82 -0
  93. package/src/databend-core/schema.ts +29 -0
  94. package/src/databend-core/session.ts +85 -0
  95. package/src/databend-core/subquery.ts +1 -0
  96. package/src/databend-core/table.ts +67 -0
  97. package/src/databend-core/utils.ts +34 -0
  98. package/src/databend-core/view-base.ts +6 -0
  99. package/src/databend-core/view-common.ts +1 -0
  100. package/src/databend-core/view.ts +127 -0
  101. package/src/dialect.ts +3 -119
  102. package/src/driver.ts +6 -7
  103. package/src/index.ts +27 -0
  104. package/src/migrator.ts +1 -2
  105. package/src/session.ts +42 -57
  106. package/src/sql/result-mapper.ts +12 -54
  107. package/src/sql/selection.ts +2 -1
@@ -7,14 +7,9 @@ import {
7
7
  type SelectedFieldsOrdered,
8
8
  SQL,
9
9
  } from 'drizzle-orm';
10
- import {
11
- PgCustomColumn,
12
- PgDate,
13
- PgDateString,
14
- PgTime,
15
- PgTimestamp,
16
- PgTimestampString,
17
- } from 'drizzle-orm/pg-core';
10
+ import { DatabendCustomColumn } from '../databend-core/columns/custom.ts';
11
+ import { DatabendDate } from '../databend-core/columns/date.ts';
12
+ import { DatabendTimestamp } from '../databend-core/columns/timestamp.ts';
18
13
 
19
14
  type SQLInternal<T = unknown> = SQL<T> & {
20
15
  decoder: DriverValueDecoder<T, any>;
@@ -33,25 +28,21 @@ function toDecoderInput<TDecoder extends DriverValueDecoder<unknown, unknown>>(
33
28
 
34
29
  export function normalizeTimestampString(
35
30
  value: unknown,
36
- withTimezone: boolean
31
+ _withTimezone: boolean
37
32
  ): string | unknown {
38
33
  if (value instanceof Date) {
39
34
  const iso = value.toISOString().replace('T', ' ');
40
- return withTimezone ? iso.replace('Z', '+00') : iso.replace('Z', '');
35
+ return iso.replace('Z', '');
41
36
  }
42
37
  if (typeof value === 'string') {
43
- const normalized = value.replace('T', ' ');
44
- if (withTimezone) {
45
- return normalized.includes('+') ? normalized : `${normalized}+00`;
46
- }
47
- return normalized.replace(/\+00$/, '');
38
+ return value.replace('T', ' ');
48
39
  }
49
40
  return value;
50
41
  }
51
42
 
52
43
  export function normalizeTimestamp(
53
44
  value: unknown,
54
- withTimezone: boolean
45
+ _withTimezone: boolean
55
46
  ): Date | unknown {
56
47
  if (value instanceof Date) {
57
48
  return value;
@@ -60,7 +51,7 @@ export function normalizeTimestamp(
60
51
  const hasOffset =
61
52
  value.endsWith('Z') || /[+-]\d{2}:?\d{2}$/.test(value.trim());
62
53
  const spaced = value.replace(' ', 'T');
63
- const normalized = withTimezone || hasOffset ? spaced : `${spaced}+00`;
54
+ const normalized = hasOffset ? spaced : `${spaced}Z`;
64
55
  return new Date(normalized);
65
56
  }
66
57
  return value;
@@ -86,57 +77,24 @@ export function normalizeDateValue(value: unknown): Date | unknown {
86
77
  return value;
87
78
  }
88
79
 
89
- export function normalizeTime(value: unknown): string | unknown {
90
- if (typeof value === 'bigint') {
91
- const totalMillis = Number(value) / 1000;
92
- const date = new Date(totalMillis);
93
- return date.toISOString().split('T')[1]!.replace('Z', '');
94
- }
95
- if (value instanceof Date) {
96
- return value.toISOString().split('T')[1]!.replace('Z', '');
97
- }
98
- return value;
99
- }
100
-
101
80
  function mapDriverValue(
102
81
  decoder: DriverValueDecoder<unknown, unknown>,
103
82
  rawValue: unknown
104
83
  ): unknown {
105
- if (is(decoder, PgTimestampString)) {
106
- return decoder.mapFromDriverValue(
107
- toDecoderInput(
108
- decoder,
109
- normalizeTimestampString(rawValue, decoder.withTimezone)
110
- )
111
- );
112
- }
113
-
114
- if (is(decoder, PgTimestamp)) {
115
- const normalized = normalizeTimestamp(rawValue, decoder.withTimezone);
84
+ if (is(decoder, DatabendTimestamp)) {
85
+ const normalized = normalizeTimestamp(rawValue, false);
116
86
  if (normalized instanceof Date) {
117
87
  return normalized;
118
88
  }
119
89
  return decoder.mapFromDriverValue(toDecoderInput(decoder, normalized));
120
90
  }
121
91
 
122
- if (is(decoder, PgDateString)) {
92
+ if (is(decoder, DatabendDate)) {
123
93
  return decoder.mapFromDriverValue(
124
94
  toDecoderInput(decoder, normalizeDateString(rawValue))
125
95
  );
126
96
  }
127
97
 
128
- if (is(decoder, PgDate)) {
129
- return decoder.mapFromDriverValue(
130
- toDecoderInput(decoder, normalizeDateValue(rawValue))
131
- );
132
- }
133
-
134
- if (is(decoder, PgTime)) {
135
- return decoder.mapFromDriverValue(
136
- toDecoderInput(decoder, normalizeTime(rawValue))
137
- );
138
- }
139
-
140
98
  return decoder.mapFromDriverValue(toDecoderInput(decoder, rawValue));
141
99
  }
142
100
 
@@ -157,7 +115,7 @@ export function mapResultRow<TResult>(
157
115
  } else {
158
116
  const col = field.sql.queryChunks.find((chunk) => is(chunk, Column));
159
117
 
160
- if (is(col, PgCustomColumn)) {
118
+ if (is(col, DatabendCustomColumn)) {
161
119
  decoder = col;
162
120
  } else {
163
121
  decoder = (field.sql as SQLInternal).decoder;
@@ -1,5 +1,6 @@
1
1
  import { Column, getTableName, is, SQL, sql } from 'drizzle-orm';
2
- import type { SelectedFields } from 'drizzle-orm/pg-core';
2
+
3
+ type SelectedFields = Record<string, any>;
3
4
 
4
5
  function mapEntries(
5
6
  obj: Record<string, unknown>,