@duckdb/node-api 1.1.3-alpha.8 → 1.1.3-alpha.9

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.
package/lib/DuckDBType.js CHANGED
@@ -1,8 +1,25 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DuckDBSQLNullType = exports.DuckDBVarIntType = exports.DuckDBAnyType = exports.DuckDBTimestampTZType = exports.DuckDBTimeTZType = exports.DuckDBBitType = exports.DuckDBUnionType = exports.DuckDBUUIDType = exports.DuckDBArrayType = exports.DuckDBMapType = exports.DuckDBStructType = exports.DuckDBListType = exports.DuckDBEnumType = exports.DuckDBTimestampNanosecondsType = exports.DuckDBTimestampMillisecondsType = exports.DuckDBTimestampSecondsType = exports.DuckDBDecimalType = exports.DuckDBBlobType = exports.DuckDBVarCharType = exports.DuckDBUHugeIntType = exports.DuckDBHugeIntType = exports.DuckDBIntervalType = exports.DuckDBTimeType = exports.DuckDBDateType = exports.DuckDBTimestampMicrosecondsType = exports.DuckDBTimestampType = exports.DuckDBDoubleType = exports.DuckDBFloatType = exports.DuckDBUBigIntType = exports.DuckDBUIntegerType = exports.DuckDBUSmallIntType = exports.DuckDBUTinyIntType = exports.DuckDBBigIntType = exports.DuckDBIntegerType = exports.DuckDBSmallIntType = exports.DuckDBTinyIntType = exports.DuckDBBooleanType = exports.BaseDuckDBType = void 0;
6
+ exports.DuckDBStructType = exports.DuckDBListType = exports.DuckDBEnumType = exports.TIMESTAMP_NS = exports.DuckDBTimestampNanosecondsType = exports.TIMESTAMP_MS = exports.DuckDBTimestampMillisecondsType = exports.TIMESTAMP_S = exports.DuckDBTimestampSecondsType = exports.DuckDBDecimalType = exports.BLOB = exports.DuckDBBlobType = exports.VARCHAR = exports.DuckDBVarCharType = exports.UHUGEINT = exports.DuckDBUHugeIntType = exports.HUGEINT = exports.DuckDBHugeIntType = exports.INTERVAL = exports.DuckDBIntervalType = exports.TIME = exports.DuckDBTimeType = exports.DATE = exports.DuckDBDateType = exports.DuckDBTimestampMicrosecondsType = exports.TIMESTAMP = exports.DuckDBTimestampType = exports.DOUBLE = exports.DuckDBDoubleType = exports.FLOAT = exports.DuckDBFloatType = exports.UBIGINT = exports.DuckDBUBigIntType = exports.UINTEGER = exports.DuckDBUIntegerType = exports.USMALLINT = exports.DuckDBUSmallIntType = exports.UTINYINT = exports.DuckDBUTinyIntType = exports.BIGINT = exports.DuckDBBigIntType = exports.INTEGER = exports.DuckDBIntegerType = exports.SMALLINT = exports.DuckDBSmallIntType = exports.TINYINT = exports.DuckDBTinyIntType = exports.BOOLEAN = exports.DuckDBBooleanType = exports.BaseDuckDBType = void 0;
7
+ exports.SQLNULL = exports.DuckDBSQLNullType = exports.VARINT = exports.DuckDBVarIntType = exports.ANY = exports.DuckDBAnyType = exports.TIMESTAMPTZ = exports.DuckDBTimestampTZType = exports.TIMETZ = exports.DuckDBTimeTZType = exports.BIT = exports.DuckDBBitType = exports.DuckDBUnionType = exports.UUID = exports.DuckDBUUIDType = exports.DuckDBArrayType = exports.DuckDBMapType = void 0;
8
+ exports.DECIMAL = DECIMAL;
9
+ exports.ENUM8 = ENUM8;
10
+ exports.ENUM16 = ENUM16;
11
+ exports.ENUM32 = ENUM32;
12
+ exports.ENUM = ENUM;
13
+ exports.LIST = LIST;
14
+ exports.STRUCT = STRUCT;
15
+ exports.MAP = MAP;
16
+ exports.ARRAY = ARRAY;
17
+ exports.UNION = UNION;
18
+ const node_bindings_1 = __importDefault(require("@duckdb/node-bindings"));
19
+ const DuckDBLogicalType_1 = require("./DuckDBLogicalType");
4
20
  const DuckDBTypeId_1 = require("./DuckDBTypeId");
5
21
  const sql_1 = require("./sql");
