@haybarn/node-api 1.5.6-rc1 → 2.0.0-rc3
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/README.md +315 -20
- package/lib/DuckDBAppender.d.ts +8 -2
- package/lib/DuckDBAppender.js +19 -1
- package/lib/DuckDBConnection.d.ts +2 -0
- package/lib/DuckDBConnection.js +4 -1
- package/lib/DuckDBDataChunk.d.ts +30 -0
- package/lib/DuckDBDataChunk.js +94 -1
- package/lib/DuckDBDataChunkWriter.d.ts +74 -0
- package/lib/DuckDBDataChunkWriter.js +109 -0
- package/lib/DuckDBLogicalType.d.ts +5 -1
- package/lib/DuckDBLogicalType.js +18 -1
- package/lib/DuckDBMaterializedResult.d.ts +8 -1
- package/lib/DuckDBMaterializedResult.js +22 -2
- package/lib/DuckDBPendingResult.d.ts +16 -1
- package/lib/DuckDBPendingResult.js +19 -2
- package/lib/DuckDBPreparedStatement.d.ts +4 -1
- package/lib/DuckDBPreparedStatement.js +17 -4
- package/lib/DuckDBResult.d.ts +21 -1
- package/lib/DuckDBResult.js +87 -5
- package/lib/DuckDBResultReader.d.ts +5 -0
- package/lib/DuckDBResultReader.js +9 -2
- package/lib/DuckDBScalarFunction.d.ts +9 -5
- package/lib/DuckDBScalarFunction.js +14 -5
- package/lib/DuckDBScalarFunctionBindInfo.d.ts +16 -0
- package/lib/{DuckDBBindInfo.js → DuckDBScalarFunctionBindInfo.js} +5 -3
- package/lib/DuckDBScalarFunctionInfo.d.ts +16 -0
- package/lib/{DuckDBFunctionInfo.js → DuckDBScalarFunctionInfo.js} +11 -3
- package/lib/{DuckDBBindInfo.d.ts → DuckDBScalarFunctionInitInfo.d.ts} +6 -4
- package/lib/DuckDBScalarFunctionInitInfo.js +39 -0
- package/lib/DuckDBTableFunction.d.ts +41 -0
- package/lib/DuckDBTableFunction.js +83 -0
- package/lib/DuckDBTableFunctionBindInfo.d.ts +21 -0
- package/lib/DuckDBTableFunctionBindInfo.js +54 -0
- package/lib/DuckDBTableFunctionInfo.d.ts +15 -0
- package/lib/DuckDBTableFunctionInfo.js +42 -0
- package/lib/DuckDBTableFunctionInitInfo.d.ts +22 -0
- package/lib/DuckDBTableFunctionInitInfo.js +58 -0
- package/lib/DuckDBType.d.ts +1 -373
- package/lib/DuckDBType.js +14 -927
- package/lib/DuckDBTypeId.d.ts +4 -1
- package/lib/DuckDBTypeId.js +3 -0
- package/lib/DuckDBValueConverter.d.ts +10 -0
- package/lib/DuckDBValueConverters.d.ts +27 -0
- package/lib/DuckDBValueConverters.js +128 -1
- package/lib/DuckDBVector.d.ts +1 -596
- package/lib/DuckDBVector.js +14 -2522
- package/lib/JSDuckDBValueConverter.d.ts +1 -2
- package/lib/JSDuckDBValueConverter.js +5 -2
- package/lib/JSInputTypeForTypeId.d.ts +104 -0
- package/lib/JSInputTypeForTypeId.js +3 -0
- package/lib/JSToDuckDBValueConverter.d.ts +30 -0
- package/lib/JSToDuckDBValueConverter.js +83 -0
- package/lib/JSTypeForTypeId.d.ts +91 -0
- package/lib/JSTypeForTypeId.js +3 -0
- package/lib/JsonDuckDBValueConverter.d.ts +1 -2
- package/lib/JsonDuckDBValueConverter.js +4 -1
- package/lib/JsonTypeForTypeId.d.ts +96 -0
- package/lib/JsonTypeForTypeId.js +3 -0
- package/lib/ToDuckDBValueConverter.d.ts +41 -0
- package/lib/ToDuckDBValueConverter.js +27 -0
- package/lib/ToDuckDBValueConverters.d.ts +54 -0
- package/lib/ToDuckDBValueConverters.js +199 -0
- package/lib/conversion/dateTimeStringConversion.d.ts +2 -2
- package/lib/conversion/dateTimeStringConversion.js +20 -7
- package/lib/conversion/varintDecode.d.ts +18 -0
- package/lib/conversion/varintDecode.js +42 -0
- package/lib/convertColumnsFromChunks.d.ts +1 -1
- package/lib/convertColumnsFromChunks.js +2 -2
- package/lib/createResult.d.ts +2 -1
- package/lib/createResult.js +3 -3
- package/lib/createValue.js +63 -5
- package/lib/duckdb.d.ts +15 -2
- package/lib/duckdb.js +15 -2
- package/lib/getColumnsFromChunks.d.ts +1 -1
- package/lib/getColumnsFromChunks.js +2 -2
- package/lib/getColumnsObjectFromChunks.js +3 -0
- package/lib/readValue.d.ts +22 -0
- package/lib/readValue.js +35 -0
- package/lib/typeForValue.js +21 -2
- package/lib/types/BaseDuckDBType.d.ts +11 -0
- package/lib/types/BaseDuckDBType.js +34 -0
- package/lib/types/DuckDBAnyType.d.ts +8 -0
- package/lib/types/DuckDBAnyType.js +16 -0
- package/lib/types/DuckDBArrayType.d.ts +14 -0
- package/lib/types/DuckDBArrayType.js +38 -0
- package/lib/types/DuckDBBigIntType.d.ts +12 -0
- package/lib/types/DuckDBBigIntType.js +24 -0
- package/lib/types/DuckDBBigNumType.d.ts +12 -0
- package/lib/types/DuckDBBigNumType.js +24 -0
- package/lib/types/DuckDBBitType.d.ts +8 -0
- package/lib/types/DuckDBBitType.js +16 -0
- package/lib/types/DuckDBBlobType.d.ts +8 -0
- package/lib/types/DuckDBBlobType.js +16 -0
- package/lib/types/DuckDBBooleanType.d.ts +8 -0
- package/lib/types/DuckDBBooleanType.js +16 -0
- package/lib/types/DuckDBDateType.d.ts +14 -0
- package/lib/types/DuckDBDateType.js +32 -0
- package/lib/types/DuckDBDecimalType.d.ts +14 -0
- package/lib/types/DuckDBDecimalType.js +45 -0
- package/lib/types/DuckDBDoubleType.d.ts +12 -0
- package/lib/types/DuckDBDoubleType.js +24 -0
- package/lib/types/DuckDBEnumType.d.ts +29 -0
- package/lib/types/DuckDBEnumType.js +100 -0
- package/lib/types/DuckDBFloatType.d.ts +12 -0
- package/lib/types/DuckDBFloatType.js +24 -0
- package/lib/types/DuckDBGeometryType.d.ts +19 -0
- package/lib/types/DuckDBGeometryType.js +38 -0
- package/lib/types/DuckDBHugeIntType.d.ts +12 -0
- package/lib/types/DuckDBHugeIntType.js +24 -0
- package/lib/types/DuckDBIntegerLiteralType.d.ts +8 -0
- package/lib/types/DuckDBIntegerLiteralType.js +16 -0
- package/lib/types/DuckDBIntegerType.d.ts +12 -0
- package/lib/types/DuckDBIntegerType.js +24 -0
- package/lib/types/DuckDBIntervalType.d.ts +8 -0
- package/lib/types/DuckDBIntervalType.js +16 -0
- package/lib/types/DuckDBListType.d.ts +13 -0
- package/lib/types/DuckDBListType.js +35 -0
- package/lib/types/DuckDBMapType.d.ts +14 -0
- package/lib/types/DuckDBMapType.js +38 -0
- package/lib/types/DuckDBSQLNullType.d.ts +10 -0
- package/lib/types/DuckDBSQLNullType.js +20 -0
- package/lib/types/DuckDBSmallIntType.d.ts +12 -0
- package/lib/types/DuckDBSmallIntType.js +24 -0
- package/lib/types/DuckDBStringLiteralType.d.ts +8 -0
- package/lib/types/DuckDBStringLiteralType.js +16 -0
- package/lib/types/DuckDBStructType.d.ts +29 -0
- package/lib/types/DuckDBStructType.js +86 -0
- package/lib/types/DuckDBTimeNSType.d.ts +11 -0
- package/lib/types/DuckDBTimeNSType.js +23 -0
- package/lib/types/DuckDBTimeTZType.d.ts +12 -0
- package/lib/types/DuckDBTimeTZType.js +26 -0
- package/lib/types/DuckDBTimeType.d.ts +11 -0
- package/lib/types/DuckDBTimeType.js +23 -0
- package/lib/types/DuckDBTimestampMillisecondsType.d.ts +14 -0
- package/lib/types/DuckDBTimestampMillisecondsType.js +32 -0
- package/lib/types/DuckDBTimestampNanosecondsType.d.ts +14 -0
- package/lib/types/DuckDBTimestampNanosecondsType.js +32 -0
- package/lib/types/DuckDBTimestampSecondsType.d.ts +14 -0
- package/lib/types/DuckDBTimestampSecondsType.js +32 -0
- package/lib/types/DuckDBTimestampTZNanosecondsType.d.ts +15 -0
- package/lib/types/DuckDBTimestampTZNanosecondsType.js +35 -0
- package/lib/types/DuckDBTimestampTZType.d.ts +15 -0
- package/lib/types/DuckDBTimestampTZType.js +35 -0
- package/lib/types/DuckDBTimestampType.d.ts +16 -0
- package/lib/types/DuckDBTimestampType.js +33 -0
- package/lib/types/DuckDBTinyIntType.d.ts +12 -0
- package/lib/types/DuckDBTinyIntType.js +24 -0
- package/lib/types/DuckDBType.d.ts +43 -0
- package/lib/types/DuckDBType.js +2 -0
- package/lib/types/DuckDBUBigIntType.d.ts +12 -0
- package/lib/types/DuckDBUBigIntType.js +24 -0
- package/lib/types/DuckDBUHugeIntType.d.ts +12 -0
- package/lib/types/DuckDBUHugeIntType.js +24 -0
- package/lib/types/DuckDBUIntegerType.d.ts +12 -0
- package/lib/types/DuckDBUIntegerType.js +24 -0
- package/lib/types/DuckDBUSmallIntType.d.ts +12 -0
- package/lib/types/DuckDBUSmallIntType.js +24 -0
- package/lib/types/DuckDBUTinyIntType.d.ts +12 -0
- package/lib/types/DuckDBUTinyIntType.js +24 -0
- package/lib/types/DuckDBUUIDType.d.ts +11 -0
- package/lib/types/DuckDBUUIDType.js +23 -0
- package/lib/types/DuckDBUnionType.d.ts +18 -0
- package/lib/types/DuckDBUnionType.js +64 -0
- package/lib/types/DuckDBVarCharType.d.ts +8 -0
- package/lib/types/DuckDBVarCharType.js +16 -0
- package/lib/types/DuckDBVariantType.d.ts +8 -0
- package/lib/types/DuckDBVariantType.js +16 -0
- package/lib/types/index.d.ts +44 -0
- package/lib/types/index.js +60 -0
- package/lib/values/DuckDBGeometryValue.d.ts +12 -0
- package/lib/values/DuckDBGeometryValue.js +30 -0
- package/lib/values/DuckDBTimestampTZNanosecondsValue.d.ts +14 -0
- package/lib/values/DuckDBTimestampTZNanosecondsValue.js +33 -0
- package/lib/values/DuckDBTupleValue.d.ts +11 -0
- package/lib/values/DuckDBTupleValue.js +22 -0
- package/lib/values/DuckDBUUIDValue.js +5 -1
- package/lib/values/DuckDBValue.d.ts +5 -1
- package/lib/values/DuckDBVariantValue.d.ts +19 -0
- package/lib/values/DuckDBVariantValue.js +30 -0
- package/lib/values/index.d.ts +4 -0
- package/lib/values/index.js +4 -0
- package/lib/vectors/DuckDBArrayVector.d.ts +21 -0
- package/lib/vectors/DuckDBArrayVector.js +79 -0
- package/lib/vectors/DuckDBBigIntVector.d.ts +17 -0
- package/lib/vectors/DuckDBBigIntVector.js +58 -0
- package/lib/vectors/DuckDBBigNumVector.d.ts +21 -0
- package/lib/vectors/DuckDBBigNumVector.js +70 -0
- package/lib/vectors/DuckDBBitVector.d.ts +22 -0
- package/lib/vectors/DuckDBBitVector.js +74 -0
- package/lib/vectors/DuckDBBlobVector.d.ts +32 -0
- package/lib/vectors/DuckDBBlobVector.js +83 -0
- package/lib/vectors/DuckDBBooleanVector.d.ts +18 -0
- package/lib/vectors/DuckDBBooleanVector.js +58 -0
- package/lib/vectors/DuckDBDateVector.d.ts +18 -0
- package/lib/vectors/DuckDBDateVector.js +64 -0
- package/lib/vectors/DuckDBDecimal128Vector.d.ts +21 -0
- package/lib/vectors/DuckDBDecimal128Vector.js +64 -0
- package/lib/vectors/DuckDBDecimal16Vector.d.ts +21 -0
- package/lib/vectors/DuckDBDecimal16Vector.js +64 -0
- package/lib/vectors/DuckDBDecimal32Vector.d.ts +21 -0
- package/lib/vectors/DuckDBDecimal32Vector.js +64 -0
- package/lib/vectors/DuckDBDecimal64Vector.d.ts +21 -0
- package/lib/vectors/DuckDBDecimal64Vector.js +64 -0
- package/lib/vectors/DuckDBDoubleVector.d.ts +17 -0
- package/lib/vectors/DuckDBDoubleVector.js +54 -0
- package/lib/vectors/DuckDBEnum16Vector.d.ts +18 -0
- package/lib/vectors/DuckDBEnum16Vector.js +57 -0
- package/lib/vectors/DuckDBEnum32Vector.d.ts +18 -0
- package/lib/vectors/DuckDBEnum32Vector.js +57 -0
- package/lib/vectors/DuckDBEnum8Vector.d.ts +18 -0
- package/lib/vectors/DuckDBEnum8Vector.js +57 -0
- package/lib/vectors/DuckDBFloatVector.d.ts +17 -0
- package/lib/vectors/DuckDBFloatVector.js +54 -0
- package/lib/vectors/DuckDBGeometryVector.d.ts +22 -0
- package/lib/vectors/DuckDBGeometryVector.js +69 -0
- package/lib/vectors/DuckDBHugeIntVector.d.ts +19 -0
- package/lib/vectors/DuckDBHugeIntVector.js +63 -0
- package/lib/vectors/DuckDBIntegerVector.d.ts +17 -0
- package/lib/vectors/DuckDBIntegerVector.js +61 -0
- package/lib/vectors/DuckDBIntervalVector.d.ts +19 -0
- package/lib/vectors/DuckDBIntervalVector.js +67 -0
- package/lib/vectors/DuckDBListVector.d.ts +35 -0
- package/lib/vectors/DuckDBListVector.js +151 -0
- package/lib/vectors/DuckDBMapVector.d.ts +17 -0
- package/lib/vectors/DuckDBMapVector.js +60 -0
- package/lib/vectors/DuckDBSQLNullVector.d.ts +18 -0
- package/lib/vectors/DuckDBSQLNullVector.js +44 -0
- package/lib/vectors/DuckDBSmallIntVector.d.ts +17 -0
- package/lib/vectors/DuckDBSmallIntVector.js +61 -0
- package/lib/vectors/DuckDBStructVector.d.ts +35 -0
- package/lib/vectors/DuckDBStructVector.js +105 -0
- package/lib/vectors/DuckDBTimeNSVector.d.ts +18 -0
- package/lib/vectors/DuckDBTimeNSVector.js +61 -0
- package/lib/vectors/DuckDBTimeTZVector.d.ts +18 -0
- package/lib/vectors/DuckDBTimeTZVector.js +61 -0
- package/lib/vectors/DuckDBTimeVector.d.ts +18 -0
- package/lib/vectors/DuckDBTimeVector.js +61 -0
- package/lib/vectors/DuckDBTimestampMillisecondsVector.d.ts +18 -0
- package/lib/vectors/DuckDBTimestampMillisecondsVector.js +61 -0
- package/lib/vectors/DuckDBTimestampNanosecondsVector.d.ts +18 -0
- package/lib/vectors/DuckDBTimestampNanosecondsVector.js +61 -0
- package/lib/vectors/DuckDBTimestampSecondsVector.d.ts +18 -0
- package/lib/vectors/DuckDBTimestampSecondsVector.js +61 -0
- package/lib/vectors/DuckDBTimestampTZNanosecondsVector.d.ts +18 -0
- package/lib/vectors/DuckDBTimestampTZNanosecondsVector.js +61 -0
- package/lib/vectors/DuckDBTimestampTZVector.d.ts +18 -0
- package/lib/vectors/DuckDBTimestampTZVector.js +61 -0
- package/lib/vectors/DuckDBTimestampVector.d.ts +18 -0
- package/lib/vectors/DuckDBTimestampVector.js +61 -0
- package/lib/vectors/DuckDBTinyIntVector.d.ts +17 -0
- package/lib/vectors/DuckDBTinyIntVector.js +61 -0
- package/lib/vectors/DuckDBTupleVector.d.ts +26 -0
- package/lib/vectors/DuckDBTupleVector.js +91 -0
- package/lib/vectors/DuckDBUBigIntVector.d.ts +17 -0
- package/lib/vectors/DuckDBUBigIntVector.js +58 -0
- package/lib/vectors/DuckDBUHugeIntVector.d.ts +19 -0
- package/lib/vectors/DuckDBUHugeIntVector.js +63 -0
- package/lib/vectors/DuckDBUIntegerVector.d.ts +17 -0
- package/lib/vectors/DuckDBUIntegerVector.js +61 -0
- package/lib/vectors/DuckDBUSmallIntVector.d.ts +17 -0
- package/lib/vectors/DuckDBUSmallIntVector.js +61 -0
- package/lib/vectors/DuckDBUTinyIntVector.d.ts +17 -0
- package/lib/vectors/DuckDBUTinyIntVector.js +61 -0
- package/lib/vectors/DuckDBUUIDVector.d.ts +19 -0
- package/lib/vectors/DuckDBUUIDVector.js +59 -0
- package/lib/vectors/DuckDBUnionVector.d.ts +17 -0
- package/lib/vectors/DuckDBUnionVector.js +70 -0
- package/lib/vectors/DuckDBValidity.d.ts +12 -0
- package/lib/vectors/DuckDBValidity.js +91 -0
- package/lib/vectors/DuckDBVarCharVector.d.ts +21 -0
- package/lib/vectors/DuckDBVarCharVector.js +74 -0
- package/lib/vectors/DuckDBVariantVector.d.ts +42 -0
- package/lib/vectors/DuckDBVariantVector.js +461 -0
- package/lib/vectors/DuckDBVector.d.ts +14 -0
- package/lib/vectors/DuckDBVector.js +27 -0
- package/lib/vectors/createVector.d.ts +1 -0
- package/lib/vectors/createVector.js +201 -0
- package/lib/vectors/dataAccessors.d.ts +45 -0
- package/lib/vectors/dataAccessors.js +344 -0
- package/lib/vectors/index.d.ts +47 -0
- package/lib/vectors/index.js +65 -0
- package/lib/vectors/vectorRegistry.d.ts +20 -0
- package/lib/vectors/vectorRegistry.js +16 -0
- package/package.json +3 -2
- package/lib/DuckDBFunctionInfo.d.ts +0 -10
|
@@ -0,0 +1,201 @@
|
|
|
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
|
+
const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
|
|
7
|
+
const DuckDBLogicalType_1 = require("../DuckDBLogicalType");
|
|
8
|
+
const DuckDBType_1 = require("../DuckDBType");
|
|
9
|
+
const DuckDBTypeId_1 = require("../DuckDBTypeId");
|
|
10
|
+
const DuckDBArrayVector_1 = require("./DuckDBArrayVector");
|
|
11
|
+
const DuckDBBigIntVector_1 = require("./DuckDBBigIntVector");
|
|
12
|
+
const DuckDBBigNumVector_1 = require("./DuckDBBigNumVector");
|
|
13
|
+
const DuckDBBitVector_1 = require("./DuckDBBitVector");
|
|
14
|
+
const DuckDBBlobVector_1 = require("./DuckDBBlobVector");
|
|
15
|
+
const DuckDBBooleanVector_1 = require("./DuckDBBooleanVector");
|
|
16
|
+
const DuckDBDateVector_1 = require("./DuckDBDateVector");
|
|
17
|
+
const DuckDBDecimal128Vector_1 = require("./DuckDBDecimal128Vector");
|
|
18
|
+
const DuckDBDecimal16Vector_1 = require("./DuckDBDecimal16Vector");
|
|
19
|
+
const DuckDBDecimal32Vector_1 = require("./DuckDBDecimal32Vector");
|
|
20
|
+
const DuckDBDecimal64Vector_1 = require("./DuckDBDecimal64Vector");
|
|
21
|
+
const DuckDBDoubleVector_1 = require("./DuckDBDoubleVector");
|
|
22
|
+
const DuckDBEnum16Vector_1 = require("./DuckDBEnum16Vector");
|
|
23
|
+
const DuckDBEnum32Vector_1 = require("./DuckDBEnum32Vector");
|
|
24
|
+
const DuckDBEnum8Vector_1 = require("./DuckDBEnum8Vector");
|
|
25
|
+
const DuckDBFloatVector_1 = require("./DuckDBFloatVector");
|
|
26
|
+
const DuckDBGeometryVector_1 = require("./DuckDBGeometryVector");
|
|
27
|
+
const DuckDBHugeIntVector_1 = require("./DuckDBHugeIntVector");
|
|
28
|
+
const DuckDBIntegerVector_1 = require("./DuckDBIntegerVector");
|
|
29
|
+
const DuckDBIntervalVector_1 = require("./DuckDBIntervalVector");
|
|
30
|
+
const DuckDBListVector_1 = require("./DuckDBListVector");
|
|
31
|
+
const DuckDBMapVector_1 = require("./DuckDBMapVector");
|
|
32
|
+
const DuckDBSmallIntVector_1 = require("./DuckDBSmallIntVector");
|
|
33
|
+
const DuckDBSQLNullVector_1 = require("./DuckDBSQLNullVector");
|
|
34
|
+
const DuckDBStructVector_1 = require("./DuckDBStructVector");
|
|
35
|
+
const DuckDBTupleVector_1 = require("./DuckDBTupleVector");
|
|
36
|
+
const DuckDBTimeNSVector_1 = require("./DuckDBTimeNSVector");
|
|
37
|
+
const DuckDBTimeTZVector_1 = require("./DuckDBTimeTZVector");
|
|
38
|
+
const DuckDBTimeVector_1 = require("./DuckDBTimeVector");
|
|
39
|
+
const DuckDBTimestampMillisecondsVector_1 = require("./DuckDBTimestampMillisecondsVector");
|
|
40
|
+
const DuckDBTimestampNanosecondsVector_1 = require("./DuckDBTimestampNanosecondsVector");
|
|
41
|
+
const DuckDBTimestampSecondsVector_1 = require("./DuckDBTimestampSecondsVector");
|
|
42
|
+
const DuckDBTimestampTZVector_1 = require("./DuckDBTimestampTZVector");
|
|
43
|
+
const DuckDBTimestampTZNanosecondsVector_1 = require("./DuckDBTimestampTZNanosecondsVector");
|
|
44
|
+
const DuckDBTimestampVector_1 = require("./DuckDBTimestampVector");
|
|
45
|
+
const DuckDBTinyIntVector_1 = require("./DuckDBTinyIntVector");
|
|
46
|
+
const DuckDBUBigIntVector_1 = require("./DuckDBUBigIntVector");
|
|
47
|
+
const DuckDBUHugeIntVector_1 = require("./DuckDBUHugeIntVector");
|
|
48
|
+
const DuckDBUIntegerVector_1 = require("./DuckDBUIntegerVector");
|
|
49
|
+
const DuckDBUSmallIntVector_1 = require("./DuckDBUSmallIntVector");
|
|
50
|
+
const DuckDBUTinyIntVector_1 = require("./DuckDBUTinyIntVector");
|
|
51
|
+
const DuckDBUUIDVector_1 = require("./DuckDBUUIDVector");
|
|
52
|
+
const DuckDBUnionVector_1 = require("./DuckDBUnionVector");
|
|
53
|
+
const DuckDBVarCharVector_1 = require("./DuckDBVarCharVector");
|
|
54
|
+
const DuckDBVariantVector_1 = require("./DuckDBVariantVector");
|
|
55
|
+
const vectorRegistry_1 = require("./vectorRegistry");
|
|
56
|
+
function createVector(vector, itemCount, knownType) {
|
|
57
|
+
const vectorType = knownType
|
|
58
|
+
? knownType
|
|
59
|
+
: DuckDBLogicalType_1.DuckDBLogicalType.create(node_bindings_1.default.vector_get_column_type(vector)).asType();
|
|
60
|
+
switch (vectorType.typeId) {
|
|
61
|
+
case DuckDBTypeId_1.DuckDBTypeId.BOOLEAN:
|
|
62
|
+
return DuckDBBooleanVector_1.DuckDBBooleanVector.fromRawVector(vector, itemCount);
|
|
63
|
+
case DuckDBTypeId_1.DuckDBTypeId.TINYINT:
|
|
64
|
+
return DuckDBTinyIntVector_1.DuckDBTinyIntVector.fromRawVector(vector, itemCount);
|
|
65
|
+
case DuckDBTypeId_1.DuckDBTypeId.SMALLINT:
|
|
66
|
+
return DuckDBSmallIntVector_1.DuckDBSmallIntVector.fromRawVector(vector, itemCount);
|
|
67
|
+
case DuckDBTypeId_1.DuckDBTypeId.INTEGER:
|
|
68
|
+
return DuckDBIntegerVector_1.DuckDBIntegerVector.fromRawVector(vector, itemCount);
|
|
69
|
+
case DuckDBTypeId_1.DuckDBTypeId.BIGINT:
|
|
70
|
+
return DuckDBBigIntVector_1.DuckDBBigIntVector.fromRawVector(vector, itemCount);
|
|
71
|
+
case DuckDBTypeId_1.DuckDBTypeId.UTINYINT:
|
|
72
|
+
return DuckDBUTinyIntVector_1.DuckDBUTinyIntVector.fromRawVector(vector, itemCount);
|
|
73
|
+
case DuckDBTypeId_1.DuckDBTypeId.USMALLINT:
|
|
74
|
+
return DuckDBUSmallIntVector_1.DuckDBUSmallIntVector.fromRawVector(vector, itemCount);
|
|
75
|
+
case DuckDBTypeId_1.DuckDBTypeId.UINTEGER:
|
|
76
|
+
return DuckDBUIntegerVector_1.DuckDBUIntegerVector.fromRawVector(vector, itemCount);
|
|
77
|
+
case DuckDBTypeId_1.DuckDBTypeId.UBIGINT:
|
|
78
|
+
return DuckDBUBigIntVector_1.DuckDBUBigIntVector.fromRawVector(vector, itemCount);
|
|
79
|
+
case DuckDBTypeId_1.DuckDBTypeId.FLOAT:
|
|
80
|
+
return DuckDBFloatVector_1.DuckDBFloatVector.fromRawVector(vector, itemCount);
|
|
81
|
+
case DuckDBTypeId_1.DuckDBTypeId.DOUBLE:
|
|
82
|
+
return DuckDBDoubleVector_1.DuckDBDoubleVector.fromRawVector(vector, itemCount);
|
|
83
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP:
|
|
84
|
+
return DuckDBTimestampVector_1.DuckDBTimestampVector.fromRawVector(vector, itemCount);
|
|
85
|
+
case DuckDBTypeId_1.DuckDBTypeId.DATE:
|
|
86
|
+
return DuckDBDateVector_1.DuckDBDateVector.fromRawVector(vector, itemCount);
|
|
87
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIME:
|
|
88
|
+
return DuckDBTimeVector_1.DuckDBTimeVector.fromRawVector(vector, itemCount);
|
|
89
|
+
case DuckDBTypeId_1.DuckDBTypeId.INTERVAL:
|
|
90
|
+
return DuckDBIntervalVector_1.DuckDBIntervalVector.fromRawVector(vector, itemCount);
|
|
91
|
+
case DuckDBTypeId_1.DuckDBTypeId.HUGEINT:
|
|
92
|
+
return DuckDBHugeIntVector_1.DuckDBHugeIntVector.fromRawVector(vector, itemCount);
|
|
93
|
+
case DuckDBTypeId_1.DuckDBTypeId.UHUGEINT:
|
|
94
|
+
return DuckDBUHugeIntVector_1.DuckDBUHugeIntVector.fromRawVector(vector, itemCount);
|
|
95
|
+
case DuckDBTypeId_1.DuckDBTypeId.VARCHAR:
|
|
96
|
+
return DuckDBVarCharVector_1.DuckDBVarCharVector.fromRawVector(vector, itemCount);
|
|
97
|
+
case DuckDBTypeId_1.DuckDBTypeId.BLOB:
|
|
98
|
+
return DuckDBBlobVector_1.DuckDBBlobVector.fromRawVector(vector, itemCount);
|
|
99
|
+
case DuckDBTypeId_1.DuckDBTypeId.DECIMAL:
|
|
100
|
+
if (vectorType instanceof DuckDBType_1.DuckDBDecimalType) {
|
|
101
|
+
const { width } = vectorType;
|
|
102
|
+
if (width <= 0) {
|
|
103
|
+
throw new Error(`DECIMAL width not positive: ${width}`);
|
|
104
|
+
}
|
|
105
|
+
else if (width <= 4) {
|
|
106
|
+
return DuckDBDecimal16Vector_1.DuckDBDecimal16Vector.fromRawVector(vectorType, vector, itemCount);
|
|
107
|
+
}
|
|
108
|
+
else if (width <= 9) {
|
|
109
|
+
return DuckDBDecimal32Vector_1.DuckDBDecimal32Vector.fromRawVector(vectorType, vector, itemCount);
|
|
110
|
+
}
|
|
111
|
+
else if (width <= 18) {
|
|
112
|
+
return DuckDBDecimal64Vector_1.DuckDBDecimal64Vector.fromRawVector(vectorType, vector, itemCount);
|
|
113
|
+
}
|
|
114
|
+
else if (width <= 38) {
|
|
115
|
+
return DuckDBDecimal128Vector_1.DuckDBDecimal128Vector.fromRawVector(vectorType, vector, itemCount);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
throw new Error(`DECIMAL width too large: ${width}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
throw new Error('DuckDBType has DECIMAL type id but is not an instance of DuckDBDecimalType');
|
|
122
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_S:
|
|
123
|
+
return DuckDBTimestampSecondsVector_1.DuckDBTimestampSecondsVector.fromRawVector(vector, itemCount);
|
|
124
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_MS:
|
|
125
|
+
return DuckDBTimestampMillisecondsVector_1.DuckDBTimestampMillisecondsVector.fromRawVector(vector, itemCount);
|
|
126
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_NS:
|
|
127
|
+
return DuckDBTimestampNanosecondsVector_1.DuckDBTimestampNanosecondsVector.fromRawVector(vector, itemCount);
|
|
128
|
+
case DuckDBTypeId_1.DuckDBTypeId.ENUM:
|
|
129
|
+
if (vectorType instanceof DuckDBType_1.DuckDBEnumType) {
|
|
130
|
+
const { internalTypeId } = vectorType;
|
|
131
|
+
switch (internalTypeId) {
|
|
132
|
+
case DuckDBTypeId_1.DuckDBTypeId.UTINYINT:
|
|
133
|
+
return DuckDBEnum8Vector_1.DuckDBEnum8Vector.fromRawVector(vectorType, vector, itemCount);
|
|
134
|
+
case DuckDBTypeId_1.DuckDBTypeId.USMALLINT:
|
|
135
|
+
return DuckDBEnum16Vector_1.DuckDBEnum16Vector.fromRawVector(vectorType, vector, itemCount);
|
|
136
|
+
case DuckDBTypeId_1.DuckDBTypeId.UINTEGER:
|
|
137
|
+
return DuckDBEnum32Vector_1.DuckDBEnum32Vector.fromRawVector(vectorType, vector, itemCount);
|
|
138
|
+
default:
|
|
139
|
+
throw new Error(`unsupported ENUM internal type: ${internalTypeId}`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
throw new Error('DuckDBType has ENUM type id but is not an instance of DuckDBEnumType');
|
|
143
|
+
case DuckDBTypeId_1.DuckDBTypeId.LIST:
|
|
144
|
+
if (vectorType instanceof DuckDBType_1.DuckDBListType) {
|
|
145
|
+
return DuckDBListVector_1.DuckDBListVector.fromRawVector(vectorType, vector, itemCount);
|
|
146
|
+
}
|
|
147
|
+
throw new Error('DuckDBType has LIST type id but is not an instance of DuckDBListType');
|
|
148
|
+
case DuckDBTypeId_1.DuckDBTypeId.STRUCT:
|
|
149
|
+
if (vectorType instanceof DuckDBType_1.DuckDBStructType) {
|
|
150
|
+
if (vectorType.isTuple) {
|
|
151
|
+
return DuckDBTupleVector_1.DuckDBTupleVector.fromRawVector(vectorType, vector, itemCount);
|
|
152
|
+
}
|
|
153
|
+
return DuckDBStructVector_1.DuckDBStructVector.fromRawVector(vectorType, vector, itemCount);
|
|
154
|
+
}
|
|
155
|
+
throw new Error('DuckDBType has STRUCT type id but is not an instance of DuckDBStructType');
|
|
156
|
+
case DuckDBTypeId_1.DuckDBTypeId.MAP:
|
|
157
|
+
if (vectorType instanceof DuckDBType_1.DuckDBMapType) {
|
|
158
|
+
return DuckDBMapVector_1.DuckDBMapVector.fromRawVector(vectorType, vector, itemCount);
|
|
159
|
+
}
|
|
160
|
+
throw new Error('DuckDBType has MAP type id but is not an instance of DuckDBMapType');
|
|
161
|
+
case DuckDBTypeId_1.DuckDBTypeId.ARRAY:
|
|
162
|
+
if (vectorType instanceof DuckDBType_1.DuckDBArrayType) {
|
|
163
|
+
return DuckDBArrayVector_1.DuckDBArrayVector.fromRawVector(vectorType, vector, itemCount);
|
|
164
|
+
}
|
|
165
|
+
throw new Error('DuckDBType has ARRAY type id but is not an instance of DuckDBArrayType');
|
|
166
|
+
case DuckDBTypeId_1.DuckDBTypeId.UUID:
|
|
167
|
+
return DuckDBUUIDVector_1.DuckDBUUIDVector.fromRawVector(vector, itemCount);
|
|
168
|
+
case DuckDBTypeId_1.DuckDBTypeId.UNION:
|
|
169
|
+
if (vectorType instanceof DuckDBType_1.DuckDBUnionType) {
|
|
170
|
+
return DuckDBUnionVector_1.DuckDBUnionVector.fromRawVector(vectorType, vector, itemCount);
|
|
171
|
+
}
|
|
172
|
+
throw new Error('DuckDBType has UNION type id but is not an instance of DuckDBUnionType');
|
|
173
|
+
case DuckDBTypeId_1.DuckDBTypeId.BIT:
|
|
174
|
+
return DuckDBBitVector_1.DuckDBBitVector.fromRawVector(vector, itemCount);
|
|
175
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIME_TZ:
|
|
176
|
+
return DuckDBTimeTZVector_1.DuckDBTimeTZVector.fromRawVector(vector, itemCount);
|
|
177
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_TZ:
|
|
178
|
+
return DuckDBTimestampTZVector_1.DuckDBTimestampTZVector.fromRawVector(vector, itemCount);
|
|
179
|
+
case DuckDBTypeId_1.DuckDBTypeId.ANY:
|
|
180
|
+
throw new Error(`Invalid vector type: ANY`);
|
|
181
|
+
case DuckDBTypeId_1.DuckDBTypeId.BIGNUM:
|
|
182
|
+
return DuckDBBigNumVector_1.DuckDBBigNumVector.fromRawVector(vector, itemCount);
|
|
183
|
+
case DuckDBTypeId_1.DuckDBTypeId.SQLNULL:
|
|
184
|
+
return DuckDBSQLNullVector_1.DuckDBSQLNullVector.fromRawVector(vector, itemCount);
|
|
185
|
+
case DuckDBTypeId_1.DuckDBTypeId.STRING_LITERAL:
|
|
186
|
+
throw new Error(`Invalid vector type: STRING_LITERAL`);
|
|
187
|
+
case DuckDBTypeId_1.DuckDBTypeId.INTEGER_LITERAL:
|
|
188
|
+
throw new Error(`Invalid vector type: INTEGER_LITERAL`);
|
|
189
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIME_NS:
|
|
190
|
+
return DuckDBTimeNSVector_1.DuckDBTimeNSVector.fromRawVector(vector, itemCount);
|
|
191
|
+
case DuckDBTypeId_1.DuckDBTypeId.GEOMETRY:
|
|
192
|
+
return DuckDBGeometryVector_1.DuckDBGeometryVector.fromRawVector(vector, itemCount);
|
|
193
|
+
case DuckDBTypeId_1.DuckDBTypeId.VARIANT:
|
|
194
|
+
return DuckDBVariantVector_1.DuckDBVariantVector.fromRawVector(vector, itemCount);
|
|
195
|
+
case DuckDBTypeId_1.DuckDBTypeId.TIMESTAMP_TZ_NS:
|
|
196
|
+
return DuckDBTimestampTZNanosecondsVector_1.DuckDBTimestampTZNanosecondsVector.fromRawVector(vector, itemCount);
|
|
197
|
+
default:
|
|
198
|
+
throw new Error(`Invalid type id: ${vectorType.typeId}`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
vectorRegistry_1.vectorRegistry.create = createVector;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import duckdb from '@haybarn/node-bindings';
|
|
2
|
+
import { DuckDBDecimalType } from '../DuckDBType';
|
|
3
|
+
import { DuckDBDecimalValue } from '../values';
|
|
4
|
+
export declare const littleEndian: boolean;
|
|
5
|
+
export declare function getUInt8(dataView: DataView, offset: number): number;
|
|
6
|
+
export declare function getInt16(dataView: DataView, offset: number): number;
|
|
7
|
+
export declare function getUInt16(dataView: DataView, offset: number): number;
|
|
8
|
+
export declare function getInt32(dataView: DataView, offset: number): number;
|
|
9
|
+
export declare function getUInt32(dataView: DataView, offset: number): number;
|
|
10
|
+
export declare function getInt64(dataView: DataView, offset: number): bigint;
|
|
11
|
+
export declare function getUInt64(dataView: DataView, offset: number): bigint;
|
|
12
|
+
export declare function getInt128(dataView: DataView, offset: number): bigint;
|
|
13
|
+
export declare function getUInt128(dataView: DataView, offset: number): bigint;
|
|
14
|
+
export declare function getStringBytes(dataView: DataView, offset: number): Uint8Array;
|
|
15
|
+
export declare const textDecoder: TextDecoder;
|
|
16
|
+
export declare function getString(dataView: DataView, offset: number): string;
|
|
17
|
+
export declare function getBuffer(dataView: DataView, offset: number): Buffer;
|
|
18
|
+
export declare function getBigNumFromBytes(bytes: Uint8Array): bigint;
|
|
19
|
+
export declare function getBytesFromBigNum(bignum: bigint): Uint8Array;
|
|
20
|
+
export declare function getBoolean1(dataView: DataView, offset: number): boolean;
|
|
21
|
+
export declare function getBoolean2(dataView: DataView, offset: number): boolean;
|
|
22
|
+
export declare function getBoolean4(dataView: DataView, offset: number): boolean;
|
|
23
|
+
export declare function getBoolean8(dataView: DataView, offset: number): boolean;
|
|
24
|
+
export declare function makeGetBoolean(): (dataView: DataView, offset: number) => boolean;
|
|
25
|
+
export declare const getBoolean: (dataView: DataView, offset: number) => boolean;
|
|
26
|
+
export declare function setUInt8(dataView: DataView, offset: number, value: number): void;
|
|
27
|
+
export declare function setInt16(dataView: DataView, offset: number, value: number): void;
|
|
28
|
+
export declare function setUInt16(dataView: DataView, offset: number, value: number): void;
|
|
29
|
+
export declare function setInt32(dataView: DataView, offset: number, value: number): void;
|
|
30
|
+
export declare function setUInt32(dataView: DataView, offset: number, value: number): void;
|
|
31
|
+
export declare function setInt64(dataView: DataView, offset: number, value: bigint): void;
|
|
32
|
+
export declare function setUInt64(dataView: DataView, offset: number, value: bigint): void;
|
|
33
|
+
export declare function setInt128(dataView: DataView, offset: number, value: bigint): void;
|
|
34
|
+
export declare function setUInt128(dataView: DataView, offset: number, value: bigint): void;
|
|
35
|
+
export declare function setBoolean1(dataView: DataView, offset: number, value: boolean): void;
|
|
36
|
+
export declare function setBoolean2(dataView: DataView, offset: number, value: boolean): void;
|
|
37
|
+
export declare function setBoolean4(dataView: DataView, offset: number, value: boolean): void;
|
|
38
|
+
export declare function setBoolean8(dataView: DataView, offset: number, value: boolean): void;
|
|
39
|
+
export declare function makeSetBoolean(): (dataView: DataView, offset: number, value: boolean) => void;
|
|
40
|
+
export declare const setBoolean: (dataView: DataView, offset: number, value: boolean) => void;
|
|
41
|
+
export declare function getDecimal16(dataView: DataView, offset: number, type: DuckDBDecimalType): DuckDBDecimalValue;
|
|
42
|
+
export declare function getDecimal32(dataView: DataView, offset: number, type: DuckDBDecimalType): DuckDBDecimalValue;
|
|
43
|
+
export declare function getDecimal64(dataView: DataView, offset: number, type: DuckDBDecimalType): DuckDBDecimalValue;
|
|
44
|
+
export declare function getDecimal128(dataView: DataView, offset: number, type: DuckDBDecimalType): DuckDBDecimalValue;
|
|
45
|
+
export declare function vectorData(vector: duckdb.Vector, byteCount: number): Uint8Array;
|
|
@@ -0,0 +1,344 @@
|
|
|
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.setBoolean = exports.getBoolean = exports.textDecoder = exports.littleEndian = void 0;
|
|
7
|
+
exports.getUInt8 = getUInt8;
|
|
8
|
+
exports.getInt16 = getInt16;
|
|
9
|
+
exports.getUInt16 = getUInt16;
|
|
10
|
+
exports.getInt32 = getInt32;
|
|
11
|
+
exports.getUInt32 = getUInt32;
|
|
12
|
+
exports.getInt64 = getInt64;
|
|
13
|
+
exports.getUInt64 = getUInt64;
|
|
14
|
+
exports.getInt128 = getInt128;
|
|
15
|
+
exports.getUInt128 = getUInt128;
|
|
16
|
+
exports.getStringBytes = getStringBytes;
|
|
17
|
+
exports.getString = getString;
|
|
18
|
+
exports.getBuffer = getBuffer;
|
|
19
|
+
exports.getBigNumFromBytes = getBigNumFromBytes;
|
|
20
|
+
exports.getBytesFromBigNum = getBytesFromBigNum;
|
|
21
|
+
exports.getBoolean1 = getBoolean1;
|
|
22
|
+
exports.getBoolean2 = getBoolean2;
|
|
23
|
+
exports.getBoolean4 = getBoolean4;
|
|
24
|
+
exports.getBoolean8 = getBoolean8;
|
|
25
|
+
exports.makeGetBoolean = makeGetBoolean;
|
|
26
|
+
exports.setUInt8 = setUInt8;
|
|
27
|
+
exports.setInt16 = setInt16;
|
|
28
|
+
exports.setUInt16 = setUInt16;
|
|
29
|
+
exports.setInt32 = setInt32;
|
|
30
|
+
exports.setUInt32 = setUInt32;
|
|
31
|
+
exports.setInt64 = setInt64;
|
|
32
|
+
exports.setUInt64 = setUInt64;
|
|
33
|
+
exports.setInt128 = setInt128;
|
|
34
|
+
exports.setUInt128 = setUInt128;
|
|
35
|
+
exports.setBoolean1 = setBoolean1;
|
|
36
|
+
exports.setBoolean2 = setBoolean2;
|
|
37
|
+
exports.setBoolean4 = setBoolean4;
|
|
38
|
+
exports.setBoolean8 = setBoolean8;
|
|
39
|
+
exports.makeSetBoolean = makeSetBoolean;
|
|
40
|
+
exports.getDecimal16 = getDecimal16;
|
|
41
|
+
exports.getDecimal32 = getDecimal32;
|
|
42
|
+
exports.getDecimal64 = getDecimal64;
|
|
43
|
+
exports.getDecimal128 = getDecimal128;
|
|
44
|
+
exports.vectorData = vectorData;
|
|
45
|
+
const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
|
|
46
|
+
const os_1 = __importDefault(require("os"));
|
|
47
|
+
const values_1 = require("../values");
|
|
48
|
+
exports.littleEndian = os_1.default.endianness() === 'LE';
|
|
49
|
+
// function getInt8(dataView: DataView, offset: number): number {
|
|
50
|
+
// return dataView.getInt8(offset);
|
|
51
|
+
// }
|
|
52
|
+
function getUInt8(dataView, offset) {
|
|
53
|
+
return dataView.getUint8(offset);
|
|
54
|
+
}
|
|
55
|
+
function getInt16(dataView, offset) {
|
|
56
|
+
return dataView.getInt16(offset, exports.littleEndian);
|
|
57
|
+
}
|
|
58
|
+
function getUInt16(dataView, offset) {
|
|
59
|
+
return dataView.getUint16(offset, exports.littleEndian);
|
|
60
|
+
}
|
|
61
|
+
function getInt32(dataView, offset) {
|
|
62
|
+
return dataView.getInt32(offset, exports.littleEndian);
|
|
63
|
+
}
|
|
64
|
+
function getUInt32(dataView, offset) {
|
|
65
|
+
return dataView.getUint32(offset, exports.littleEndian);
|
|
66
|
+
}
|
|
67
|
+
function getInt64(dataView, offset) {
|
|
68
|
+
return dataView.getBigInt64(offset, exports.littleEndian);
|
|
69
|
+
}
|
|
70
|
+
function getUInt64(dataView, offset) {
|
|
71
|
+
return dataView.getBigUint64(offset, exports.littleEndian);
|
|
72
|
+
}
|
|
73
|
+
// function getFloat32(dataView: DataView, offset: number): number {
|
|
74
|
+
// return dataView.getFloat32(offset, littleEndian);
|
|
75
|
+
// }
|
|
76
|
+
// function getFloat64(dataView: DataView, offset: number): number {
|
|
77
|
+
// return dataView.getFloat64(offset, littleEndian);
|
|
78
|
+
// }
|
|
79
|
+
function getInt128(dataView, offset) {
|
|
80
|
+
const lower = getUInt64(dataView, offset);
|
|
81
|
+
const upper = getInt64(dataView, offset + 8);
|
|
82
|
+
return (upper << BigInt(64)) + lower;
|
|
83
|
+
}
|
|
84
|
+
function getUInt128(dataView, offset) {
|
|
85
|
+
const lower = getUInt64(dataView, offset);
|
|
86
|
+
const upper = getUInt64(dataView, offset + 8);
|
|
87
|
+
return (BigInt.asUintN(64, upper) << BigInt(64)) | BigInt.asUintN(64, lower);
|
|
88
|
+
}
|
|
89
|
+
function getStringBytes(dataView, offset) {
|
|
90
|
+
const lengthInBytes = dataView.getUint32(offset, true);
|
|
91
|
+
if (lengthInBytes <= 12) {
|
|
92
|
+
return new Uint8Array(dataView.buffer, dataView.byteOffset + offset + 4, lengthInBytes);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
return node_bindings_1.default.get_data_from_pointer(dataView.buffer, dataView.byteOffset + offset + 8, lengthInBytes);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.textDecoder = new TextDecoder();
|
|
99
|
+
function getString(dataView, offset) {
|
|
100
|
+
const stringBytes = getStringBytes(dataView, offset);
|
|
101
|
+
return exports.textDecoder.decode(stringBytes);
|
|
102
|
+
}
|
|
103
|
+
function getBuffer(dataView, offset) {
|
|
104
|
+
const stringBytes = getStringBytes(dataView, offset);
|
|
105
|
+
return Buffer.from(stringBytes);
|
|
106
|
+
}
|
|
107
|
+
function getBigNumFromBytes(bytes) {
|
|
108
|
+
const firstByte = bytes[0];
|
|
109
|
+
const positive = (firstByte & 0x80) > 0;
|
|
110
|
+
const uint64Mask = positive ? 0n : 0xffffffffffffffffn;
|
|
111
|
+
const uint8Mask = positive ? 0 : 0xff;
|
|
112
|
+
const dv = new DataView(// bytes is big endian
|
|
113
|
+
bytes.buffer, bytes.byteOffset + 3, bytes.byteLength - 3);
|
|
114
|
+
const lastUint64Offset = dv.byteLength - 8;
|
|
115
|
+
let offset = 0;
|
|
116
|
+
let result = 0n;
|
|
117
|
+
while (offset <= lastUint64Offset) {
|
|
118
|
+
result = (result << 64n) | (dv.getBigUint64(offset) ^ uint64Mask);
|
|
119
|
+
offset += 8;
|
|
120
|
+
}
|
|
121
|
+
while (offset < dv.byteLength) {
|
|
122
|
+
result = (result << 8n) | BigInt(dv.getUint8(offset) ^ uint8Mask);
|
|
123
|
+
offset += 1;
|
|
124
|
+
}
|
|
125
|
+
return positive ? result : -result;
|
|
126
|
+
}
|
|
127
|
+
function getBytesFromBigNum(bignum) {
|
|
128
|
+
const numberBytes = []; // little endian
|
|
129
|
+
const negative = bignum < 0;
|
|
130
|
+
if (bignum === 0n) {
|
|
131
|
+
numberBytes.push(0);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
let vi = bignum < 0 ? -bignum : bignum;
|
|
135
|
+
while (vi !== 0n) {
|
|
136
|
+
numberBytes.push(Number(BigInt.asUintN(8, vi)));
|
|
137
|
+
vi >>= 8n;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const bigNumBytes = new Uint8Array(3 + numberBytes.length); // big endian
|
|
141
|
+
let header = 0x800000 | numberBytes.length;
|
|
142
|
+
if (negative) {
|
|
143
|
+
header = ~header;
|
|
144
|
+
}
|
|
145
|
+
bigNumBytes[0] = 0xff & (header >> 16);
|
|
146
|
+
bigNumBytes[1] = 0xff & (header >> 8);
|
|
147
|
+
bigNumBytes[2] = 0xff & header;
|
|
148
|
+
for (let i = 0; i < numberBytes.length; i++) {
|
|
149
|
+
const byte = numberBytes[numberBytes.length - 1 - i];
|
|
150
|
+
bigNumBytes[3 + i] = negative ? ~byte : byte;
|
|
151
|
+
}
|
|
152
|
+
return bigNumBytes;
|
|
153
|
+
}
|
|
154
|
+
function getBoolean1(dataView, offset) {
|
|
155
|
+
return getUInt8(dataView, offset) !== 0;
|
|
156
|
+
}
|
|
157
|
+
function getBoolean2(dataView, offset) {
|
|
158
|
+
return getUInt16(dataView, offset) !== 0;
|
|
159
|
+
}
|
|
160
|
+
function getBoolean4(dataView, offset) {
|
|
161
|
+
return getUInt32(dataView, offset) !== 0;
|
|
162
|
+
}
|
|
163
|
+
function getBoolean8(dataView, offset) {
|
|
164
|
+
return getUInt64(dataView, offset) !== BigInt(0);
|
|
165
|
+
}
|
|
166
|
+
function makeGetBoolean() {
|
|
167
|
+
switch (node_bindings_1.default.sizeof_bool) {
|
|
168
|
+
case 1:
|
|
169
|
+
return getBoolean1;
|
|
170
|
+
case 2:
|
|
171
|
+
return getBoolean2;
|
|
172
|
+
case 4:
|
|
173
|
+
return getBoolean4;
|
|
174
|
+
case 8:
|
|
175
|
+
return getBoolean8;
|
|
176
|
+
default:
|
|
177
|
+
throw new Error(`Unsupported boolean size: ${node_bindings_1.default.sizeof_bool}`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.getBoolean = makeGetBoolean();
|
|
181
|
+
// Range checks for fixed-width integers
|
|
182
|
+
// Writing a number to a DataView applies the JS ToInt32 and ToUint32 operations,
|
|
183
|
+
// which wrap out-of-range values modulo the type's width and truncate fractional
|
|
184
|
+
// ones; writing a bigint wraps in the same way. Doing that for data values would
|
|
185
|
+
// silently store something other than what the caller supplied, so the setters
|
|
186
|
+
// below check first. See duckdb/duckdb-node-neo#469.
|
|
187
|
+
//
|
|
188
|
+
// The vectors backed by a typed array rather than a DataView repeat these checks
|
|
189
|
+
// inline instead of calling them: they sit in the inner loop of every bulk write,
|
|
190
|
+
// and calling across a module boundary there costs about 20% of write throughput.
|
|
191
|
+
// Keep the two in sync; api/test/integer-ranges.test.ts checks every bound.
|
|
192
|
+
function checkUInt8(value) {
|
|
193
|
+
if (!Number.isInteger(value)) {
|
|
194
|
+
throw new Error(`number is not an integer`);
|
|
195
|
+
}
|
|
196
|
+
if (value < 0 || value > 255) {
|
|
197
|
+
throw new Error(`number out of uint8 range`);
|
|
198
|
+
}
|
|
199
|
+
return value;
|
|
200
|
+
}
|
|
201
|
+
function checkInt16(value) {
|
|
202
|
+
if (!Number.isInteger(value)) {
|
|
203
|
+
throw new Error(`number is not an integer`);
|
|
204
|
+
}
|
|
205
|
+
if (value < -32768 || value > 32767) {
|
|
206
|
+
throw new Error(`number out of int16 range`);
|
|
207
|
+
}
|
|
208
|
+
return value;
|
|
209
|
+
}
|
|
210
|
+
function checkUInt16(value) {
|
|
211
|
+
if (!Number.isInteger(value)) {
|
|
212
|
+
throw new Error(`number is not an integer`);
|
|
213
|
+
}
|
|
214
|
+
if (value < 0 || value > 65535) {
|
|
215
|
+
throw new Error(`number out of uint16 range`);
|
|
216
|
+
}
|
|
217
|
+
return value;
|
|
218
|
+
}
|
|
219
|
+
function checkInt32(value) {
|
|
220
|
+
if (!Number.isInteger(value)) {
|
|
221
|
+
throw new Error(`number is not an integer`);
|
|
222
|
+
}
|
|
223
|
+
if (value < -2147483648 || value > 2147483647) {
|
|
224
|
+
throw new Error(`number out of int32 range`);
|
|
225
|
+
}
|
|
226
|
+
return value;
|
|
227
|
+
}
|
|
228
|
+
function checkUInt32(value) {
|
|
229
|
+
if (!Number.isInteger(value)) {
|
|
230
|
+
throw new Error(`number is not an integer`);
|
|
231
|
+
}
|
|
232
|
+
if (value < 0 || value > 4294967295) {
|
|
233
|
+
throw new Error(`number out of uint32 range`);
|
|
234
|
+
}
|
|
235
|
+
return value;
|
|
236
|
+
}
|
|
237
|
+
function checkInt64(value) {
|
|
238
|
+
if (BigInt.asIntN(64, value) !== value) {
|
|
239
|
+
throw new Error(`bigint out of int64 range`);
|
|
240
|
+
}
|
|
241
|
+
return value;
|
|
242
|
+
}
|
|
243
|
+
function checkUInt64(value) {
|
|
244
|
+
if (BigInt.asUintN(64, value) !== value) {
|
|
245
|
+
throw new Error(`bigint out of uint64 range`);
|
|
246
|
+
}
|
|
247
|
+
return value;
|
|
248
|
+
}
|
|
249
|
+
function checkInt128(value) {
|
|
250
|
+
if (BigInt.asIntN(128, value) !== value) {
|
|
251
|
+
throw new Error(`bigint out of int128 range`);
|
|
252
|
+
}
|
|
253
|
+
return value;
|
|
254
|
+
}
|
|
255
|
+
function checkUInt128(value) {
|
|
256
|
+
if (BigInt.asUintN(128, value) !== value) {
|
|
257
|
+
throw new Error(`bigint out of uint128 range`);
|
|
258
|
+
}
|
|
259
|
+
return value;
|
|
260
|
+
}
|
|
261
|
+
// function setInt8(dataView: DataView, offset: number, value: number) {
|
|
262
|
+
// dataView.setInt8(offset, value);
|
|
263
|
+
// }
|
|
264
|
+
function setUInt8(dataView, offset, value) {
|
|
265
|
+
dataView.setUint8(offset, checkUInt8(value));
|
|
266
|
+
}
|
|
267
|
+
function setInt16(dataView, offset, value) {
|
|
268
|
+
dataView.setInt16(offset, checkInt16(value), exports.littleEndian);
|
|
269
|
+
}
|
|
270
|
+
function setUInt16(dataView, offset, value) {
|
|
271
|
+
dataView.setUint16(offset, checkUInt16(value), exports.littleEndian);
|
|
272
|
+
}
|
|
273
|
+
function setInt32(dataView, offset, value) {
|
|
274
|
+
dataView.setInt32(offset, checkInt32(value), exports.littleEndian);
|
|
275
|
+
}
|
|
276
|
+
function setUInt32(dataView, offset, value) {
|
|
277
|
+
dataView.setUint32(offset, checkUInt32(value), exports.littleEndian);
|
|
278
|
+
}
|
|
279
|
+
function setInt64(dataView, offset, value) {
|
|
280
|
+
dataView.setBigInt64(offset, checkInt64(value), exports.littleEndian);
|
|
281
|
+
}
|
|
282
|
+
function setUInt64(dataView, offset, value) {
|
|
283
|
+
dataView.setBigUint64(offset, checkUInt64(value), exports.littleEndian);
|
|
284
|
+
}
|
|
285
|
+
function setInt128(dataView, offset, value) {
|
|
286
|
+
checkInt128(value);
|
|
287
|
+
const lower = BigInt.asUintN(64, value);
|
|
288
|
+
const upper = BigInt.asIntN(64, value >> BigInt(64));
|
|
289
|
+
dataView.setBigUint64(offset, lower, exports.littleEndian);
|
|
290
|
+
dataView.setBigInt64(offset + 8, upper, exports.littleEndian);
|
|
291
|
+
}
|
|
292
|
+
function setUInt128(dataView, offset, value) {
|
|
293
|
+
checkUInt128(value);
|
|
294
|
+
const lower = BigInt.asUintN(64, value);
|
|
295
|
+
const upper = BigInt.asUintN(64, value >> BigInt(64));
|
|
296
|
+
dataView.setBigUint64(offset, lower, exports.littleEndian);
|
|
297
|
+
dataView.setBigUint64(offset + 8, upper, exports.littleEndian);
|
|
298
|
+
}
|
|
299
|
+
function setBoolean1(dataView, offset, value) {
|
|
300
|
+
setUInt8(dataView, offset, value ? 1 : 0);
|
|
301
|
+
}
|
|
302
|
+
function setBoolean2(dataView, offset, value) {
|
|
303
|
+
setUInt16(dataView, offset, value ? 1 : 0);
|
|
304
|
+
}
|
|
305
|
+
function setBoolean4(dataView, offset, value) {
|
|
306
|
+
setUInt32(dataView, offset, value ? 1 : 0);
|
|
307
|
+
}
|
|
308
|
+
function setBoolean8(dataView, offset, value) {
|
|
309
|
+
setUInt64(dataView, offset, value ? BigInt(1) : BigInt(0));
|
|
310
|
+
}
|
|
311
|
+
function makeSetBoolean() {
|
|
312
|
+
switch (node_bindings_1.default.sizeof_bool) {
|
|
313
|
+
case 1:
|
|
314
|
+
return setBoolean1;
|
|
315
|
+
case 2:
|
|
316
|
+
return setBoolean2;
|
|
317
|
+
case 4:
|
|
318
|
+
return setBoolean4;
|
|
319
|
+
case 8:
|
|
320
|
+
return setBoolean8;
|
|
321
|
+
default:
|
|
322
|
+
throw new Error(`Unsupported boolean size: ${node_bindings_1.default.sizeof_bool}`);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
exports.setBoolean = makeSetBoolean();
|
|
326
|
+
function getDecimal16(dataView, offset, type) {
|
|
327
|
+
const value = getInt16(dataView, offset);
|
|
328
|
+
return new values_1.DuckDBDecimalValue(BigInt(value), type.width, type.scale);
|
|
329
|
+
}
|
|
330
|
+
function getDecimal32(dataView, offset, type) {
|
|
331
|
+
const value = getInt32(dataView, offset);
|
|
332
|
+
return new values_1.DuckDBDecimalValue(BigInt(value), type.width, type.scale);
|
|
333
|
+
}
|
|
334
|
+
function getDecimal64(dataView, offset, type) {
|
|
335
|
+
const value = getInt64(dataView, offset);
|
|
336
|
+
return new values_1.DuckDBDecimalValue(value, type.width, type.scale);
|
|
337
|
+
}
|
|
338
|
+
function getDecimal128(dataView, offset, type) {
|
|
339
|
+
const value = getInt128(dataView, offset);
|
|
340
|
+
return new values_1.DuckDBDecimalValue(value, type.width, type.scale);
|
|
341
|
+
}
|
|
342
|
+
function vectorData(vector, byteCount) {
|
|
343
|
+
return node_bindings_1.default.vector_get_data(vector, byteCount);
|
|
344
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export * from './DuckDBArrayVector';
|
|
2
|
+
export * from './DuckDBBigIntVector';
|
|
3
|
+
export * from './DuckDBBigNumVector';
|
|
4
|
+
export * from './DuckDBBitVector';
|
|
5
|
+
export * from './DuckDBBlobVector';
|
|
6
|
+
export * from './DuckDBBooleanVector';
|
|
7
|
+
export * from './DuckDBDateVector';
|
|
8
|
+
export * from './DuckDBDecimal128Vector';
|
|
9
|
+
export * from './DuckDBDecimal16Vector';
|
|
10
|
+
export * from './DuckDBDecimal32Vector';
|
|
11
|
+
export * from './DuckDBDecimal64Vector';
|
|
12
|
+
export * from './DuckDBDoubleVector';
|
|
13
|
+
export * from './DuckDBEnum16Vector';
|
|
14
|
+
export * from './DuckDBEnum32Vector';
|
|
15
|
+
export * from './DuckDBEnum8Vector';
|
|
16
|
+
export * from './DuckDBFloatVector';
|
|
17
|
+
export * from './DuckDBGeometryVector';
|
|
18
|
+
export * from './DuckDBHugeIntVector';
|
|
19
|
+
export * from './DuckDBIntegerVector';
|
|
20
|
+
export * from './DuckDBIntervalVector';
|
|
21
|
+
export * from './DuckDBListVector';
|
|
22
|
+
export * from './DuckDBMapVector';
|
|
23
|
+
export * from './DuckDBSmallIntVector';
|
|
24
|
+
export * from './DuckDBSQLNullVector';
|
|
25
|
+
export * from './DuckDBStructVector';
|
|
26
|
+
export * from './DuckDBTimeNSVector';
|
|
27
|
+
export * from './DuckDBTimeTZVector';
|
|
28
|
+
export * from './DuckDBTimeVector';
|
|
29
|
+
export * from './DuckDBTimestampMillisecondsVector';
|
|
30
|
+
export * from './DuckDBTimestampNanosecondsVector';
|
|
31
|
+
export * from './DuckDBTimestampSecondsVector';
|
|
32
|
+
export * from './DuckDBTimestampTZVector';
|
|
33
|
+
export * from './DuckDBTimestampTZNanosecondsVector';
|
|
34
|
+
export * from './DuckDBTimestampVector';
|
|
35
|
+
export * from './DuckDBTinyIntVector';
|
|
36
|
+
export * from './DuckDBTupleVector';
|
|
37
|
+
export * from './DuckDBUBigIntVector';
|
|
38
|
+
export * from './DuckDBUHugeIntVector';
|
|
39
|
+
export * from './DuckDBUIntegerVector';
|
|
40
|
+
export * from './DuckDBUSmallIntVector';
|
|
41
|
+
export * from './DuckDBUTinyIntVector';
|
|
42
|
+
export * from './DuckDBUUIDVector';
|
|
43
|
+
export * from './DuckDBUnionVector';
|
|
44
|
+
export * from './DuckDBVarCharVector';
|
|
45
|
+
export * from './DuckDBVariantVector';
|
|
46
|
+
export * from './DuckDBVector';
|
|
47
|
+
import './createVector';
|