@haybarn/node-api 1.5.3-rc2
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/LICENSE +7 -0
- package/README.md +1224 -0
- package/lib/DuckDBAppender.d.ts +51 -0
- package/lib/DuckDBAppender.js +149 -0
- package/lib/DuckDBBindInfo.d.ts +12 -0
- package/lib/DuckDBBindInfo.js +33 -0
- package/lib/DuckDBClientContext.d.ts +6 -0
- package/lib/DuckDBClientContext.js +17 -0
- package/lib/DuckDBConnection.d.ts +49 -0
- package/lib/DuckDBConnection.js +208 -0
- package/lib/DuckDBDataChunk.d.ts +41 -0
- package/lib/DuckDBDataChunk.js +223 -0
- package/lib/DuckDBExtractedStatements.d.ts +12 -0
- package/lib/DuckDBExtractedStatements.js +31 -0
- package/lib/DuckDBFunctionInfo.d.ts +10 -0
- package/lib/DuckDBFunctionInfo.js +29 -0
- package/lib/DuckDBInstance.d.ts +10 -0
- package/lib/DuckDBInstance.js +30 -0
- package/lib/DuckDBInstanceCache.d.ts +8 -0
- package/lib/DuckDBInstanceCache.js +28 -0
- package/lib/DuckDBLogicalType.d.ts +66 -0
- package/lib/DuckDBLogicalType.js +328 -0
- package/lib/DuckDBMaterializedResult.d.ts +9 -0
- package/lib/DuckDBMaterializedResult.js +24 -0
- package/lib/DuckDBPendingResult.d.ts +18 -0
- package/lib/DuckDBPendingResult.js +60 -0
- package/lib/DuckDBPreparedStatement.d.ts +72 -0
- package/lib/DuckDBPreparedStatement.js +219 -0
- package/lib/DuckDBPreparedStatementCollection.d.ts +4 -0
- package/lib/DuckDBPreparedStatementCollection.js +2 -0
- package/lib/DuckDBPreparedStatementWeakRefCollection.d.ts +9 -0
- package/lib/DuckDBPreparedStatementWeakRefCollection.js +28 -0
- package/lib/DuckDBResult.d.ts +57 -0
- package/lib/DuckDBResult.js +229 -0
- package/lib/DuckDBResultReader.d.ts +68 -0
- package/lib/DuckDBResultReader.js +203 -0
- package/lib/DuckDBScalarFunction.d.ts +33 -0
- package/lib/DuckDBScalarFunction.js +83 -0
- package/lib/DuckDBType.d.ts +373 -0
- package/lib/DuckDBType.js +930 -0
- package/lib/DuckDBTypeId.d.ts +42 -0
- package/lib/DuckDBTypeId.js +47 -0
- package/lib/DuckDBValueConverter.d.ts +3 -0
- package/lib/DuckDBValueConverter.js +2 -0
- package/lib/DuckDBValueConverters.d.ts +47 -0
- package/lib/DuckDBValueConverters.js +214 -0
- package/lib/DuckDBVector.d.ts +596 -0
- package/lib/DuckDBVector.js +2525 -0
- package/lib/JS.d.ts +3 -0
- package/lib/JS.js +2 -0
- package/lib/JSDuckDBValueConverter.d.ts +3 -0
- package/lib/JSDuckDBValueConverter.js +49 -0
- package/lib/Json.d.ts +3 -0
- package/lib/Json.js +2 -0
- package/lib/JsonDuckDBValueConverter.d.ts +3 -0
- package/lib/JsonDuckDBValueConverter.js +49 -0
- package/lib/configurationOptionDescriptions.d.ts +1 -0
- package/lib/configurationOptionDescriptions.js +16 -0
- package/lib/conversion/bytesFromString.d.ts +1 -0
- package/lib/conversion/bytesFromString.js +7 -0
- package/lib/conversion/dateTimeStringConversion.d.ts +20 -0
- package/lib/conversion/dateTimeStringConversion.js +238 -0
- package/lib/conversion/displayStringForDuckDBValue.d.ts +2 -0
- package/lib/conversion/displayStringForDuckDBValue.js +13 -0
- package/lib/conversion/stringFromBlob.d.ts +4 -0
- package/lib/conversion/stringFromBlob.js +45 -0
- package/lib/conversion/stringFromDecimal.d.ts +18 -0
- package/lib/conversion/stringFromDecimal.js +80 -0
- package/lib/convertColumnsFromChunks.d.ts +3 -0
- package/lib/convertColumnsFromChunks.js +16 -0
- package/lib/convertColumnsObjectFromChunks.d.ts +3 -0
- package/lib/convertColumnsObjectFromChunks.js +19 -0
- package/lib/convertRowObjectsFromChunks.d.ts +3 -0
- package/lib/convertRowObjectsFromChunks.js +17 -0
- package/lib/convertRowsFromChunks.d.ts +3 -0
- package/lib/convertRowsFromChunks.js +13 -0
- package/lib/createConfig.d.ts +2 -0
- package/lib/createConfig.js +19 -0
- package/lib/createDuckDBValueConverter.d.ts +3 -0
- package/lib/createDuckDBValueConverter.js +15 -0
- package/lib/createResult.d.ts +3 -0
- package/lib/createResult.js +17 -0
- package/lib/createValue.d.ts +4 -0
- package/lib/createValue.js +222 -0
- package/lib/duckdb.d.ts +33 -0
- package/lib/duckdb.js +54 -0
- package/lib/enums.d.ts +5 -0
- package/lib/enums.js +9 -0
- package/lib/getColumnsFromChunks.d.ts +3 -0
- package/lib/getColumnsFromChunks.js +10 -0
- package/lib/getColumnsObjectFromChunks.d.ts +3 -0
- package/lib/getColumnsObjectFromChunks.js +10 -0
- package/lib/getRowObjectsFromChunks.d.ts +3 -0
- package/lib/getRowObjectsFromChunks.js +10 -0
- package/lib/getRowsFromChunks.d.ts +3 -0
- package/lib/getRowsFromChunks.js +10 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +41 -0
- package/lib/sleep.d.ts +1 -0
- package/lib/sleep.js +8 -0
- package/lib/sql.d.ts +2 -0
- package/lib/sql.js +10 -0
- package/lib/typeForValue.d.ts +3 -0
- package/lib/typeForValue.js +91 -0
- package/lib/values/DuckDBArrayValue.d.ts +7 -0
- package/lib/values/DuckDBArrayValue.js +18 -0
- package/lib/values/DuckDBBitValue.d.ts +16 -0
- package/lib/values/DuckDBBitValue.js +103 -0
- package/lib/values/DuckDBBlobValue.d.ts +8 -0
- package/lib/values/DuckDBBlobValue.js +26 -0
- package/lib/values/DuckDBDateValue.d.ts +16 -0
- package/lib/values/DuckDBDateValue.js +39 -0
- package/lib/values/DuckDBDecimalValue.d.ts +19 -0
- package/lib/values/DuckDBDecimalValue.js +44 -0
- package/lib/values/DuckDBIntervalValue.d.ts +9 -0
- package/lib/values/DuckDBIntervalValue.js +22 -0
- package/lib/values/DuckDBListValue.d.ts +7 -0
- package/lib/values/DuckDBListValue.js +18 -0
- package/lib/values/DuckDBMapValue.d.ts +11 -0
- package/lib/values/DuckDBMapValue.js +18 -0
- package/lib/values/DuckDBStructValue.d.ts +7 -0
- package/lib/values/DuckDBStructValue.js +22 -0
- package/lib/values/DuckDBTimeNSValue.d.ts +9 -0
- package/lib/values/DuckDBTimeNSValue.js +20 -0
- package/lib/values/DuckDBTimeTZValue.d.ts +35 -0
- package/lib/values/DuckDBTimeTZValue.js +65 -0
- package/lib/values/DuckDBTimeValue.d.ts +12 -0
- package/lib/values/DuckDBTimeValue.js +33 -0
- package/lib/values/DuckDBTimestampMillisecondsValue.d.ts +13 -0
- package/lib/values/DuckDBTimestampMillisecondsValue.js +31 -0
- package/lib/values/DuckDBTimestampNanosecondsValue.d.ts +13 -0
- package/lib/values/DuckDBTimestampNanosecondsValue.js +30 -0
- package/lib/values/DuckDBTimestampSecondsValue.d.ts +13 -0
- package/lib/values/DuckDBTimestampSecondsValue.js +30 -0
- package/lib/values/DuckDBTimestampTZValue.d.ts +16 -0
- package/lib/values/DuckDBTimestampTZValue.js +41 -0
- package/lib/values/DuckDBTimestampValue.d.ts +18 -0
- package/lib/values/DuckDBTimestampValue.js +41 -0
- package/lib/values/DuckDBUUIDValue.d.ts +19 -0
- package/lib/values/DuckDBUUIDValue.js +40 -0
- package/lib/values/DuckDBUnionValue.d.ts +8 -0
- package/lib/values/DuckDBUnionValue.js +22 -0
- package/lib/values/DuckDBValue.d.ts +20 -0
- package/lib/values/DuckDBValue.js +2 -0
- package/lib/values/index.d.ts +20 -0
- package/lib/values/index.js +36 -0
- package/lib/version.d.ts +1 -0
- package/lib/version.js +10 -0
- package/package.json +15 -0
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DuckDBUnionLogicalType = exports.DuckDBArrayLogicalType = exports.DuckDBMapLogicalType = exports.DuckDBStructLogicalType = exports.DuckDBListLogicalType = exports.DuckDBEnumLogicalType = exports.DuckDBDecimalLogicalType = exports.DuckDBLogicalType = void 0;
|
|
7
|
+
const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
|
|
8
|
+
const DuckDBType_1 = require("./DuckDBType");
|
|
9
|
+
const DuckDBTypeId_1 = require("./DuckDBTypeId");
|
|
10
|
+
class DuckDBLogicalType {
|
|
11
|
+
logical_type;
|
|
12
|
+
constructor(logical_type) {
|
|
13
|
+
this.logical_type = logical_type;
|
|
14
|
+
}
|
|
15
|
+
static create(logical_type) {
|
|
16
|
+
switch (node_bindings_1.default.get_type_id(logical_type)) {
|
|
17
|
+
case node_bindings_1.default.Type.DECIMAL:
|
|
18
|
+
return new DuckDBDecimalLogicalType(logical_type);
|
|
19
|
+
case node_bindings_1.default.Type.ENUM:
|
|
20
|
+
return new DuckDBEnumLogicalType(logical_type);
|
|
21
|
+
case node_bindings_1.default.Type.LIST:
|
|
22
|
+
return new DuckDBListLogicalType(logical_type);
|
|
23
|
+
case node_bindings_1.default.Type.STRUCT:
|
|
24
|
+
return new DuckDBStructLogicalType(logical_type);
|
|
25
|
+
case node_bindings_1.default.Type.MAP:
|
|
26
|
+
return new DuckDBMapLogicalType(logical_type);
|
|
27
|
+
case node_bindings_1.default.Type.ARRAY:
|
|
28
|
+
return new DuckDBArrayLogicalType(logical_type);
|
|
29
|
+
case node_bindings_1.default.Type.UNION:
|
|
30
|
+
return new DuckDBUnionLogicalType(logical_type);
|
|
31
|
+
default:
|
|
32
|
+
return new DuckDBLogicalType(logical_type);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
static createDecimal(width, scale) {
|
|
36
|
+
return new DuckDBDecimalLogicalType(node_bindings_1.default.create_decimal_type(width, scale));
|
|
37
|
+
}
|
|
38
|
+
static createEnum(member_names) {
|
|
39
|
+
return new DuckDBEnumLogicalType(node_bindings_1.default.create_enum_type(member_names));
|
|
40
|
+
}
|
|
41
|
+
static createList(valueType) {
|
|
42
|
+
return new DuckDBListLogicalType(node_bindings_1.default.create_list_type(valueType.logical_type));
|
|
43
|
+
}
|
|
44
|
+
static createStruct(entryNames, entryLogicalTypes) {
|
|
45
|
+
const length = entryNames.length;
|
|
46
|
+
if (length !== entryLogicalTypes.length) {
|
|
47
|
+
throw new Error(`Could not create struct: \
|
|
48
|
+
entryNames length (${entryNames.length}) does not match entryLogicalTypes length (${entryLogicalTypes.length})`);
|
|
49
|
+
}
|
|
50
|
+
const member_types = [];
|
|
51
|
+
const member_names = [];
|
|
52
|
+
for (let i = 0; i < length; i++) {
|
|
53
|
+
member_types.push(entryLogicalTypes[i].logical_type);
|
|
54
|
+
member_names.push(entryNames[i]);
|
|
55
|
+
}
|
|
56
|
+
return new DuckDBStructLogicalType(node_bindings_1.default.create_struct_type(member_types, member_names));
|
|
57
|
+
}
|
|
58
|
+
static createMap(keyType, valueType) {
|
|
59
|
+
return new DuckDBMapLogicalType(node_bindings_1.default.create_map_type(keyType.logical_type, valueType.logical_type));
|
|
60
|
+
}
|
|
61
|
+
static createArray(valueType, length) {
|
|
62
|
+
return new DuckDBArrayLogicalType(node_bindings_1.default.create_array_type(valueType.logical_type, length));
|
|
63
|
+
}
|
|
64
|
+
static createUnion(memberTags, memberLogicalTypes) {
|
|
65
|
+
const length = memberTags.length;
|
|
66
|
+
if (length !== memberLogicalTypes.length) {
|
|
67
|
+
throw new Error(`Could not create union: \
|
|
68
|
+
memberTags length (${memberTags.length}) does not match memberLogicalTypes length (${memberLogicalTypes.length})`);
|
|
69
|
+
}
|
|
70
|
+
const member_types = [];
|
|
71
|
+
const member_names = [];
|
|
72
|
+
for (let i = 0; i < length; i++) {
|
|
73
|
+
member_types.push(memberLogicalTypes[i].logical_type);
|
|
74
|
+
member_names.push(memberTags[i]);
|
|
75
|
+
}
|
|
76
|
+
return new DuckDBUnionLogicalType(node_bindings_1.default.create_union_type(member_types, member_names));
|
|
77
|
+
}
|
|
78
|
+
get typeId() {
|
|
79
|
+
return node_bindings_1.default.get_type_id(this.logical_type);
|
|
80
|
+
}
|
|
81
|
+
get alias() {
|
|
82
|
+
return node_bindings_1.default.logical_type_get_alias(this.logical_type) || undefined;
|
|
83
|
+
}
|
|
84
|
+
set alias(newAlias) {
|
|
85
|
+
node_bindings_1.default.logical_type_set_alias(this.logical_type, newAlias || '');
|
|
86
|
+
}
|
|
87
|
+
asType() {
|
|
88
|
+
const alias = this.alias;
|
|
89
|
+
switch (this.typeId) {
|
|
90
|
+
case DuckDBTypeId_1.DuckDBTypeId.BOOLEAN:
|
|
91
|
+
return DuckDBType_1.DuckDBBooleanType.create(alias);
|
|
92
|
+
case DuckDBTypeId_1.DuckDBTypeId.TINYINT:
|
|
93
|
+
return DuckDBType_1.DuckDBTinyIntType.create(alias);
|
|
94
|
+
case DuckDBTypeId_1.DuckDBTypeId.SMALLINT:
|
|
95
|
+
return DuckDBType_1.DuckDBSmallIntType.create(alias);
|
|
96
|
+
case DuckDBTypeId_1.DuckDBTypeId.INTEGER:
|
|
97
|
+
return DuckDBType_1.DuckDBIntegerType.create(alias);
|
|
98
|
+
case DuckDBTypeId_1.DuckDBTypeId.BIGINT:
|
|
99
|
+
return DuckDBType_1.DuckDBBigIntType.create(alias);
|
|
100
|
+
case DuckDBTypeId_1.DuckDBTypeId.UTINYINT:
|
|
101
|
+
return DuckDBType_1.DuckDBUTinyIntType.create(alias);
|
|
102
|
+
case DuckDBTypeId_1.DuckDBTypeId.USMALLINT:
|
|
103
|
+
return DuckDBType_1.DuckDBUSmallIntType.create(alias);
|
|
104
|
+
case DuckDBTypeId_1.DuckDBTypeId.UINTEGER:
|
|
105
|
+
return DuckDBType_1.DuckDBUIntegerType.create(alias);
|
|
106
|
+
case DuckDBTypeId_1.DuckDBTypeId.UBIGINT:
|
|
107
|
+
return DuckDBType_1.DuckDBUBigIntType.create(alias);
|
|
108
|
+
case DuckDBTypeId_1.DuckDBTypeId.FLOAT:
|
|
109
|
+
return DuckDBType_1.DuckDBFloatType.create(alias);
|
|
110
|
+
case DuckDBTypeId_1.DuckDBTypeId.DOUBLE:
|
|
111
|
+
return DuckDBType_1.DuckDBDoubleType.create(alias);
|
|
112
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP:
|
|
113
|
+
return DuckDBType_1.DuckDBTimestampType.create(alias);
|
|
114
|
+
case DuckDBTypeId_1.DuckDBTypeId.DATE:
|
|
115
|
+
return DuckDBType_1.DuckDBDateType.create(alias);
|
|
116
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIME:
|
|
117
|
+
return DuckDBType_1.DuckDBTimeType.create(alias);
|
|
118
|
+
case DuckDBTypeId_1.DuckDBTypeId.INTERVAL:
|
|
119
|
+
return DuckDBType_1.DuckDBIntervalType.create(alias);
|
|
120
|
+
case DuckDBTypeId_1.DuckDBTypeId.HUGEINT:
|
|
121
|
+
return DuckDBType_1.DuckDBHugeIntType.create(alias);
|
|
122
|
+
case DuckDBTypeId_1.DuckDBTypeId.UHUGEINT:
|
|
123
|
+
return DuckDBType_1.DuckDBUHugeIntType.create(alias);
|
|
124
|
+
case DuckDBTypeId_1.DuckDBTypeId.VARCHAR:
|
|
125
|
+
return DuckDBType_1.DuckDBVarCharType.create(alias);
|
|
126
|
+
case DuckDBTypeId_1.DuckDBTypeId.BLOB:
|
|
127
|
+
return DuckDBType_1.DuckDBBlobType.create(alias);
|
|
128
|
+
case DuckDBTypeId_1.DuckDBTypeId.DECIMAL:
|
|
129
|
+
throw new Error('Expected override');
|
|
130
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_S:
|
|
131
|
+
return DuckDBType_1.DuckDBTimestampSecondsType.create(alias);
|
|
132
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_MS:
|
|
133
|
+
return DuckDBType_1.DuckDBTimestampMillisecondsType.create(alias);
|
|
134
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_NS:
|
|
135
|
+
return DuckDBType_1.DuckDBTimestampNanosecondsType.create(alias);
|
|
136
|
+
case DuckDBTypeId_1.DuckDBTypeId.ENUM:
|
|
137
|
+
throw new Error('Expected override');
|
|
138
|
+
case DuckDBTypeId_1.DuckDBTypeId.LIST:
|
|
139
|
+
throw new Error('Expected override');
|
|
140
|
+
case DuckDBTypeId_1.DuckDBTypeId.STRUCT:
|
|
141
|
+
throw new Error('Expected override');
|
|
142
|
+
case DuckDBTypeId_1.DuckDBTypeId.MAP:
|
|
143
|
+
throw new Error('Expected override');
|
|
144
|
+
case DuckDBTypeId_1.DuckDBTypeId.ARRAY:
|
|
145
|
+
throw new Error('Expected override');
|
|
146
|
+
case DuckDBTypeId_1.DuckDBTypeId.UUID:
|
|
147
|
+
return DuckDBType_1.DuckDBUUIDType.create(alias);
|
|
148
|
+
case DuckDBTypeId_1.DuckDBTypeId.UNION:
|
|
149
|
+
throw new Error('Expected override');
|
|
150
|
+
case DuckDBTypeId_1.DuckDBTypeId.BIT:
|
|
151
|
+
return DuckDBType_1.DuckDBBitType.create(alias);
|
|
152
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIME_TZ:
|
|
153
|
+
return DuckDBType_1.DuckDBTimeTZType.create(alias);
|
|
154
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_TZ:
|
|
155
|
+
return DuckDBType_1.DuckDBTimestampTZType.create(alias);
|
|
156
|
+
case DuckDBTypeId_1.DuckDBTypeId.ANY:
|
|
157
|
+
return DuckDBType_1.DuckDBAnyType.create(alias);
|
|
158
|
+
case DuckDBTypeId_1.DuckDBTypeId.BIGNUM:
|
|
159
|
+
return DuckDBType_1.DuckDBBigNumType.create(alias);
|
|
160
|
+
case DuckDBTypeId_1.DuckDBTypeId.SQLNULL:
|
|
161
|
+
return DuckDBType_1.DuckDBSQLNullType.create(alias);
|
|
162
|
+
case DuckDBTypeId_1.DuckDBTypeId.STRING_LITERAL:
|
|
163
|
+
return DuckDBType_1.DuckDBStringLiteralType.create(alias);
|
|
164
|
+
case DuckDBTypeId_1.DuckDBTypeId.INTEGER_LITERAL:
|
|
165
|
+
return DuckDBType_1.DuckDBIntegerLiteralType.create(alias);
|
|
166
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIME_NS:
|
|
167
|
+
return DuckDBType_1.DuckDBTimeNSType.create(alias);
|
|
168
|
+
default:
|
|
169
|
+
throw new Error(`Unexpected type id: ${this.typeId}`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
exports.DuckDBLogicalType = DuckDBLogicalType;
|
|
174
|
+
class DuckDBDecimalLogicalType extends DuckDBLogicalType {
|
|
175
|
+
get width() {
|
|
176
|
+
return node_bindings_1.default.decimal_width(this.logical_type);
|
|
177
|
+
}
|
|
178
|
+
get scale() {
|
|
179
|
+
return node_bindings_1.default.decimal_scale(this.logical_type);
|
|
180
|
+
}
|
|
181
|
+
get internalTypeId() {
|
|
182
|
+
return node_bindings_1.default.decimal_internal_type(this.logical_type);
|
|
183
|
+
}
|
|
184
|
+
asType() {
|
|
185
|
+
return new DuckDBType_1.DuckDBDecimalType(this.width, this.scale, this.alias);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
exports.DuckDBDecimalLogicalType = DuckDBDecimalLogicalType;
|
|
189
|
+
class DuckDBEnumLogicalType extends DuckDBLogicalType {
|
|
190
|
+
get valueCount() {
|
|
191
|
+
return node_bindings_1.default.enum_dictionary_size(this.logical_type);
|
|
192
|
+
}
|
|
193
|
+
value(index) {
|
|
194
|
+
return node_bindings_1.default.enum_dictionary_value(this.logical_type, index);
|
|
195
|
+
}
|
|
196
|
+
values() {
|
|
197
|
+
const values = [];
|
|
198
|
+
const count = this.valueCount;
|
|
199
|
+
for (let i = 0; i < count; i++) {
|
|
200
|
+
values.push(this.value(i));
|
|
201
|
+
}
|
|
202
|
+
return values;
|
|
203
|
+
}
|
|
204
|
+
get internalTypeId() {
|
|
205
|
+
return node_bindings_1.default.enum_internal_type(this.logical_type);
|
|
206
|
+
}
|
|
207
|
+
asType() {
|
|
208
|
+
return new DuckDBType_1.DuckDBEnumType(this.values(), this.internalTypeId, this.alias);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
exports.DuckDBEnumLogicalType = DuckDBEnumLogicalType;
|
|
212
|
+
class DuckDBListLogicalType extends DuckDBLogicalType {
|
|
213
|
+
get valueType() {
|
|
214
|
+
return DuckDBLogicalType.create(node_bindings_1.default.list_type_child_type(this.logical_type));
|
|
215
|
+
}
|
|
216
|
+
asType() {
|
|
217
|
+
return new DuckDBType_1.DuckDBListType(this.valueType.asType(), this.alias);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
exports.DuckDBListLogicalType = DuckDBListLogicalType;
|
|
221
|
+
class DuckDBStructLogicalType extends DuckDBLogicalType {
|
|
222
|
+
get entryCount() {
|
|
223
|
+
return node_bindings_1.default.struct_type_child_count(this.logical_type);
|
|
224
|
+
}
|
|
225
|
+
entryName(index) {
|
|
226
|
+
return node_bindings_1.default.struct_type_child_name(this.logical_type, index);
|
|
227
|
+
}
|
|
228
|
+
entryLogicalType(index) {
|
|
229
|
+
return DuckDBLogicalType.create(node_bindings_1.default.struct_type_child_type(this.logical_type, index));
|
|
230
|
+
}
|
|
231
|
+
entryType(index) {
|
|
232
|
+
return this.entryLogicalType(index).asType();
|
|
233
|
+
}
|
|
234
|
+
entryNames() {
|
|
235
|
+
const names = [];
|
|
236
|
+
const count = this.entryCount;
|
|
237
|
+
for (let i = 0; i < count; i++) {
|
|
238
|
+
names.push(this.entryName(i));
|
|
239
|
+
}
|
|
240
|
+
return names;
|
|
241
|
+
}
|
|
242
|
+
entryLogicalTypes() {
|
|
243
|
+
const valueTypes = [];
|
|
244
|
+
const count = this.entryCount;
|
|
245
|
+
for (let i = 0; i < count; i++) {
|
|
246
|
+
valueTypes.push(this.entryLogicalType(i));
|
|
247
|
+
}
|
|
248
|
+
return valueTypes;
|
|
249
|
+
}
|
|
250
|
+
entryTypes() {
|
|
251
|
+
const valueTypes = [];
|
|
252
|
+
const count = this.entryCount;
|
|
253
|
+
for (let i = 0; i < count; i++) {
|
|
254
|
+
valueTypes.push(this.entryType(i));
|
|
255
|
+
}
|
|
256
|
+
return valueTypes;
|
|
257
|
+
}
|
|
258
|
+
asType() {
|
|
259
|
+
return new DuckDBType_1.DuckDBStructType(this.entryNames(), this.entryTypes(), this.alias);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
exports.DuckDBStructLogicalType = DuckDBStructLogicalType;
|
|
263
|
+
class DuckDBMapLogicalType extends DuckDBLogicalType {
|
|
264
|
+
get keyType() {
|
|
265
|
+
return DuckDBLogicalType.create(node_bindings_1.default.map_type_key_type(this.logical_type));
|
|
266
|
+
}
|
|
267
|
+
get valueType() {
|
|
268
|
+
return DuckDBLogicalType.create(node_bindings_1.default.map_type_value_type(this.logical_type));
|
|
269
|
+
}
|
|
270
|
+
asType() {
|
|
271
|
+
return new DuckDBType_1.DuckDBMapType(this.keyType.asType(), this.valueType.asType(), this.alias);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
exports.DuckDBMapLogicalType = DuckDBMapLogicalType;
|
|
275
|
+
class DuckDBArrayLogicalType extends DuckDBLogicalType {
|
|
276
|
+
get valueType() {
|
|
277
|
+
return DuckDBLogicalType.create(node_bindings_1.default.array_type_child_type(this.logical_type));
|
|
278
|
+
}
|
|
279
|
+
get length() {
|
|
280
|
+
return node_bindings_1.default.array_type_array_size(this.logical_type);
|
|
281
|
+
}
|
|
282
|
+
asType() {
|
|
283
|
+
return new DuckDBType_1.DuckDBArrayType(this.valueType.asType(), this.length, this.alias);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
exports.DuckDBArrayLogicalType = DuckDBArrayLogicalType;
|
|
287
|
+
class DuckDBUnionLogicalType extends DuckDBLogicalType {
|
|
288
|
+
get memberCount() {
|
|
289
|
+
return node_bindings_1.default.union_type_member_count(this.logical_type);
|
|
290
|
+
}
|
|
291
|
+
memberTag(index) {
|
|
292
|
+
return node_bindings_1.default.union_type_member_name(this.logical_type, index);
|
|
293
|
+
}
|
|
294
|
+
memberLogicalType(index) {
|
|
295
|
+
return DuckDBLogicalType.create(node_bindings_1.default.union_type_member_type(this.logical_type, index));
|
|
296
|
+
}
|
|
297
|
+
memberType(index) {
|
|
298
|
+
return this.memberLogicalType(index).asType();
|
|
299
|
+
}
|
|
300
|
+
memberTags() {
|
|
301
|
+
const tags = [];
|
|
302
|
+
const count = this.memberCount;
|
|
303
|
+
for (let i = 0; i < count; i++) {
|
|
304
|
+
tags.push(this.memberTag(i));
|
|
305
|
+
}
|
|
306
|
+
return tags;
|
|
307
|
+
}
|
|
308
|
+
memberLogicalTypes() {
|
|
309
|
+
const valueTypes = [];
|
|
310
|
+
const count = this.memberCount;
|
|
311
|
+
for (let i = 0; i < count; i++) {
|
|
312
|
+
valueTypes.push(this.memberLogicalType(i));
|
|
313
|
+
}
|
|
314
|
+
return valueTypes;
|
|
315
|
+
}
|
|
316
|
+
memberTypes() {
|
|
317
|
+
const valueTypes = [];
|
|
318
|
+
const count = this.memberCount;
|
|
319
|
+
for (let i = 0; i < count; i++) {
|
|
320
|
+
valueTypes.push(this.memberType(i));
|
|
321
|
+
}
|
|
322
|
+
return valueTypes;
|
|
323
|
+
}
|
|
324
|
+
asType() {
|
|
325
|
+
return new DuckDBType_1.DuckDBUnionType(this.memberTags(), this.memberTypes(), this.alias);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
exports.DuckDBUnionLogicalType = DuckDBUnionLogicalType;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import duckdb from '@haybarn/node-bindings';
|
|
2
|
+
import { DuckDBDataChunk } from './DuckDBDataChunk';
|
|
3
|
+
import { DuckDBResult } from './DuckDBResult';
|
|
4
|
+
export declare class DuckDBMaterializedResult extends DuckDBResult {
|
|
5
|
+
constructor(result: duckdb.Result);
|
|
6
|
+
get rowCount(): number;
|
|
7
|
+
get chunkCount(): number;
|
|
8
|
+
getChunk(chunkIndex: number): DuckDBDataChunk;
|
|
9
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DuckDBMaterializedResult = void 0;
|
|
7
|
+
const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
|
|
8
|
+
const DuckDBDataChunk_1 = require("./DuckDBDataChunk");
|
|
9
|
+
const DuckDBResult_1 = require("./DuckDBResult");
|
|
10
|
+
class DuckDBMaterializedResult extends DuckDBResult_1.DuckDBResult {
|
|
11
|
+
constructor(result) {
|
|
12
|
+
super(result);
|
|
13
|
+
}
|
|
14
|
+
get rowCount() {
|
|
15
|
+
return node_bindings_1.default.row_count(this.result);
|
|
16
|
+
}
|
|
17
|
+
get chunkCount() {
|
|
18
|
+
return node_bindings_1.default.result_chunk_count(this.result);
|
|
19
|
+
}
|
|
20
|
+
getChunk(chunkIndex) {
|
|
21
|
+
return new DuckDBDataChunk_1.DuckDBDataChunk(node_bindings_1.default.result_get_chunk(this.result, chunkIndex));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.DuckDBMaterializedResult = DuckDBMaterializedResult;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import duckdb from '@haybarn/node-bindings';
|
|
2
|
+
import { DuckDBResult } from './DuckDBResult';
|
|
3
|
+
import { DuckDBResultReader } from './DuckDBResultReader';
|
|
4
|
+
export declare enum DuckDBPendingResultState {
|
|
5
|
+
RESULT_READY = 0,
|
|
6
|
+
RESULT_NOT_READY = 1,
|
|
7
|
+
NO_TASKS_AVAILABLE = 3
|
|
8
|
+
}
|
|
9
|
+
export declare class DuckDBPendingResult {
|
|
10
|
+
private readonly pending_result;
|
|
11
|
+
constructor(pending_result: duckdb.PendingResult);
|
|
12
|
+
runTask(): DuckDBPendingResultState;
|
|
13
|
+
runAllTasks(): Promise<void>;
|
|
14
|
+
getResult(): Promise<DuckDBResult>;
|
|
15
|
+
read(): Promise<DuckDBResultReader>;
|
|
16
|
+
readAll(): Promise<DuckDBResultReader>;
|
|
17
|
+
readUntil(targetRowCount: number): Promise<DuckDBResultReader>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DuckDBPendingResult = exports.DuckDBPendingResultState = void 0;
|
|
7
|
+
const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
|
|
8
|
+
const createResult_1 = require("./createResult");
|
|
9
|
+
const DuckDBResultReader_1 = require("./DuckDBResultReader");
|
|
10
|
+
const sleep_1 = require("./sleep");
|
|
11
|
+
// Values match similar enum in C API.
|
|
12
|
+
var DuckDBPendingResultState;
|
|
13
|
+
(function (DuckDBPendingResultState) {
|
|
14
|
+
DuckDBPendingResultState[DuckDBPendingResultState["RESULT_READY"] = 0] = "RESULT_READY";
|
|
15
|
+
DuckDBPendingResultState[DuckDBPendingResultState["RESULT_NOT_READY"] = 1] = "RESULT_NOT_READY";
|
|
16
|
+
DuckDBPendingResultState[DuckDBPendingResultState["NO_TASKS_AVAILABLE"] = 3] = "NO_TASKS_AVAILABLE";
|
|
17
|
+
})(DuckDBPendingResultState || (exports.DuckDBPendingResultState = DuckDBPendingResultState = {}));
|
|
18
|
+
class DuckDBPendingResult {
|
|
19
|
+
pending_result;
|
|
20
|
+
constructor(pending_result) {
|
|
21
|
+
this.pending_result = pending_result;
|
|
22
|
+
}
|
|
23
|
+
runTask() {
|
|
24
|
+
const pending_state = node_bindings_1.default.pending_execute_task(this.pending_result);
|
|
25
|
+
switch (pending_state) {
|
|
26
|
+
case node_bindings_1.default.PendingState.RESULT_READY:
|
|
27
|
+
return DuckDBPendingResultState.RESULT_READY;
|
|
28
|
+
case node_bindings_1.default.PendingState.RESULT_NOT_READY:
|
|
29
|
+
return DuckDBPendingResultState.RESULT_NOT_READY;
|
|
30
|
+
case node_bindings_1.default.PendingState.ERROR:
|
|
31
|
+
throw new Error(`Failure running pending result task: ${node_bindings_1.default.pending_error(this.pending_result)}`);
|
|
32
|
+
case node_bindings_1.default.PendingState.NO_TASKS_AVAILABLE:
|
|
33
|
+
return DuckDBPendingResultState.NO_TASKS_AVAILABLE;
|
|
34
|
+
default:
|
|
35
|
+
throw new Error(`Unexpected pending state: ${pending_state}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async runAllTasks() {
|
|
39
|
+
while (this.runTask() !== DuckDBPendingResultState.RESULT_READY) {
|
|
40
|
+
await (0, sleep_1.sleep)(1);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async getResult() {
|
|
44
|
+
return (0, createResult_1.createResult)(await node_bindings_1.default.execute_pending(this.pending_result));
|
|
45
|
+
}
|
|
46
|
+
async read() {
|
|
47
|
+
return new DuckDBResultReader_1.DuckDBResultReader(await this.getResult());
|
|
48
|
+
}
|
|
49
|
+
async readAll() {
|
|
50
|
+
const reader = new DuckDBResultReader_1.DuckDBResultReader(await this.getResult());
|
|
51
|
+
await reader.readAll();
|
|
52
|
+
return reader;
|
|
53
|
+
}
|
|
54
|
+
async readUntil(targetRowCount) {
|
|
55
|
+
const reader = new DuckDBResultReader_1.DuckDBResultReader(await this.getResult());
|
|
56
|
+
await reader.readUntil(targetRowCount);
|
|
57
|
+
return reader;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.DuckDBPendingResult = DuckDBPendingResult;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import duckdb from '@haybarn/node-bindings';
|
|
2
|
+
import { DuckDBMaterializedResult } from './DuckDBMaterializedResult';
|
|
3
|
+
import { DuckDBPendingResult } from './DuckDBPendingResult';
|
|
4
|
+
import { DuckDBResult } from './DuckDBResult';
|
|
5
|
+
import { DuckDBResultReader } from './DuckDBResultReader';
|
|
6
|
+
import { DuckDBArrayType, DuckDBEnumType, DuckDBListType, DuckDBMapType, DuckDBStructType, DuckDBType, DuckDBUnionType } from './DuckDBType';
|
|
7
|
+
import { DuckDBTypeId } from './DuckDBTypeId';
|
|
8
|
+
import { StatementType } from './enums';
|
|
9
|
+
import { DuckDBArrayValue, DuckDBBitValue, DuckDBDateValue, DuckDBDecimalValue, DuckDBIntervalValue, DuckDBListValue, DuckDBMapValue, DuckDBStructValue, DuckDBTimestampMillisecondsValue, DuckDBTimestampNanosecondsValue, DuckDBTimestampSecondsValue, DuckDBTimestampTZValue, DuckDBTimestampValue, DuckDBTimeTZValue, DuckDBTimeValue, DuckDBUnionValue, DuckDBUUIDValue, DuckDBValue } from './values';
|
|
10
|
+
export declare class DuckDBPreparedStatement {
|
|
11
|
+
private readonly prepared_statement;
|
|
12
|
+
constructor(prepared_statement: duckdb.PreparedStatement);
|
|
13
|
+
destroySync(): void;
|
|
14
|
+
get statementType(): StatementType;
|
|
15
|
+
get parameterCount(): number;
|
|
16
|
+
parameterName(parameterIndex: number): string;
|
|
17
|
+
parameterTypeId(parameterIndex: number): DuckDBTypeId;
|
|
18
|
+
parameterType(parameterIndex: number): DuckDBType;
|
|
19
|
+
get columnCount(): number;
|
|
20
|
+
columnName(columnIndex: number): string;
|
|
21
|
+
columnTypeId(columnIndex: number): DuckDBTypeId;
|
|
22
|
+
columnType(columnIndex: number): DuckDBType;
|
|
23
|
+
clearBindings(): void;
|
|
24
|
+
parameterIndex(parameterName: string): number;
|
|
25
|
+
bindBoolean(parameterIndex: number, value: boolean): void;
|
|
26
|
+
bindTinyInt(parameterIndex: number, value: number): void;
|
|
27
|
+
bindSmallInt(parameterIndex: number, value: number): void;
|
|
28
|
+
bindInteger(parameterIndex: number, value: number): void;
|
|
29
|
+
bindBigInt(parameterIndex: number, value: bigint): void;
|
|
30
|
+
bindHugeInt(parameterIndex: number, value: bigint): void;
|
|
31
|
+
bindUTinyInt(parameterIndex: number, value: number): void;
|
|
32
|
+
bindUSmallInt(parameterIndex: number, value: number): void;
|
|
33
|
+
bindUInteger(parameterIndex: number, value: number): void;
|
|
34
|
+
bindUBigInt(parameterIndex: number, value: bigint): void;
|
|
35
|
+
bindUHugeInt(parameterIndex: number, value: bigint): void;
|
|
36
|
+
bindBigNum(parameterIndex: number, value: bigint): void;
|
|
37
|
+
bindDecimal(parameterIndex: number, value: DuckDBDecimalValue): void;
|
|
38
|
+
bindFloat(parameterIndex: number, value: number): void;
|
|
39
|
+
bindDouble(parameterIndex: number, value: number): void;
|
|
40
|
+
bindDate(parameterIndex: number, value: DuckDBDateValue): void;
|
|
41
|
+
bindTime(parameterIndex: number, value: DuckDBTimeValue): void;
|
|
42
|
+
bindTimeTZ(parameterIndex: number, value: DuckDBTimeTZValue): void;
|
|
43
|
+
bindTimestamp(parameterIndex: number, value: DuckDBTimestampValue): void;
|
|
44
|
+
bindTimestampTZ(parameterIndex: number, value: DuckDBTimestampTZValue): void;
|
|
45
|
+
bindTimestampSeconds(parameterIndex: number, value: DuckDBTimestampSecondsValue): void;
|
|
46
|
+
bindTimestampMilliseconds(parameterIndex: number, value: DuckDBTimestampMillisecondsValue): void;
|
|
47
|
+
bindTimestampNanoseconds(parameterIndex: number, value: DuckDBTimestampNanosecondsValue): void;
|
|
48
|
+
bindInterval(parameterIndex: number, value: DuckDBIntervalValue): void;
|
|
49
|
+
bindVarchar(parameterIndex: number, value: string): void;
|
|
50
|
+
bindBlob(parameterIndex: number, value: Uint8Array): void;
|
|
51
|
+
bindEnum(parameterIndex: number, value: string, type: DuckDBEnumType): void;
|
|
52
|
+
bindArray(parameterIndex: number, value: DuckDBArrayValue | readonly DuckDBValue[], type?: DuckDBArrayType): void;
|
|
53
|
+
bindList(parameterIndex: number, value: DuckDBListValue | readonly DuckDBValue[], type?: DuckDBListType): void;
|
|
54
|
+
bindStruct(parameterIndex: number, value: DuckDBStructValue | Readonly<Record<string, DuckDBValue>>, type?: DuckDBStructType): void;
|
|
55
|
+
bindMap(parameterIndex: number, value: DuckDBMapValue, type?: DuckDBMapType): void;
|
|
56
|
+
bindUnion(parameterIndex: number, value: DuckDBUnionValue, type?: DuckDBUnionType): void;
|
|
57
|
+
bindUUID(parameterIndex: number, value: DuckDBUUIDValue): void;
|
|
58
|
+
bindBit(parameterIndex: number, value: DuckDBBitValue): void;
|
|
59
|
+
bindNull(parameterIndex: number): void;
|
|
60
|
+
bindValue(parameterIndex: number, value: DuckDBValue, type?: DuckDBType): void;
|
|
61
|
+
bind(values: DuckDBValue[] | Record<string, DuckDBValue>, types?: DuckDBType[] | Record<string, DuckDBType | undefined>): void;
|
|
62
|
+
run(): Promise<DuckDBMaterializedResult>;
|
|
63
|
+
runAndRead(): Promise<DuckDBResultReader>;
|
|
64
|
+
runAndReadAll(): Promise<DuckDBResultReader>;
|
|
65
|
+
runAndReadUntil(targetRowCount: number): Promise<DuckDBResultReader>;
|
|
66
|
+
stream(): Promise<DuckDBResult>;
|
|
67
|
+
streamAndRead(): Promise<DuckDBResultReader>;
|
|
68
|
+
streamAndReadAll(): Promise<DuckDBResultReader>;
|
|
69
|
+
streamAndReadUntil(targetRowCount: number): Promise<DuckDBResultReader>;
|
|
70
|
+
start(): DuckDBPendingResult;
|
|
71
|
+
startStream(): DuckDBPendingResult;
|
|
72
|
+
}
|