22
+ const values_1 = require("./values");
6
23
  class BaseDuckDBType {
7
24
  typeId;
8
25
  alias;
@@ -13,6 +30,13 @@ class BaseDuckDBType {
13
30
  toString() {
14
31
  return DuckDBTypeId_1.DuckDBTypeId[this.typeId];
15
32
  }
33
+ toLogicalType() {
34
+ const logicalType = DuckDBLogicalType_1.DuckDBLogicalType.create(node_bindings_1.default.create_logical_type(this.typeId));
35
+ if (this.alias) {
36
+ logicalType.alias = this.alias;
37
+ }
38
+ return logicalType;
39
+ }
16
40
  }
17
41
  exports.BaseDuckDBType = BaseDuckDBType;
18
42
  class DuckDBBooleanType extends BaseDuckDBType {
@@ -25,6 +49,7 @@ class DuckDBBooleanType extends BaseDuckDBType {
25
49
  }
26
50
  }
27
51
  exports.DuckDBBooleanType = DuckDBBooleanType;
52
+ exports.BOOLEAN = DuckDBBooleanType.instance;
28
53
  class DuckDBTinyIntType extends BaseDuckDBType {
29
54
  constructor(alias) {
30
55
  super(DuckDBTypeId_1.DuckDBTypeId.TINYINT, alias);
@@ -35,8 +60,15 @@ class DuckDBTinyIntType extends BaseDuckDBType {
35
60
  }
36
61
  static Max = 2 ** 7 - 1;
37
62
  static Min = -(2 ** 7);
63
+ get max() {
64
+ return DuckDBTinyIntType.Max;
65
+ }
66
+ get min() {
67
+ return DuckDBTinyIntType.Min;
68
+ }
38
69
  }
39
70
  exports.DuckDBTinyIntType = DuckDBTinyIntType;
71
+ exports.TINYINT = DuckDBTinyIntType.instance;
40
72
  class DuckDBSmallIntType extends BaseDuckDBType {
41
73
  constructor(alias) {
42
74
  super(DuckDBTypeId_1.DuckDBTypeId.SMALLINT, alias);
@@ -47,8 +79,15 @@ class DuckDBSmallIntType extends BaseDuckDBType {
47
79
  }
48
80
  static Max = 2 ** 15 - 1;
49
81
  static Min = -(2 ** 15);
82
+ get max() {
83
+ return DuckDBSmallIntType.Max;
84
+ }
85
+ get min() {
86
+ return DuckDBSmallIntType.Min;
87
+ }
50
88
  }
51
89
  exports.DuckDBSmallIntType = DuckDBSmallIntType;
90
+ exports.SMALLINT = DuckDBSmallIntType.instance;
52
91
  class DuckDBIntegerType extends BaseDuckDBType {
53
92
  constructor(alias) {
54
93
  super(DuckDBTypeId_1.DuckDBTypeId.INTEGER, alias);
@@ -59,8 +98,15 @@ class DuckDBIntegerType extends BaseDuckDBType {
59
98
  }
60
99
  static Max = 2 ** 31 - 1;
61
100
  static Min = -(2 ** 31);
101
+ get max() {
102
+ return DuckDBIntegerType.Max;
103
+ }
104
+ get min() {
105
+ return DuckDBIntegerType.Min;
106
+ }
62
107
  }
63
108
  exports.DuckDBIntegerType = DuckDBIntegerType;
109
+ exports.INTEGER = DuckDBIntegerType.instance;
64
110
  class DuckDBBigIntType extends BaseDuckDBType {
65
111
  constructor(alias) {
66
112
  super(DuckDBTypeId_1.DuckDBTypeId.BIGINT, alias);
@@ -71,8 +117,15 @@ class DuckDBBigIntType extends BaseDuckDBType {
71
117
  }
72
118
  static Max = 2n ** 63n - 1n;
73
119
  static Min = -(2n ** 63n);
120
+ get max() {
121
+ return DuckDBBigIntType.Max;
122
+ }
123
+ get min() {
124
+ return DuckDBBigIntType.Min;
125
+ }
74
126
  }
75
127
  exports.DuckDBBigIntType = DuckDBBigIntType;
128
+ exports.BIGINT = DuckDBBigIntType.instance;
76
129
  class DuckDBUTinyIntType extends BaseDuckDBType {
77
130
  constructor(alias) {
78
131
  super(DuckDBTypeId_1.DuckDBTypeId.UTINYINT, alias);
@@ -83,20 +136,36 @@ class DuckDBUTinyIntType extends BaseDuckDBType {
83
136
  }
84
137
  static Max = 2 ** 8 - 1;
85
138
  static Min = 0;
139
+ get max() {
140
+ return DuckDBUTinyIntType.Max;
141
+ }
142
+ get min() {
143
+ return DuckDBUTinyIntType.Min;
144
+ }
86
145
  }
87
146
  exports.DuckDBUTinyIntType = DuckDBUTinyIntType;
147
+ exports.UTINYINT = DuckDBUTinyIntType.instance;
88
148
  class DuckDBUSmallIntType extends BaseDuckDBType {
89
149
  constructor(alias) {
90
150
  super(DuckDBTypeId_1.DuckDBTypeId.USMALLINT, alias);
91
151
  }
92
152
  static instance = new DuckDBUSmallIntType();
93
153
  static create(alias) {
94
- return alias ? new DuckDBUSmallIntType(alias) : DuckDBUSmallIntType.instance;
154
+ return alias
155
+ ? new DuckDBUSmallIntType(alias)
156
+ : DuckDBUSmallIntType.instance;
95
157
  }
96
158
  static Max = 2 ** 16 - 1;
97
159
  static Min = 0;
160
+ get max() {
161
+ return DuckDBUSmallIntType.Max;
162
+ }
163
+ get min() {
164
+ return DuckDBUSmallIntType.Min;
165
+ }
98
166
  }
99
167
  exports.DuckDBUSmallIntType = DuckDBUSmallIntType;
168
+ exports.USMALLINT = DuckDBUSmallIntType.instance;
100
169
  class DuckDBUIntegerType extends BaseDuckDBType {
101
170
  constructor(alias) {
102
171
  super(DuckDBTypeId_1.DuckDBTypeId.UINTEGER, alias);
@@ -107,8 +176,15 @@ class DuckDBUIntegerType extends BaseDuckDBType {
107
176
  }
108
177
  static Max = 2 ** 32 - 1;
109
178
  static Min = 0;
179
+ get max() {
180
+ return DuckDBUIntegerType.Max;
181
+ }
182
+ get min() {
183
+ return DuckDBUIntegerType.Min;
184
+ }
110
185
  }
111
186
  exports.DuckDBUIntegerType = DuckDBUIntegerType;
187
+ exports.UINTEGER = DuckDBUIntegerType.instance;
112
188
  class DuckDBUBigIntType extends BaseDuckDBType {
113
189
  constructor(alias) {
114
190
  super(DuckDBTypeId_1.DuckDBTypeId.UBIGINT, alias);
@@ -119,8 +195,15 @@ class DuckDBUBigIntType extends BaseDuckDBType {
119
195
  }
120
196
  static Max = 2n ** 64n - 1n;
121
197
  static Min = 0n;
198
+ get max() {
199
+ return DuckDBUBigIntType.Max;
200
+ }
201
+ get min() {
202
+ return DuckDBUBigIntType.Min;
203
+ }
122
204
  }
123
205
  exports.DuckDBUBigIntType = DuckDBUBigIntType;
206
+ exports.UBIGINT = DuckDBUBigIntType.instance;
124
207
  class DuckDBFloatType extends BaseDuckDBType {
125
208
  constructor(alias) {
126
209
  super(DuckDBTypeId_1.DuckDBTypeId.FLOAT, alias);
@@ -129,10 +212,17 @@ class DuckDBFloatType extends BaseDuckDBType {
129
212
  static create(alias) {
130
213
  return alias ? new DuckDBFloatType(alias) : DuckDBFloatType.instance;
131
214
  }
132
- static Min = Math.fround(-3.4028235e+38);
133
- static Max = Math.fround(3.4028235e+38);
215
+ static Max = Math.fround(3.4028235e38);
216
+ static Min = Math.fround(-3.4028235e38);
217
+ get max() {
218
+ return DuckDBFloatType.Max;
219
+ }
220
+ get min() {
221
+ return DuckDBFloatType.Min;
222
+ }
134
223
  }
135
224
  exports.DuckDBFloatType = DuckDBFloatType;
225
+ exports.FLOAT = DuckDBFloatType.instance;
136
226
  class DuckDBDoubleType extends BaseDuckDBType {
137
227
  constructor(alias) {
138
228
  super(DuckDBTypeId_1.DuckDBTypeId.DOUBLE, alias);
@@ -141,20 +231,45 @@ class DuckDBDoubleType extends BaseDuckDBType {
141
231
  static create(alias) {
142
232
  return alias ? new DuckDBDoubleType(alias) : DuckDBDoubleType.instance;
143
233
  }
144
- static Min = -Number.MAX_VALUE;
145
234
  static Max = Number.MAX_VALUE;
235
+ static Min = -Number.MAX_VALUE;
236
+ get max() {
237
+ return DuckDBDoubleType.Max;
238
+ }
239
+ get min() {
240
+ return DuckDBDoubleType.Min;
241
+ }
146
242
  }
147
243
  exports.DuckDBDoubleType = DuckDBDoubleType;
244
+ exports.DOUBLE = DuckDBDoubleType.instance;
148
245
  class DuckDBTimestampType extends BaseDuckDBType {
149
246
  constructor(alias) {
150
247
  super(DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP, alias);
151
248
  }
152
249
  static instance = new DuckDBTimestampType();
153
250
  static create(alias) {
154
- return alias ? new DuckDBTimestampType(alias) : DuckDBTimestampType.instance;
251
+ return alias
252
+ ? new DuckDBTimestampType(alias)
253
+ : DuckDBTimestampType.instance;
254
+ }
255
+ get epoch() {
256
+ return values_1.DuckDBTimestampValue.Epoch;
257
+ }
258
+ get max() {
259
+ return values_1.DuckDBTimestampValue.Max;
260
+ }
261
+ get min() {
262
+ return values_1.DuckDBTimestampValue.Min;
263
+ }
264
+ get posInf() {
265
+ return values_1.DuckDBTimestampValue.PosInf;
266
+ }
267
+ get negInf() {
268
+ return values_1.DuckDBTimestampValue.NegInf;
155
269
  }
156
270
  }
157
271
  exports.DuckDBTimestampType = DuckDBTimestampType;
272
+ exports.TIMESTAMP = DuckDBTimestampType.instance;
158
273
  exports.DuckDBTimestampMicrosecondsType = DuckDBTimestampType;
159
274
  class DuckDBDateType extends BaseDuckDBType {
160
275
  constructor(alias) {
@@ -164,8 +279,24 @@ class DuckDBDateType extends BaseDuckDBType {
164
279
  static create(alias) {
165
280
  return alias ? new DuckDBDateType(alias) : DuckDBDateType.instance;
166
281
  }
282
+ get epoch() {
283
+ return values_1.DuckDBDateValue.Epoch;
284
+ }
285
+ get max() {
286
+ return values_1.DuckDBDateValue.Max;
287
+ }
288
+ get min() {
289
+ return values_1.DuckDBDateValue.Min;
290
+ }
291
+ get posInf() {
292
+ return values_1.DuckDBDateValue.PosInf;
293
+ }
294
+ get negInf() {
295
+ return values_1.DuckDBDateValue.NegInf;
296
+ }
167
297
  }
168
298
  exports.DuckDBDateType = DuckDBDateType;
299
+ exports.DATE = DuckDBDateType.instance;
169
300
  class DuckDBTimeType extends BaseDuckDBType {
170
301
  constructor(alias) {
171
302
  super(DuckDBTypeId_1.DuckDBTypeId.TIME, alias);
@@ -174,8 +305,15 @@ class DuckDBTimeType extends BaseDuckDBType {
174
305
  static create(alias) {
175
306
  return alias ? new DuckDBTimeType(alias) : DuckDBTimeType.instance;
176
307
  }
308
+ get max() {
309
+ return values_1.DuckDBTimeValue.Max;
310
+ }
311
+ get min() {
312
+ return values_1.DuckDBTimeValue.Min;
313
+ }
177
314
  }
178
315
  exports.DuckDBTimeType = DuckDBTimeType;
316
+ exports.TIME = DuckDBTimeType.instance;
179
317
  class DuckDBIntervalType extends BaseDuckDBType {
180
318
  constructor(alias) {
181
319
  super(DuckDBTypeId_1.DuckDBTypeId.INTERVAL, alias);
@@ -186,6 +324,7 @@ class DuckDBIntervalType extends BaseDuckDBType {
186
324
  }
187
325
  }
188
326
  exports.DuckDBIntervalType = DuckDBIntervalType;
327
+ exports.INTERVAL = DuckDBIntervalType.instance;
189
328
  class DuckDBHugeIntType extends BaseDuckDBType {
190
329
  constructor(alias) {
191
330
  super(DuckDBTypeId_1.DuckDBTypeId.HUGEINT, alias);
@@ -196,8 +335,15 @@ class DuckDBHugeIntType extends BaseDuckDBType {
196
335
  }
197
336
  static Max = 2n ** 127n - 1n;
198
337
  static Min = -(2n ** 127n);
338
+ get max() {
339
+ return DuckDBHugeIntType.Max;
340
+ }
341
+ get min() {
342
+ return DuckDBHugeIntType.Min;
343
+ }
199
344
  }
200
345
  exports.DuckDBHugeIntType = DuckDBHugeIntType;
346
+ exports.HUGEINT = DuckDBHugeIntType.instance;
201
347
  class DuckDBUHugeIntType extends BaseDuckDBType {
202
348
  constructor(alias) {
203
349
  super(DuckDBTypeId_1.DuckDBTypeId.UHUGEINT, alias);
@@ -208,8 +354,15 @@ class DuckDBUHugeIntType extends BaseDuckDBType {
208
354
  }
209
355
  static Max = 2n ** 128n - 1n;
210
356
  static Min = 0n;
357
+ get max() {
358
+ return DuckDBUHugeIntType.Max;
359
+ }
360
+ get min() {
361
+ return DuckDBUHugeIntType.Min;
362
+ }
211
363
  }
212
364
  exports.DuckDBUHugeIntType = DuckDBUHugeIntType;
365
+ exports.UHUGEINT = DuckDBUHugeIntType.instance;
213
366
  class DuckDBVarCharType extends BaseDuckDBType {
214
367
  constructor(alias) {
215
368
  super(DuckDBTypeId_1.DuckDBTypeId.VARCHAR, alias);
@@ -220,6 +373,7 @@ class DuckDBVarCharType extends BaseDuckDBType {
220
373
  }
221
374
  }
222
375
  exports.DuckDBVarCharType = DuckDBVarCharType;
376
+ exports.VARCHAR = DuckDBVarCharType.instance;
223
377
  class DuckDBBlobType extends BaseDuckDBType {
224
378
  constructor(alias) {
225
379
  super(DuckDBTypeId_1.DuckDBTypeId.BLOB, alias);
@@ -230,6 +384,7 @@ class DuckDBBlobType extends BaseDuckDBType {
230
384
  }
231
385
  }
232
386
  exports.DuckDBBlobType = DuckDBBlobType;
387
+ exports.BLOB = DuckDBBlobType.instance;
233
388
  class DuckDBDecimalType extends BaseDuckDBType {
234
389
  width;
235
390
  scale;
@@ -241,52 +396,143 @@ class DuckDBDecimalType extends BaseDuckDBType {
241
396
  toString() {
242
397
  return `DECIMAL(${this.width},${this.scale})`;
243
398
  }
399
+ toLogicalType() {
400
+ const logicalType = DuckDBLogicalType_1.DuckDBLogicalType.createDecimal(this.width, this.scale);
401
+ if (this.alias) {
402
+ logicalType.alias = this.alias;
403
+ }
404
+ return logicalType;
405
+ }
244
406
  static default = new DuckDBDecimalType(18, 3);
245
407
  }
246
408
  exports.DuckDBDecimalType = DuckDBDecimalType;
409
+ function DECIMAL(width, scale, alias) {
410
+ if (width === undefined) {
411
+ return DuckDBDecimalType.default;
412
+ }
413
+ if (scale === undefined) {
414
+ return new DuckDBDecimalType(width, 0);
415
+ }
416
+ return new DuckDBDecimalType(width, scale, alias);
417
+ }
247
418
  class DuckDBTimestampSecondsType extends BaseDuckDBType {
248
419
  constructor(alias) {
249
420
  super(DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_S, alias);
250
421
  }
251
422
  static instance = new DuckDBTimestampSecondsType();
252
423
  static create(alias) {
253
- return alias ? new DuckDBTimestampSecondsType(alias) : DuckDBTimestampSecondsType.instance;
424
+ return alias
425
+ ? new DuckDBTimestampSecondsType(alias)
426
+ : DuckDBTimestampSecondsType.instance;
427
+ }
428
+ get epoch() {
429
+ return values_1.DuckDBTimestampSecondsValue.Epoch;
430
+ }
431
+ get max() {
432
+ return values_1.DuckDBTimestampSecondsValue.Max;
433
+ }
434
+ get min() {
435
+ return values_1.DuckDBTimestampSecondsValue.Min;
254
436
  }
255
437
  }
256
438
  exports.DuckDBTimestampSecondsType = DuckDBTimestampSecondsType;
439
+ exports.TIMESTAMP_S = DuckDBTimestampSecondsType.instance;
257
440
  class DuckDBTimestampMillisecondsType extends BaseDuckDBType {
258
441
  constructor(alias) {
259
442
  super(DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_MS, alias);
260
443
  }
261
444
  static instance = new DuckDBTimestampMillisecondsType();
262
445
  static create(alias) {
263
- return alias ? new DuckDBTimestampMillisecondsType(alias) : DuckDBTimestampMillisecondsType.instance;
446
+ return alias
447
+ ? new DuckDBTimestampMillisecondsType(alias)
448
+ : DuckDBTimestampMillisecondsType.instance;
449
+ }
450
+ get epoch() {
451
+ return values_1.DuckDBTimestampMillisecondsValue.Epoch;
452
+ }
453
+ get max() {
454
+ return values_1.DuckDBTimestampMillisecondsValue.Max;
455
+ }
456
+ get min() {
457
+ return values_1.DuckDBTimestampMillisecondsValue.Min;
264
458
  }
265
459
  }
266
460
  exports.DuckDBTimestampMillisecondsType = DuckDBTimestampMillisecondsType;
461
+ exports.TIMESTAMP_MS = DuckDBTimestampMillisecondsType.instance;
267
462
  class DuckDBTimestampNanosecondsType extends BaseDuckDBType {
268
463
  constructor(alias) {
269
464
  super(DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_NS, alias);
270
465
  }
271
466
  static instance = new DuckDBTimestampNanosecondsType();
272
467
  static create(alias) {
273
- return alias ? new DuckDBTimestampNanosecondsType(alias) : DuckDBTimestampNanosecondsType.instance;
468
+ return alias
469
+ ? new DuckDBTimestampNanosecondsType(alias)
470
+ : DuckDBTimestampNanosecondsType.instance;
471
+ }
472
+ get epoch() {
473
+ return values_1.DuckDBTimestampNanosecondsValue.Epoch;
474
+ }
475
+ get max() {
476
+ return values_1.DuckDBTimestampNanosecondsValue.Max;
477
+ }
478
+ get min() {
479
+ return values_1.DuckDBTimestampNanosecondsValue.Min;
274
480
  }
275
481
  }
276
482
  exports.DuckDBTimestampNanosecondsType = DuckDBTimestampNanosecondsType;
483
+ exports.TIMESTAMP_NS = DuckDBTimestampNanosecondsType.instance;
277
484
  class DuckDBEnumType extends BaseDuckDBType {
278
485
  values;
486
+ valueIndexes;
279
487
  internalTypeId;
280
488
  constructor(values, internalTypeId, alias) {
281
489
  super(DuckDBTypeId_1.DuckDBTypeId.ENUM, alias);
282
490
  this.values = values;
491
+ const valueIndexes = {};
492
+ for (let i = 0; i < values.length; i++) {
493
+ valueIndexes[values[i]] = i;
494
+ }
495
+ this.valueIndexes = valueIndexes;
283
496
  this.internalTypeId = internalTypeId;
284
497
  }
498
+ indexForValue(value) {
499
+ return this.valueIndexes[value];
500
+ }
285
501
  toString() {
286
502
  return `ENUM(${this.values.map(sql_1.quotedString).join(', ')})`;
287
503
  }
504
+ toLogicalType() {
505
+ const logicalType = DuckDBLogicalType_1.DuckDBLogicalType.createEnum(this.values);
506
+ if (this.alias) {
507
+ logicalType.alias = this.alias;
508
+ }
509
+ return logicalType;
510
+ }
288
511
  }
289
512
  exports.DuckDBEnumType = DuckDBEnumType;
513
+ function ENUM8(values, alias) {
514
+ return new DuckDBEnumType(values, DuckDBTypeId_1.DuckDBTypeId.UTINYINT, alias);
515
+ }
516
+ function ENUM16(values, alias) {
517
+ return new DuckDBEnumType(values, DuckDBTypeId_1.DuckDBTypeId.USMALLINT, alias);
518
+ }
519
+ function ENUM32(values, alias) {
520
+ return new DuckDBEnumType(values, DuckDBTypeId_1.DuckDBTypeId.UINTEGER, alias);
521
+ }
522
+ function ENUM(values, alias) {
523
+ if (values.length < 256) {
524
+ return ENUM8(values, alias);
525
+ }
526
+ else if (values.length < 65536) {
527
+ return ENUM16(values, alias);
528
+ }
529
+ else if (values.length < 4294967296) {
530
+ return ENUM32(values, alias);
531
+ }
532
+ else {
533
+ throw new Error(`ENUM types cannot have more than 4294967295 values; received ${values.length}`);
534
+ }
535
+ }
290
536
  class DuckDBListType extends BaseDuckDBType {
291
537
  valueType;
292
538
  constructor(valueType, alias) {
@@ -296,8 +542,18 @@ class DuckDBListType extends BaseDuckDBType {
296
542
  toString() {
297
543
  return `${this.valueType}[]`;
298
544
  }
545
+ toLogicalType() {
546
+ const logicalType = DuckDBLogicalType_1.DuckDBLogicalType.createList(this.valueType.toLogicalType());
547
+ if (this.alias) {
548
+ logicalType.alias = this.alias;
549
+ }
550
+ return logicalType;
551
+ }
299
552
  }
300
553
  exports.DuckDBListType = DuckDBListType;
554
+ function LIST(valueType, alias) {
555
+ return new DuckDBListType(valueType, alias);
556
+ }
301
557
  class DuckDBStructType extends BaseDuckDBType {
302
558
  entryNames;
303
559
  entryTypes;
@@ -320,8 +576,20 @@ class DuckDBStructType extends BaseDuckDBType {
320
576
  }
321
577
  return `STRUCT(${parts.join(', ')})`;
322
578
  }
579
+ toLogicalType() {
580
+ const logicalType = DuckDBLogicalType_1.DuckDBLogicalType.createStruct(this.entryNames, this.entryTypes.map((t) => t.toLogicalType()));
581
+ if (this.alias) {
582
+ logicalType.alias = this.alias;
583
+ }
584
+ return logicalType;
585
+ }
323
586
  }
324
587
  exports.DuckDBStructType = DuckDBStructType;
588
+ function STRUCT(entries, alias) {
589
+ const entryNames = Object.keys(entries);
590
+ const entryTypes = Object.values(entries);
591
+ return new DuckDBStructType(entryNames, entryTypes, alias);
592
+ }
325
593
  class DuckDBMapType extends BaseDuckDBType {
326
594
  keyType;
327
595
  valueType;
@@ -333,8 +601,18 @@ class DuckDBMapType extends BaseDuckDBType {
333
601
  toString() {
334
602
  return `MAP(${this.keyType}, ${this.valueType})`;
335
603
  }
604
+ toLogicalType() {
605
+ const logicalType = DuckDBLogicalType_1.DuckDBLogicalType.createMap(this.keyType.toLogicalType(), this.valueType.toLogicalType());
606
+ if (this.alias) {
607
+ logicalType.alias = this.alias;
608
+ }
609
+ return logicalType;
610
+ }
336
611
  }
337
612
  exports.DuckDBMapType = DuckDBMapType;
613
+ function MAP(keyType, valueType, alias) {
614
+ return new DuckDBMapType(keyType, valueType, alias);
615
+ }
338
616
  class DuckDBArrayType extends BaseDuckDBType {
339
617
  valueType;
340
618
  length;
@@ -346,8 +624,18 @@ class DuckDBArrayType extends BaseDuckDBType {
346
624
  toString() {
347
625
  return `${this.valueType}[${this.length}]`;
348
626
  }
627
+ toLogicalType() {
628
+ const logicalType = DuckDBLogicalType_1.DuckDBLogicalType.createArray(this.valueType.toLogicalType(), this.length);
629
+ if (this.alias) {
630
+ logicalType.alias = this.alias;
631
+ }
632
+ return logicalType;
633
+ }
349
634
  }
350
635
  exports.DuckDBArrayType = DuckDBArrayType;
636
+ function ARRAY(valueType, length, alias) {
637
+ return new DuckDBArrayType(valueType, length, alias);
638
+ }
351
639
  class DuckDBUUIDType extends BaseDuckDBType {
352
640
  constructor(alias) {
353
641
  super(DuckDBTypeId_1.DuckDBTypeId.UUID, alias);
@@ -356,10 +644,18 @@ class DuckDBUUIDType extends BaseDuckDBType {
356
644
  static create(alias) {
357
645
  return alias ? new DuckDBUUIDType(alias) : DuckDBUUIDType.instance;
358
646
  }
647
+ get max() {
648
+ return values_1.DuckDBUUIDValue.Max;
649
+ }
650
+ get min() {
651
+ return values_1.DuckDBUUIDValue.Min;
652
+ }
359
653
  }
360
654
  exports.DuckDBUUIDType = DuckDBUUIDType;
655
+ exports.UUID = DuckDBUUIDType.instance;
361
656
  class DuckDBUnionType extends BaseDuckDBType {
362
657
  memberTags;
658
+ tagMemberIndexes;
363
659
  memberTypes;
364
660
  constructor(memberTags, memberTypes, alias) {
365
661
  super(DuckDBTypeId_1.DuckDBTypeId.UNION, alias);
@@ -368,8 +664,16 @@ class DuckDBUnionType extends BaseDuckDBType {
368
664
  tags length (${memberTags.length}) does not match valueTypes length (${memberTypes.length})`);
369
665
  }
370
666
  this.memberTags = memberTags;
667
+ const tagMemberIndexes = {};
668
+ for (let i = 0; i < memberTags.length; i++) {
669
+ tagMemberIndexes[memberTags[i]] = i;
670
+ }
671
+ this.tagMemberIndexes = tagMemberIndexes;
371
672
  this.memberTypes = memberTypes;
372
673
  }
674
+ memberIndexForTag(tag) {
675
+ return this.tagMemberIndexes[tag];
676
+ }
373
677
  get memberCount() {
374
678
  return this.memberTags.length;
375
679
  }
@@ -380,8 +684,20 @@ class DuckDBUnionType extends BaseDuckDBType {
380
684
  }
381
685
  return `UNION(${parts.join(', ')})`;
382
686
  }
687
+ toLogicalType() {
688
+ const logicalType = DuckDBLogicalType_1.DuckDBLogicalType.createUnion(this.memberTags, this.memberTypes.map((t) => t.toLogicalType()));
689
+ if (this.alias) {
690
+ logicalType.alias = this.alias;
691
+ }
692
+ return logicalType;
693
+ }
383
694
  }
384
695
  exports.DuckDBUnionType = DuckDBUnionType;
696
+ function UNION(members, alias) {
697
+ const memberTags = Object.keys(members);
698
+ const memberTypes = Object.values(members);
699
+ return new DuckDBUnionType(memberTags, memberTypes, alias);
700
+ }
385
701
  class DuckDBBitType extends BaseDuckDBType {
386
702
  constructor(alias) {
387
703
  super(DuckDBTypeId_1.DuckDBTypeId.BIT, alias);
@@ -392,32 +708,58 @@ class DuckDBBitType extends BaseDuckDBType {
392
708
  }
393
709
  }
394
710
  exports.DuckDBBitType = DuckDBBitType;
711
+ exports.BIT = DuckDBBitType.instance;
395
712
  class DuckDBTimeTZType extends BaseDuckDBType {
396
713
  constructor(alias) {
397
714
  super(DuckDBTypeId_1.DuckDBTypeId.TIME_TZ, alias);
398
715
  }
399
716
  toString() {
400
- return "TIME WITH TIME ZONE";
717
+ return 'TIME WITH TIME ZONE';
401
718
  }
402
719
  static instance = new DuckDBTimeTZType();
403
720
  static create(alias) {
404
721
  return alias ? new DuckDBTimeTZType(alias) : DuckDBTimeTZType.instance;
405
722
  }
723
+ get max() {
724
+ return values_1.DuckDBTimeTZValue.Max;
725
+ }
726
+ get min() {
727
+ return values_1.DuckDBTimeTZValue.Min;
728
+ }
406
729
  }
407
730
  exports.DuckDBTimeTZType = DuckDBTimeTZType;
731
+ exports.TIMETZ = DuckDBTimeTZType.instance;
408
732
  class DuckDBTimestampTZType extends BaseDuckDBType {
409
733
  constructor(alias) {
410
734
  super(DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_TZ, alias);
411
735
  }
412
736
  toString() {
413
- return "TIMESTAMP WITH TIME ZONE";
737
+ return 'TIMESTAMP WITH TIME ZONE';
414
738
  }
415
739
  static instance = new DuckDBTimestampTZType();
416
740
  static create(alias) {
417
- return alias ? new DuckDBTimestampTZType(alias) : DuckDBTimestampTZType.instance;
741
+ return alias
742
+ ? new DuckDBTimestampTZType(alias)
743
+ : DuckDBTimestampTZType.instance;
744
+ }
745
+ get epoch() {
746
+ return values_1.DuckDBTimestampTZValue.Epoch;
747
+ }
748
+ get max() {
749
+ return values_1.DuckDBTimestampTZValue.Max;
750
+ }
751
+ get min() {
752
+ return values_1.DuckDBTimestampTZValue.Min;
753
+ }
754
+ get posInf() {
755
+ return values_1.DuckDBTimestampTZValue.PosInf;
756
+ }
757
+ get negInf() {
758
+ return values_1.DuckDBTimestampTZValue.NegInf;
418
759
  }
419
760
  }
420
761
  exports.DuckDBTimestampTZType = DuckDBTimestampTZType;
762
+ exports.TIMESTAMPTZ = DuckDBTimestampTZType.instance;
421
763
  class DuckDBAnyType extends BaseDuckDBType {
422
764
  constructor(alias) {
423
765
  super(DuckDBTypeId_1.DuckDBTypeId.ANY, alias);
@@ -428,6 +770,7 @@ class DuckDBAnyType extends BaseDuckDBType {
428
770
  }
429
771
  }
430
772
  exports.DuckDBAnyType = DuckDBAnyType;
773
+ exports.ANY = DuckDBAnyType.instance;
431
774
  class DuckDBVarIntType extends BaseDuckDBType {
432
775
  constructor(alias) {
433
776
  super(DuckDBTypeId_1.DuckDBTypeId.VARINT, alias);
@@ -438,8 +781,15 @@ class DuckDBVarIntType extends BaseDuckDBType {
438
781
  }
439
782
  static Max = 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368n;
440
783
  static Min = -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368n;
784
+ get max() {
785
+ return DuckDBVarIntType.Max;
786
+ }
787
+ get min() {
788
+ return DuckDBVarIntType.Min;
789
+ }
441
790
  }
442
791
  exports.DuckDBVarIntType = DuckDBVarIntType;
792
+ exports.VARINT = DuckDBVarIntType.instance;
443
793
  class DuckDBSQLNullType extends BaseDuckDBType {
444
794
  constructor(alias) {
445
795
  super(DuckDBTypeId_1.DuckDBTypeId.SQLNULL, alias);
@@ -450,3 +800,4 @@ class DuckDBSQLNullType extends BaseDuckDBType {
450
800
  }
451
801
  }
452
802
  exports.DuckDBSQLNullType = DuckDBSQLNullType;
803
+ exports.SQLNULL = DuckDBSQLNullType.instance;