@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.
Files changed (285) hide show
  1. package/README.md +315 -20
  2. package/lib/DuckDBAppender.d.ts +8 -2
  3. package/lib/DuckDBAppender.js +19 -1
  4. package/lib/DuckDBConnection.d.ts +2 -0
  5. package/lib/DuckDBConnection.js +4 -1
  6. package/lib/DuckDBDataChunk.d.ts +30 -0
  7. package/lib/DuckDBDataChunk.js +94 -1
  8. package/lib/DuckDBDataChunkWriter.d.ts +74 -0
  9. package/lib/DuckDBDataChunkWriter.js +109 -0
  10. package/lib/DuckDBLogicalType.d.ts +5 -1
  11. package/lib/DuckDBLogicalType.js +18 -1
  12. package/lib/DuckDBMaterializedResult.d.ts +8 -1
  13. package/lib/DuckDBMaterializedResult.js +22 -2
  14. package/lib/DuckDBPendingResult.d.ts +16 -1
  15. package/lib/DuckDBPendingResult.js +19 -2
  16. package/lib/DuckDBPreparedStatement.d.ts +4 -1
  17. package/lib/DuckDBPreparedStatement.js +17 -4
  18. package/lib/DuckDBResult.d.ts +21 -1
  19. package/lib/DuckDBResult.js +87 -5
  20. package/lib/DuckDBResultReader.d.ts +5 -0
  21. package/lib/DuckDBResultReader.js +9 -2
  22. package/lib/DuckDBScalarFunction.d.ts +9 -5
  23. package/lib/DuckDBScalarFunction.js +14 -5
  24. package/lib/DuckDBScalarFunctionBindInfo.d.ts +16 -0
  25. package/lib/{DuckDBBindInfo.js → DuckDBScalarFunctionBindInfo.js} +5 -3
  26. package/lib/DuckDBScalarFunctionInfo.d.ts +16 -0
  27. package/lib/{DuckDBFunctionInfo.js → DuckDBScalarFunctionInfo.js} +11 -3
  28. package/lib/{DuckDBBindInfo.d.ts → DuckDBScalarFunctionInitInfo.d.ts} +6 -4
  29. package/lib/DuckDBScalarFunctionInitInfo.js +39 -0
  30. package/lib/DuckDBTableFunction.d.ts +41 -0
  31. package/lib/DuckDBTableFunction.js +83 -0
  32. package/lib/DuckDBTableFunctionBindInfo.d.ts +21 -0
  33. package/lib/DuckDBTableFunctionBindInfo.js +54 -0
  34. package/lib/DuckDBTableFunctionInfo.d.ts +15 -0
  35. package/lib/DuckDBTableFunctionInfo.js +42 -0
  36. package/lib/DuckDBTableFunctionInitInfo.d.ts +22 -0
  37. package/lib/DuckDBTableFunctionInitInfo.js +58 -0
  38. package/lib/DuckDBType.d.ts +1 -373
  39. package/lib/DuckDBType.js +14 -927
  40. package/lib/DuckDBTypeId.d.ts +4 -1
  41. package/lib/DuckDBTypeId.js +3 -0
  42. package/lib/DuckDBValueConverter.d.ts +10 -0
  43. package/lib/DuckDBValueConverters.d.ts +27 -0
  44. package/lib/DuckDBValueConverters.js +128 -1
  45. package/lib/DuckDBVector.d.ts +1 -596
  46. package/lib/DuckDBVector.js +14 -2522
  47. package/lib/JSDuckDBValueConverter.d.ts +1 -2
  48. package/lib/JSDuckDBValueConverter.js +5 -2
  49. package/lib/JSInputTypeForTypeId.d.ts +104 -0
  50. package/lib/JSInputTypeForTypeId.js +3 -0
  51. package/lib/JSToDuckDBValueConverter.d.ts +30 -0
  52. package/lib/JSToDuckDBValueConverter.js +83 -0
  53. package/lib/JSTypeForTypeId.d.ts +91 -0
  54. package/lib/JSTypeForTypeId.js +3 -0
  55. package/lib/JsonDuckDBValueConverter.d.ts +1 -2
  56. package/lib/JsonDuckDBValueConverter.js +4 -1
  57. package/lib/JsonTypeForTypeId.d.ts +96 -0
  58. package/lib/JsonTypeForTypeId.js +3 -0
  59. package/lib/ToDuckDBValueConverter.d.ts +41 -0
  60. package/lib/ToDuckDBValueConverter.js +27 -0
  61. package/lib/ToDuckDBValueConverters.d.ts +54 -0
  62. package/lib/ToDuckDBValueConverters.js +199 -0
  63. package/lib/conversion/dateTimeStringConversion.d.ts +2 -2
  64. package/lib/conversion/dateTimeStringConversion.js +20 -7
  65. package/lib/conversion/varintDecode.d.ts +18 -0
  66. package/lib/conversion/varintDecode.js +42 -0
  67. package/lib/convertColumnsFromChunks.d.ts +1 -1
  68. package/lib/convertColumnsFromChunks.js +2 -2
  69. package/lib/createResult.d.ts +2 -1
  70. package/lib/createResult.js +3 -3
  71. package/lib/createValue.js +63 -5
  72. package/lib/duckdb.d.ts +15 -2
  73. package/lib/duckdb.js +15 -2
  74. package/lib/getColumnsFromChunks.d.ts +1 -1
  75. package/lib/getColumnsFromChunks.js +2 -2
  76. package/lib/getColumnsObjectFromChunks.js +3 -0
  77. package/lib/readValue.d.ts +22 -0
  78. package/lib/readValue.js +35 -0
  79. package/lib/typeForValue.js +21 -2
  80. package/lib/types/BaseDuckDBType.d.ts +11 -0
  81. package/lib/types/BaseDuckDBType.js +34 -0
  82. package/lib/types/DuckDBAnyType.d.ts +8 -0
  83. package/lib/types/DuckDBAnyType.js +16 -0
  84. package/lib/types/DuckDBArrayType.d.ts +14 -0
  85. package/lib/types/DuckDBArrayType.js +38 -0
  86. package/lib/types/DuckDBBigIntType.d.ts +12 -0
  87. package/lib/types/DuckDBBigIntType.js +24 -0
  88. package/lib/types/DuckDBBigNumType.d.ts +12 -0
  89. package/lib/types/DuckDBBigNumType.js +24 -0
  90. package/lib/types/DuckDBBitType.d.ts +8 -0
  91. package/lib/types/DuckDBBitType.js +16 -0
  92. package/lib/types/DuckDBBlobType.d.ts +8 -0
  93. package/lib/types/DuckDBBlobType.js +16 -0
  94. package/lib/types/DuckDBBooleanType.d.ts +8 -0
  95. package/lib/types/DuckDBBooleanType.js +16 -0
  96. package/lib/types/DuckDBDateType.d.ts +14 -0
  97. package/lib/types/DuckDBDateType.js +32 -0
  98. package/lib/types/DuckDBDecimalType.d.ts +14 -0
  99. package/lib/types/DuckDBDecimalType.js +45 -0
  100. package/lib/types/DuckDBDoubleType.d.ts +12 -0
  101. package/lib/types/DuckDBDoubleType.js +24 -0
  102. package/lib/types/DuckDBEnumType.d.ts +29 -0
  103. package/lib/types/DuckDBEnumType.js +100 -0
  104. package/lib/types/DuckDBFloatType.d.ts +12 -0
  105. package/lib/types/DuckDBFloatType.js +24 -0
  106. package/lib/types/DuckDBGeometryType.d.ts +19 -0
  107. package/lib/types/DuckDBGeometryType.js +38 -0
  108. package/lib/types/DuckDBHugeIntType.d.ts +12 -0
  109. package/lib/types/DuckDBHugeIntType.js +24 -0
  110. package/lib/types/DuckDBIntegerLiteralType.d.ts +8 -0
  111. package/lib/types/DuckDBIntegerLiteralType.js +16 -0
  112. package/lib/types/DuckDBIntegerType.d.ts +12 -0
  113. package/lib/types/DuckDBIntegerType.js +24 -0
  114. package/lib/types/DuckDBIntervalType.d.ts +8 -0
  115. package/lib/types/DuckDBIntervalType.js +16 -0
  116. package/lib/types/DuckDBListType.d.ts +13 -0
  117. package/lib/types/DuckDBListType.js +35 -0
  118. package/lib/types/DuckDBMapType.d.ts +14 -0
  119. package/lib/types/DuckDBMapType.js +38 -0
  120. package/lib/types/DuckDBSQLNullType.d.ts +10 -0
  121. package/lib/types/DuckDBSQLNullType.js +20 -0
  122. package/lib/types/DuckDBSmallIntType.d.ts +12 -0
  123. package/lib/types/DuckDBSmallIntType.js +24 -0
  124. package/lib/types/DuckDBStringLiteralType.d.ts +8 -0
  125. package/lib/types/DuckDBStringLiteralType.js +16 -0
  126. package/lib/types/DuckDBStructType.d.ts +29 -0
  127. package/lib/types/DuckDBStructType.js +86 -0
  128. package/lib/types/DuckDBTimeNSType.d.ts +11 -0
  129. package/lib/types/DuckDBTimeNSType.js +23 -0
  130. package/lib/types/DuckDBTimeTZType.d.ts +12 -0
  131. package/lib/types/DuckDBTimeTZType.js +26 -0
  132. package/lib/types/DuckDBTimeType.d.ts +11 -0
  133. package/lib/types/DuckDBTimeType.js +23 -0
  134. package/lib/types/DuckDBTimestampMillisecondsType.d.ts +14 -0
  135. package/lib/types/DuckDBTimestampMillisecondsType.js +32 -0
  136. package/lib/types/DuckDBTimestampNanosecondsType.d.ts +14 -0
  137. package/lib/types/DuckDBTimestampNanosecondsType.js +32 -0
  138. package/lib/types/DuckDBTimestampSecondsType.d.ts +14 -0
  139. package/lib/types/DuckDBTimestampSecondsType.js +32 -0
  140. package/lib/types/DuckDBTimestampTZNanosecondsType.d.ts +15 -0
  141. package/lib/types/DuckDBTimestampTZNanosecondsType.js +35 -0
  142. package/lib/types/DuckDBTimestampTZType.d.ts +15 -0
  143. package/lib/types/DuckDBTimestampTZType.js +35 -0
  144. package/lib/types/DuckDBTimestampType.d.ts +16 -0
  145. package/lib/types/DuckDBTimestampType.js +33 -0
  146. package/lib/types/DuckDBTinyIntType.d.ts +12 -0
  147. package/lib/types/DuckDBTinyIntType.js +24 -0
  148. package/lib/types/DuckDBType.d.ts +43 -0
  149. package/lib/types/DuckDBType.js +2 -0
  150. package/lib/types/DuckDBUBigIntType.d.ts +12 -0
  151. package/lib/types/DuckDBUBigIntType.js +24 -0
  152. package/lib/types/DuckDBUHugeIntType.d.ts +12 -0
  153. package/lib/types/DuckDBUHugeIntType.js +24 -0
  154. package/lib/types/DuckDBUIntegerType.d.ts +12 -0
  155. package/lib/types/DuckDBUIntegerType.js +24 -0
  156. package/lib/types/DuckDBUSmallIntType.d.ts +12 -0
  157. package/lib/types/DuckDBUSmallIntType.js +24 -0
  158. package/lib/types/DuckDBUTinyIntType.d.ts +12 -0
  159. package/lib/types/DuckDBUTinyIntType.js +24 -0
  160. package/lib/types/DuckDBUUIDType.d.ts +11 -0
  161. package/lib/types/DuckDBUUIDType.js +23 -0
  162. package/lib/types/DuckDBUnionType.d.ts +18 -0
  163. package/lib/types/DuckDBUnionType.js +64 -0
  164. package/lib/types/DuckDBVarCharType.d.ts +8 -0
  165. package/lib/types/DuckDBVarCharType.js +16 -0
  166. package/lib/types/DuckDBVariantType.d.ts +8 -0
  167. package/lib/types/DuckDBVariantType.js +16 -0
  168. package/lib/types/index.d.ts +44 -0
  169. package/lib/types/index.js +60 -0
  170. package/lib/values/DuckDBGeometryValue.d.ts +12 -0
  171. package/lib/values/DuckDBGeometryValue.js +30 -0
  172. package/lib/values/DuckDBTimestampTZNanosecondsValue.d.ts +14 -0
  173. package/lib/values/DuckDBTimestampTZNanosecondsValue.js +33 -0
  174. package/lib/values/DuckDBTupleValue.d.ts +11 -0
  175. package/lib/values/DuckDBTupleValue.js +22 -0
  176. package/lib/values/DuckDBUUIDValue.js +5 -1
  177. package/lib/values/DuckDBValue.d.ts +5 -1
  178. package/lib/values/DuckDBVariantValue.d.ts +19 -0
  179. package/lib/values/DuckDBVariantValue.js +30 -0
  180. package/lib/values/index.d.ts +4 -0
  181. package/lib/values/index.js +4 -0
  182. package/lib/vectors/DuckDBArrayVector.d.ts +21 -0
  183. package/lib/vectors/DuckDBArrayVector.js +79 -0
  184. package/lib/vectors/DuckDBBigIntVector.d.ts +17 -0
  185. package/lib/vectors/DuckDBBigIntVector.js +58 -0
  186. package/lib/vectors/DuckDBBigNumVector.d.ts +21 -0
  187. package/lib/vectors/DuckDBBigNumVector.js +70 -0
  188. package/lib/vectors/DuckDBBitVector.d.ts +22 -0
  189. package/lib/vectors/DuckDBBitVector.js +74 -0
  190. package/lib/vectors/DuckDBBlobVector.d.ts +32 -0
  191. package/lib/vectors/DuckDBBlobVector.js +83 -0
  192. package/lib/vectors/DuckDBBooleanVector.d.ts +18 -0
  193. package/lib/vectors/DuckDBBooleanVector.js +58 -0
  194. package/lib/vectors/DuckDBDateVector.d.ts +18 -0
  195. package/lib/vectors/DuckDBDateVector.js +64 -0
  196. package/lib/vectors/DuckDBDecimal128Vector.d.ts +21 -0
  197. package/lib/vectors/DuckDBDecimal128Vector.js +64 -0
  198. package/lib/vectors/DuckDBDecimal16Vector.d.ts +21 -0
  199. package/lib/vectors/DuckDBDecimal16Vector.js +64 -0
  200. package/lib/vectors/DuckDBDecimal32Vector.d.ts +21 -0
  201. package/lib/vectors/DuckDBDecimal32Vector.js +64 -0
  202. package/lib/vectors/DuckDBDecimal64Vector.d.ts +21 -0
  203. package/lib/vectors/DuckDBDecimal64Vector.js +64 -0
  204. package/lib/vectors/DuckDBDoubleVector.d.ts +17 -0
  205. package/lib/vectors/DuckDBDoubleVector.js +54 -0
  206. package/lib/vectors/DuckDBEnum16Vector.d.ts +18 -0
  207. package/lib/vectors/DuckDBEnum16Vector.js +57 -0
  208. package/lib/vectors/DuckDBEnum32Vector.d.ts +18 -0
  209. package/lib/vectors/DuckDBEnum32Vector.js +57 -0
  210. package/lib/vectors/DuckDBEnum8Vector.d.ts +18 -0
  211. package/lib/vectors/DuckDBEnum8Vector.js +57 -0
  212. package/lib/vectors/DuckDBFloatVector.d.ts +17 -0
  213. package/lib/vectors/DuckDBFloatVector.js +54 -0
  214. package/lib/vectors/DuckDBGeometryVector.d.ts +22 -0
  215. package/lib/vectors/DuckDBGeometryVector.js +69 -0
  216. package/lib/vectors/DuckDBHugeIntVector.d.ts +19 -0
  217. package/lib/vectors/DuckDBHugeIntVector.js +63 -0
  218. package/lib/vectors/DuckDBIntegerVector.d.ts +17 -0
  219. package/lib/vectors/DuckDBIntegerVector.js +61 -0
  220. package/lib/vectors/DuckDBIntervalVector.d.ts +19 -0
  221. package/lib/vectors/DuckDBIntervalVector.js +67 -0
  222. package/lib/vectors/DuckDBListVector.d.ts +35 -0
  223. package/lib/vectors/DuckDBListVector.js +151 -0
  224. package/lib/vectors/DuckDBMapVector.d.ts +17 -0
  225. package/lib/vectors/DuckDBMapVector.js +60 -0
  226. package/lib/vectors/DuckDBSQLNullVector.d.ts +18 -0
  227. package/lib/vectors/DuckDBSQLNullVector.js +44 -0
  228. package/lib/vectors/DuckDBSmallIntVector.d.ts +17 -0
  229. package/lib/vectors/DuckDBSmallIntVector.js +61 -0
  230. package/lib/vectors/DuckDBStructVector.d.ts +35 -0
  231. package/lib/vectors/DuckDBStructVector.js +105 -0
  232. package/lib/vectors/DuckDBTimeNSVector.d.ts +18 -0
  233. package/lib/vectors/DuckDBTimeNSVector.js +61 -0
  234. package/lib/vectors/DuckDBTimeTZVector.d.ts +18 -0
  235. package/lib/vectors/DuckDBTimeTZVector.js +61 -0
  236. package/lib/vectors/DuckDBTimeVector.d.ts +18 -0
  237. package/lib/vectors/DuckDBTimeVector.js +61 -0
  238. package/lib/vectors/DuckDBTimestampMillisecondsVector.d.ts +18 -0
  239. package/lib/vectors/DuckDBTimestampMillisecondsVector.js +61 -0
  240. package/lib/vectors/DuckDBTimestampNanosecondsVector.d.ts +18 -0
  241. package/lib/vectors/DuckDBTimestampNanosecondsVector.js +61 -0
  242. package/lib/vectors/DuckDBTimestampSecondsVector.d.ts +18 -0
  243. package/lib/vectors/DuckDBTimestampSecondsVector.js +61 -0
  244. package/lib/vectors/DuckDBTimestampTZNanosecondsVector.d.ts +18 -0
  245. package/lib/vectors/DuckDBTimestampTZNanosecondsVector.js +61 -0
  246. package/lib/vectors/DuckDBTimestampTZVector.d.ts +18 -0
  247. package/lib/vectors/DuckDBTimestampTZVector.js +61 -0
  248. package/lib/vectors/DuckDBTimestampVector.d.ts +18 -0
  249. package/lib/vectors/DuckDBTimestampVector.js +61 -0
  250. package/lib/vectors/DuckDBTinyIntVector.d.ts +17 -0
  251. package/lib/vectors/DuckDBTinyIntVector.js +61 -0
  252. package/lib/vectors/DuckDBTupleVector.d.ts +26 -0
  253. package/lib/vectors/DuckDBTupleVector.js +91 -0
  254. package/lib/vectors/DuckDBUBigIntVector.d.ts +17 -0
  255. package/lib/vectors/DuckDBUBigIntVector.js +58 -0
  256. package/lib/vectors/DuckDBUHugeIntVector.d.ts +19 -0
  257. package/lib/vectors/DuckDBUHugeIntVector.js +63 -0
  258. package/lib/vectors/DuckDBUIntegerVector.d.ts +17 -0
  259. package/lib/vectors/DuckDBUIntegerVector.js +61 -0
  260. package/lib/vectors/DuckDBUSmallIntVector.d.ts +17 -0
  261. package/lib/vectors/DuckDBUSmallIntVector.js +61 -0
  262. package/lib/vectors/DuckDBUTinyIntVector.d.ts +17 -0
  263. package/lib/vectors/DuckDBUTinyIntVector.js +61 -0
  264. package/lib/vectors/DuckDBUUIDVector.d.ts +19 -0
  265. package/lib/vectors/DuckDBUUIDVector.js +59 -0
  266. package/lib/vectors/DuckDBUnionVector.d.ts +17 -0
  267. package/lib/vectors/DuckDBUnionVector.js +70 -0
  268. package/lib/vectors/DuckDBValidity.d.ts +12 -0
  269. package/lib/vectors/DuckDBValidity.js +91 -0
  270. package/lib/vectors/DuckDBVarCharVector.d.ts +21 -0
  271. package/lib/vectors/DuckDBVarCharVector.js +74 -0
  272. package/lib/vectors/DuckDBVariantVector.d.ts +42 -0
  273. package/lib/vectors/DuckDBVariantVector.js +461 -0
  274. package/lib/vectors/DuckDBVector.d.ts +14 -0
  275. package/lib/vectors/DuckDBVector.js +27 -0
  276. package/lib/vectors/createVector.d.ts +1 -0
  277. package/lib/vectors/createVector.js +201 -0
  278. package/lib/vectors/dataAccessors.d.ts +45 -0
  279. package/lib/vectors/dataAccessors.js +344 -0
  280. package/lib/vectors/index.d.ts +47 -0
  281. package/lib/vectors/index.js +65 -0
  282. package/lib/vectors/vectorRegistry.d.ts +20 -0
  283. package/lib/vectors/vectorRegistry.js +16 -0
  284. package/package.json +3 -2
  285. package/lib/DuckDBFunctionInfo.d.ts +0 -10
@@ -0,0 +1,61 @@
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.DuckDBTimestampSecondsVector = void 0;
7
+ const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
8
+ const DuckDBType_1 = require("../DuckDBType");
9
+ const values_1 = require("../values");
10
+ const DuckDBVector_1 = require("./DuckDBVector");
11
+ const DuckDBValidity_1 = require("./DuckDBValidity");
12
+ const dataAccessors_1 = require("./dataAccessors");
13
+ class DuckDBTimestampSecondsVector extends DuckDBVector_1.DuckDBVector {
14
+ items;
15
+ validity;
16
+ vector;
17
+ constructor(items, validity, vector) {
18
+ super();
19
+ this.items = items;
20
+ this.validity = validity;
21
+ this.vector = vector;
22
+ }
23
+ static fromRawVector(vector, itemCount) {
24
+ const data = (0, dataAccessors_1.vectorData)(vector, itemCount * BigInt64Array.BYTES_PER_ELEMENT);
25
+ const items = new BigInt64Array(data.buffer, data.byteOffset, itemCount);
26
+ const validity = DuckDBValidity_1.DuckDBValidity.fromVector(vector, itemCount);
27
+ return new DuckDBTimestampSecondsVector(items, validity, vector);
28
+ }
29
+ get type() {
30
+ return DuckDBType_1.DuckDBTimestampSecondsType.instance;
31
+ }
32
+ get itemCount() {
33
+ return this.items.length;
34
+ }
35
+ getItem(itemIndex) {
36
+ return this.validity.itemValid(itemIndex)
37
+ ? new values_1.DuckDBTimestampSecondsValue(this.items[itemIndex])
38
+ : null;
39
+ }
40
+ setItem(itemIndex, value) {
41
+ if (value != null) {
42
+ // Checked inline for bulk-write throughput; see dataAccessors.ts.
43
+ if (BigInt.asIntN(64, value.seconds) !== value.seconds) {
44
+ throw new Error(`bigint out of int64 range`);
45
+ }
46
+ this.items[itemIndex] = value.seconds;
47
+ this.validity.setItemValid(itemIndex, true);
48
+ }
49
+ else {
50
+ this.validity.setItemValid(itemIndex, false);
51
+ }
52
+ }
53
+ flush() {
54
+ node_bindings_1.default.copy_data_to_vector(this.vector, 0, this.items.buffer, this.items.byteOffset, this.items.byteLength);
55
+ this.validity.flush(this.vector);
56
+ }
57
+ slice(offset, length) {
58
+ return new DuckDBTimestampSecondsVector(this.items.slice(offset, offset + length), this.validity.slice(offset, length), this.vector);
59
+ }
60
+ }
61
+ exports.DuckDBTimestampSecondsVector = DuckDBTimestampSecondsVector;
@@ -0,0 +1,18 @@
1
+ import duckdb from '@haybarn/node-bindings';
2
+ import { DuckDBTimestampTZNanosecondsType } from '../DuckDBType';
3
+ import { DuckDBTimestampTZNanosecondsValue } from '../values';
4
+ import { DuckDBVector } from './DuckDBVector';
5
+ import { DuckDBValidity } from './DuckDBValidity';
6
+ export declare class DuckDBTimestampTZNanosecondsVector extends DuckDBVector<DuckDBTimestampTZNanosecondsValue> {
7
+ private readonly items;
8
+ private readonly validity;
9
+ private readonly vector;
10
+ constructor(items: BigInt64Array, validity: DuckDBValidity, vector: duckdb.Vector);
11
+ static fromRawVector(vector: duckdb.Vector, itemCount: number): DuckDBTimestampTZNanosecondsVector;
12
+ get type(): DuckDBTimestampTZNanosecondsType;
13
+ get itemCount(): number;
14
+ getItem(itemIndex: number): DuckDBTimestampTZNanosecondsValue | null;
15
+ setItem(itemIndex: number, value: DuckDBTimestampTZNanosecondsValue | null): void;
16
+ flush(): void;
17
+ slice(offset: number, length: number): DuckDBTimestampTZNanosecondsVector;
18
+ }
@@ -0,0 +1,61 @@
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.DuckDBTimestampTZNanosecondsVector = void 0;
7
+ const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
8
+ const DuckDBType_1 = require("../DuckDBType");
9
+ const values_1 = require("../values");
10
+ const DuckDBVector_1 = require("./DuckDBVector");
11
+ const DuckDBValidity_1 = require("./DuckDBValidity");
12
+ const dataAccessors_1 = require("./dataAccessors");
13
+ class DuckDBTimestampTZNanosecondsVector extends DuckDBVector_1.DuckDBVector {
14
+ items;
15
+ validity;
16
+ vector;
17
+ constructor(items, validity, vector) {
18
+ super();
19
+ this.items = items;
20
+ this.validity = validity;
21
+ this.vector = vector;
22
+ }
23
+ static fromRawVector(vector, itemCount) {
24
+ const data = (0, dataAccessors_1.vectorData)(vector, itemCount * BigInt64Array.BYTES_PER_ELEMENT);
25
+ const items = new BigInt64Array(data.buffer, data.byteOffset, itemCount);
26
+ const validity = DuckDBValidity_1.DuckDBValidity.fromVector(vector, itemCount);
27
+ return new DuckDBTimestampTZNanosecondsVector(items, validity, vector);
28
+ }
29
+ get type() {
30
+ return DuckDBType_1.DuckDBTimestampTZNanosecondsType.instance;
31
+ }
32
+ get itemCount() {
33
+ return this.items.length;
34
+ }
35
+ getItem(itemIndex) {
36
+ return this.validity.itemValid(itemIndex)
37
+ ? new values_1.DuckDBTimestampTZNanosecondsValue(this.items[itemIndex])
38
+ : null;
39
+ }
40
+ setItem(itemIndex, value) {
41
+ if (value != null) {
42
+ // Checked inline for bulk-write throughput; see dataAccessors.ts.
43
+ if (BigInt.asIntN(64, value.nanos) !== value.nanos) {
44
+ throw new Error(`bigint out of int64 range`);
45
+ }
46
+ this.items[itemIndex] = value.nanos;
47
+ this.validity.setItemValid(itemIndex, true);
48
+ }
49
+ else {
50
+ this.validity.setItemValid(itemIndex, false);
51
+ }
52
+ }
53
+ flush() {
54
+ node_bindings_1.default.copy_data_to_vector(this.vector, 0, this.items.buffer, this.items.byteOffset, this.items.byteLength);
55
+ this.validity.flush(this.vector);
56
+ }
57
+ slice(offset, length) {
58
+ return new DuckDBTimestampTZNanosecondsVector(this.items.slice(offset, offset + length), this.validity.slice(offset, length), this.vector);
59
+ }
60
+ }
61
+ exports.DuckDBTimestampTZNanosecondsVector = DuckDBTimestampTZNanosecondsVector;
@@ -0,0 +1,18 @@
1
+ import duckdb from '@haybarn/node-bindings';
2
+ import { DuckDBTimestampTZType } from '../DuckDBType';
3
+ import { DuckDBTimestampTZValue } from '../values';
4
+ import { DuckDBVector } from './DuckDBVector';
5
+ import { DuckDBValidity } from './DuckDBValidity';
6
+ export declare class DuckDBTimestampTZVector extends DuckDBVector<DuckDBTimestampTZValue> {
7
+ private readonly items;
8
+ private readonly validity;
9
+ private readonly vector;
10
+ constructor(items: BigInt64Array, validity: DuckDBValidity, vector: duckdb.Vector);
11
+ static fromRawVector(vector: duckdb.Vector, itemCount: number): DuckDBTimestampTZVector;
12
+ get type(): DuckDBTimestampTZType;
13
+ get itemCount(): number;
14
+ getItem(itemIndex: number): DuckDBTimestampTZValue | null;
15
+ setItem(itemIndex: number, value: DuckDBTimestampTZValue | null): void;
16
+ flush(): void;
17
+ slice(offset: number, length: number): DuckDBTimestampTZVector;
18
+ }
@@ -0,0 +1,61 @@
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.DuckDBTimestampTZVector = void 0;
7
+ const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
8
+ const DuckDBType_1 = require("../DuckDBType");
9
+ const values_1 = require("../values");
10
+ const DuckDBVector_1 = require("./DuckDBVector");
11
+ const DuckDBValidity_1 = require("./DuckDBValidity");
12
+ const dataAccessors_1 = require("./dataAccessors");
13
+ class DuckDBTimestampTZVector extends DuckDBVector_1.DuckDBVector {
14
+ items;
15
+ validity;
16
+ vector;
17
+ constructor(items, validity, vector) {
18
+ super();
19
+ this.items = items;
20
+ this.validity = validity;
21
+ this.vector = vector;
22
+ }
23
+ static fromRawVector(vector, itemCount) {
24
+ const data = (0, dataAccessors_1.vectorData)(vector, itemCount * BigInt64Array.BYTES_PER_ELEMENT);
25
+ const items = new BigInt64Array(data.buffer, data.byteOffset, itemCount);
26
+ const validity = DuckDBValidity_1.DuckDBValidity.fromVector(vector, itemCount);
27
+ return new DuckDBTimestampTZVector(items, validity, vector);
28
+ }
29
+ get type() {
30
+ return DuckDBType_1.DuckDBTimestampTZType.instance;
31
+ }
32
+ get itemCount() {
33
+ return this.items.length;
34
+ }
35
+ getItem(itemIndex) {
36
+ return this.validity.itemValid(itemIndex)
37
+ ? new values_1.DuckDBTimestampTZValue(this.items[itemIndex])
38
+ : null;
39
+ }
40
+ setItem(itemIndex, value) {
41
+ if (value != null) {
42
+ // Checked inline for bulk-write throughput; see dataAccessors.ts.
43
+ if (BigInt.asIntN(64, value.micros) !== value.micros) {
44
+ throw new Error(`bigint out of int64 range`);
45
+ }
46
+ this.items[itemIndex] = value.micros;
47
+ this.validity.setItemValid(itemIndex, true);
48
+ }
49
+ else {
50
+ this.validity.setItemValid(itemIndex, false);
51
+ }
52
+ }
53
+ flush() {
54
+ node_bindings_1.default.copy_data_to_vector(this.vector, 0, this.items.buffer, this.items.byteOffset, this.items.byteLength);
55
+ this.validity.flush(this.vector);
56
+ }
57
+ slice(offset, length) {
58
+ return new DuckDBTimestampTZVector(this.items.slice(offset, offset + length), this.validity.slice(offset, length), this.vector);
59
+ }
60
+ }
61
+ exports.DuckDBTimestampTZVector = DuckDBTimestampTZVector;
@@ -0,0 +1,18 @@
1
+ import duckdb from '@haybarn/node-bindings';
2
+ import { DuckDBTimestampType } from '../DuckDBType';
3
+ import { DuckDBTimestampValue } from '../values';
4
+ import { DuckDBVector } from './DuckDBVector';
5
+ import { DuckDBValidity } from './DuckDBValidity';
6
+ export declare class DuckDBTimestampVector extends DuckDBVector<DuckDBTimestampValue> {
7
+ private readonly items;
8
+ private readonly validity;
9
+ private readonly vector;
10
+ constructor(items: BigInt64Array, validity: DuckDBValidity, vector: duckdb.Vector);
11
+ static fromRawVector(vector: duckdb.Vector, itemCount: number): DuckDBTimestampVector;
12
+ get type(): DuckDBTimestampType;
13
+ get itemCount(): number;
14
+ getItem(itemIndex: number): DuckDBTimestampValue | null;
15
+ setItem(itemIndex: number, value: DuckDBTimestampValue | null): void;
16
+ flush(): void;
17
+ slice(offset: number, length: number): DuckDBTimestampVector;
18
+ }
@@ -0,0 +1,61 @@
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.DuckDBTimestampVector = void 0;
7
+ const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
8
+ const DuckDBType_1 = require("../DuckDBType");
9
+ const values_1 = require("../values");
10
+ const DuckDBVector_1 = require("./DuckDBVector");
11
+ const DuckDBValidity_1 = require("./DuckDBValidity");
12
+ const dataAccessors_1 = require("./dataAccessors");
13
+ class DuckDBTimestampVector extends DuckDBVector_1.DuckDBVector {
14
+ items;
15
+ validity;
16
+ vector;
17
+ constructor(items, validity, vector) {
18
+ super();
19
+ this.items = items;
20
+ this.validity = validity;
21
+ this.vector = vector;
22
+ }
23
+ static fromRawVector(vector, itemCount) {
24
+ const data = (0, dataAccessors_1.vectorData)(vector, itemCount * BigInt64Array.BYTES_PER_ELEMENT);
25
+ const items = new BigInt64Array(data.buffer, data.byteOffset, itemCount);
26
+ const validity = DuckDBValidity_1.DuckDBValidity.fromVector(vector, itemCount);
27
+ return new DuckDBTimestampVector(items, validity, vector);
28
+ }
29
+ get type() {
30
+ return DuckDBType_1.DuckDBTimestampType.instance;
31
+ }
32
+ get itemCount() {
33
+ return this.items.length;
34
+ }
35
+ getItem(itemIndex) {
36
+ return this.validity.itemValid(itemIndex)
37
+ ? new values_1.DuckDBTimestampValue(this.items[itemIndex])
38
+ : null;
39
+ }
40
+ setItem(itemIndex, value) {
41
+ if (value != null) {
42
+ // Checked inline for bulk-write throughput; see dataAccessors.ts.
43
+ if (BigInt.asIntN(64, value.micros) !== value.micros) {
44
+ throw new Error(`bigint out of int64 range`);
45
+ }
46
+ this.items[itemIndex] = value.micros;
47
+ this.validity.setItemValid(itemIndex, true);
48
+ }
49
+ else {
50
+ this.validity.setItemValid(itemIndex, false);
51
+ }
52
+ }
53
+ flush() {
54
+ node_bindings_1.default.copy_data_to_vector(this.vector, 0, this.items.buffer, this.items.byteOffset, this.items.byteLength);
55
+ this.validity.flush(this.vector);
56
+ }
57
+ slice(offset, length) {
58
+ return new DuckDBTimestampVector(this.items.slice(offset, offset + length), this.validity.slice(offset, length), this.vector);
59
+ }
60
+ }
61
+ exports.DuckDBTimestampVector = DuckDBTimestampVector;
@@ -0,0 +1,17 @@
1
+ import duckdb from '@haybarn/node-bindings';
2
+ import { DuckDBTinyIntType } from '../DuckDBType';
3
+ import { DuckDBVector } from './DuckDBVector';
4
+ import { DuckDBValidity } from './DuckDBValidity';
5
+ export declare class DuckDBTinyIntVector extends DuckDBVector<number> {
6
+ private readonly items;
7
+ private readonly validity;
8
+ private readonly vector;
9
+ constructor(items: Int8Array, validity: DuckDBValidity, vector: duckdb.Vector);
10
+ static fromRawVector(vector: duckdb.Vector, itemCount: number): DuckDBTinyIntVector;
11
+ get type(): DuckDBTinyIntType;
12
+ get itemCount(): number;
13
+ getItem(itemIndex: number): number | null;
14
+ setItem(itemIndex: number, value: number | null): void;
15
+ flush(): void;
16
+ slice(offset: number, length: number): DuckDBTinyIntVector;
17
+ }
@@ -0,0 +1,61 @@
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.DuckDBTinyIntVector = void 0;
7
+ const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
8
+ const DuckDBType_1 = require("../DuckDBType");
9
+ const DuckDBVector_1 = require("./DuckDBVector");
10
+ const DuckDBValidity_1 = require("./DuckDBValidity");
11
+ const dataAccessors_1 = require("./dataAccessors");
12
+ class DuckDBTinyIntVector extends DuckDBVector_1.DuckDBVector {
13
+ items;
14
+ validity;
15
+ vector;
16
+ constructor(items, validity, vector) {
17
+ super();
18
+ this.items = items;
19
+ this.validity = validity;
20
+ this.vector = vector;
21
+ }
22
+ static fromRawVector(vector, itemCount) {
23
+ const data = (0, dataAccessors_1.vectorData)(vector, itemCount * Int8Array.BYTES_PER_ELEMENT);
24
+ const items = new Int8Array(data.buffer, data.byteOffset, itemCount);
25
+ const validity = DuckDBValidity_1.DuckDBValidity.fromVector(vector, itemCount);
26
+ return new DuckDBTinyIntVector(items, validity, vector);
27
+ }
28
+ get type() {
29
+ return DuckDBType_1.DuckDBTinyIntType.instance;
30
+ }
31
+ get itemCount() {
32
+ return this.items.length;
33
+ }
34
+ getItem(itemIndex) {
35
+ return this.validity.itemValid(itemIndex) ? this.items[itemIndex] : null;
36
+ }
37
+ setItem(itemIndex, value) {
38
+ if (value != null) {
39
+ // Checked inline for bulk-write throughput; see dataAccessors.ts.
40
+ if (!Number.isInteger(value)) {
41
+ throw new Error(`number is not an integer`);
42
+ }
43
+ if (value < -128 || value > 127) {
44
+ throw new Error(`number out of int8 range`);
45
+ }
46
+ this.items[itemIndex] = value;
47
+ this.validity.setItemValid(itemIndex, true);
48
+ }
49
+ else {
50
+ this.validity.setItemValid(itemIndex, false);
51
+ }
52
+ }
53
+ flush() {
54
+ node_bindings_1.default.copy_data_to_vector(this.vector, 0, this.items.buffer, this.items.byteOffset, this.items.byteLength);
55
+ this.validity.flush(this.vector);
56
+ }
57
+ slice(offset, length) {
58
+ return new DuckDBTinyIntVector(this.items.slice(offset, offset + length), this.validity.slice(offset, length), this.vector);
59
+ }
60
+ }
61
+ exports.DuckDBTinyIntVector = DuckDBTinyIntVector;
@@ -0,0 +1,26 @@
1
+ import duckdb from '@haybarn/node-bindings';
2
+ import { DuckDBStructType } from '../DuckDBType';
3
+ import { DuckDBTupleValue, DuckDBValue } from '../values';
4
+ import { DuckDBVector } from './DuckDBVector';
5
+ import { DuckDBValidity } from './DuckDBValidity';
6
+ /**
7
+ * A vector of a tuple type: a STRUCT whose entry names are all empty (see
8
+ * `DuckDBStructType.isTuple`). Items are `DuckDBTupleValue`s.
9
+ */
10
+ export declare class DuckDBTupleVector extends DuckDBVector<DuckDBTupleValue> {
11
+ private readonly tupleType;
12
+ private readonly _itemCount;
13
+ private readonly entryVectors;
14
+ private readonly validity;
15
+ private readonly vector;
16
+ constructor(tupleType: DuckDBStructType, itemCount: number, entryVectors: readonly DuckDBVector[], validity: DuckDBValidity, vector: duckdb.Vector);
17
+ static fromRawVector(tupleType: DuckDBStructType, vector: duckdb.Vector, itemCount: number): DuckDBTupleVector;
18
+ get type(): DuckDBStructType;
19
+ get itemCount(): number;
20
+ getItem(itemIndex: number): DuckDBTupleValue | null;
21
+ getItemValue(itemIndex: number, entryIndex: number): DuckDBValue | null;
22
+ setItem(itemIndex: number, value: DuckDBTupleValue | null): void;
23
+ setItemValue(itemIndex: number, entryIndex: number, value: DuckDBValue): void;
24
+ flush(): void;
25
+ slice(offset: number, length: number): DuckDBTupleVector;
26
+ }
@@ -0,0 +1,91 @@
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.DuckDBTupleVector = void 0;
7
+ const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
8
+ const values_1 = require("../values");
9
+ const DuckDBVector_1 = require("./DuckDBVector");
10
+ const DuckDBValidity_1 = require("./DuckDBValidity");
11
+ /**
12
+ * A vector of a tuple type: a STRUCT whose entry names are all empty (see
13
+ * `DuckDBStructType.isTuple`). Items are `DuckDBTupleValue`s.
14
+ */
15
+ class DuckDBTupleVector extends DuckDBVector_1.DuckDBVector {
16
+ tupleType;
17
+ _itemCount;
18
+ entryVectors;
19
+ validity;
20
+ vector;
21
+ constructor(tupleType, itemCount, entryVectors, validity, vector) {
22
+ super();
23
+ this.tupleType = tupleType;
24
+ this._itemCount = itemCount;
25
+ this.entryVectors = entryVectors;
26
+ this.validity = validity;
27
+ this.vector = vector;
28
+ }
29
+ static fromRawVector(tupleType, vector, itemCount) {
30
+ const entryCount = tupleType.entryCount;
31
+ const entryVectors = [];
32
+ for (let i = 0; i < entryCount; i++) {
33
+ const child_vector = node_bindings_1.default.struct_vector_get_child(vector, i);
34
+ entryVectors.push(DuckDBVector_1.DuckDBVector.create(child_vector, itemCount, tupleType.entryTypes[i]));
35
+ }
36
+ const validity = DuckDBValidity_1.DuckDBValidity.fromVector(vector, itemCount);
37
+ return new DuckDBTupleVector(tupleType, itemCount, entryVectors, validity, vector);
38
+ }
39
+ get type() {
40
+ return this.tupleType;
41
+ }
42
+ get itemCount() {
43
+ return this._itemCount;
44
+ }
45
+ getItem(itemIndex) {
46
+ if (!this.validity.itemValid(itemIndex)) {
47
+ return null;
48
+ }
49
+ return new values_1.DuckDBTupleValue(this.entryVectors.map((entryVector) => entryVector.getItem(itemIndex)));
50
+ }
51
+ getItemValue(itemIndex, entryIndex) {
52
+ if (!this.validity.itemValid(itemIndex)) {
53
+ return null;
54
+ }
55
+ return this.entryVectors[entryIndex].getItem(itemIndex);
56
+ }
57
+ setItem(itemIndex, value) {
58
+ if (value != null) {
59
+ if (!(value instanceof values_1.DuckDBTupleValue)) {
60
+ throw new Error(`Expected DuckDBTupleValue for ${this.tupleType}`);
61
+ }
62
+ const entryCount = this.tupleType.entryCount;
63
+ if (value.items.length !== entryCount) {
64
+ throw new Error(`Expected ${entryCount} items for ${this.tupleType}, got ${value.items.length}`);
65
+ }
66
+ for (let i = 0; i < entryCount; i++) {
67
+ this.entryVectors[i].setItem(itemIndex, value.items[i]);
68
+ }
69
+ this.validity.setItemValid(itemIndex, true);
70
+ }
71
+ else {
72
+ for (const entryVector of this.entryVectors) {
73
+ entryVector.setItem(itemIndex, null);
74
+ }
75
+ this.validity.setItemValid(itemIndex, false);
76
+ }
77
+ }
78
+ setItemValue(itemIndex, entryIndex, value) {
79
+ return this.entryVectors[entryIndex].setItem(itemIndex, value);
80
+ }
81
+ flush() {
82
+ for (const entryVector of this.entryVectors) {
83
+ entryVector.flush();
84
+ }
85
+ this.validity.flush(this.vector);
86
+ }
87
+ slice(offset, length) {
88
+ return new DuckDBTupleVector(this.tupleType, length, this.entryVectors.map((entryVector) => entryVector.slice(offset, length)), this.validity.slice(offset, length), this.vector);
89
+ }
90
+ }
91
+ exports.DuckDBTupleVector = DuckDBTupleVector;
@@ -0,0 +1,17 @@
1
+ import duckdb from '@haybarn/node-bindings';
2
+ import { DuckDBUBigIntType } from '../DuckDBType';
3
+ import { DuckDBVector } from './DuckDBVector';
4
+ import { DuckDBValidity } from './DuckDBValidity';
5
+ export declare class DuckDBUBigIntVector extends DuckDBVector<bigint> {
6
+ private readonly items;
7
+ private readonly validity;
8
+ private readonly vector;
9
+ constructor(items: BigUint64Array, validity: DuckDBValidity, vector: duckdb.Vector);
10
+ static fromRawVector(vector: duckdb.Vector, itemCount: number): DuckDBUBigIntVector;
11
+ get type(): DuckDBUBigIntType;
12
+ get itemCount(): number;
13
+ getItem(itemIndex: number): bigint | null;
14
+ setItem(itemIndex: number, value: bigint | null): void;
15
+ flush(): void;
16
+ slice(offset: number, length: number): DuckDBUBigIntVector;
17
+ }
@@ -0,0 +1,58 @@
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.DuckDBUBigIntVector = void 0;
7
+ const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
8
+ const DuckDBType_1 = require("../DuckDBType");
9
+ const DuckDBVector_1 = require("./DuckDBVector");
10
+ const DuckDBValidity_1 = require("./DuckDBValidity");
11
+ const dataAccessors_1 = require("./dataAccessors");
12
+ class DuckDBUBigIntVector extends DuckDBVector_1.DuckDBVector {
13
+ items;
14
+ validity;
15
+ vector;
16
+ constructor(items, validity, vector) {
17
+ super();
18
+ this.items = items;
19
+ this.validity = validity;
20
+ this.vector = vector;
21
+ }
22
+ static fromRawVector(vector, itemCount) {
23
+ const data = (0, dataAccessors_1.vectorData)(vector, itemCount * BigUint64Array.BYTES_PER_ELEMENT);
24
+ const items = new BigUint64Array(data.buffer, data.byteOffset, itemCount);
25
+ const validity = DuckDBValidity_1.DuckDBValidity.fromVector(vector, itemCount);
26
+ return new DuckDBUBigIntVector(items, validity, vector);
27
+ }
28
+ get type() {
29
+ return DuckDBType_1.DuckDBUBigIntType.instance;
30
+ }
31
+ get itemCount() {
32
+ return this.items.length;
33
+ }
34
+ getItem(itemIndex) {
35
+ return this.validity.itemValid(itemIndex) ? this.items[itemIndex] : null;
36
+ }
37
+ setItem(itemIndex, value) {
38
+ if (value != null) {
39
+ // Checked inline for bulk-write throughput; see dataAccessors.ts.
40
+ if (BigInt.asUintN(64, value) !== value) {
41
+ throw new Error(`bigint out of uint64 range`);
42
+ }
43
+ this.items[itemIndex] = value;
44
+ this.validity.setItemValid(itemIndex, true);
45
+ }
46
+ else {
47
+ this.validity.setItemValid(itemIndex, false);
48
+ }
49
+ }
50
+ flush() {
51
+ node_bindings_1.default.copy_data_to_vector(this.vector, 0, this.items.buffer, this.items.byteOffset, this.items.byteLength);
52
+ this.validity.flush(this.vector);
53
+ }
54
+ slice(offset, length) {
55
+ return new DuckDBUBigIntVector(this.items.slice(offset, offset + length), this.validity.slice(offset, length), this.vector);
56
+ }
57
+ }
58
+ exports.DuckDBUBigIntVector = DuckDBUBigIntVector;
@@ -0,0 +1,19 @@
1
+ import duckdb from '@haybarn/node-bindings';
2
+ import { DuckDBUHugeIntType } from '../DuckDBType';
3
+ import { DuckDBVector } from './DuckDBVector';
4
+ import { DuckDBValidity } from './DuckDBValidity';
5
+ export declare class DuckDBUHugeIntVector extends DuckDBVector<bigint> {
6
+ private readonly dataView;
7
+ private readonly validity;
8
+ private readonly vector;
9
+ private readonly _itemCount;
10
+ constructor(dataView: DataView, validity: DuckDBValidity, vector: duckdb.Vector, itemCount: number);
11
+ static fromRawVector(vector: duckdb.Vector, itemCount: number): DuckDBUHugeIntVector;
12
+ get type(): DuckDBUHugeIntType;
13
+ get itemCount(): number;
14
+ getItem(itemIndex: number): bigint | null;
15
+ getDouble(itemIndex: number): number | null;
16
+ setItem(itemIndex: number, value: bigint | null): void;
17
+ flush(): void;
18
+ slice(offset: number, length: number): DuckDBUHugeIntVector;
19
+ }
@@ -0,0 +1,63 @@
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.DuckDBUHugeIntVector = void 0;
7
+ const node_bindings_1 = __importDefault(require("@haybarn/node-bindings"));
8
+ const DuckDBType_1 = require("../DuckDBType");
9
+ const DuckDBVector_1 = require("./DuckDBVector");
10
+ const DuckDBValidity_1 = require("./DuckDBValidity");
11
+ const dataAccessors_1 = require("./dataAccessors");
12
+ class DuckDBUHugeIntVector extends DuckDBVector_1.DuckDBVector {
13
+ dataView;
14
+ validity;
15
+ vector;
16
+ _itemCount;
17
+ constructor(dataView, validity, vector, itemCount) {
18
+ super();
19
+ this.dataView = dataView;
20
+ this.validity = validity;
21
+ this.vector = vector;
22
+ this._itemCount = itemCount;
23
+ }
24
+ static fromRawVector(vector, itemCount) {
25
+ const data = (0, dataAccessors_1.vectorData)(vector, itemCount * 16);
26
+ const dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);
27
+ const validity = DuckDBValidity_1.DuckDBValidity.fromVector(vector, itemCount);
28
+ return new DuckDBUHugeIntVector(dataView, validity, vector, itemCount);
29
+ }
30
+ get type() {
31
+ return DuckDBType_1.DuckDBUHugeIntType.instance;
32
+ }
33
+ get itemCount() {
34
+ return this._itemCount;
35
+ }
36
+ getItem(itemIndex) {
37
+ return this.validity.itemValid(itemIndex)
38
+ ? (0, dataAccessors_1.getUInt128)(this.dataView, itemIndex * 16)
39
+ : null;
40
+ }
41
+ getDouble(itemIndex) {
42
+ return this.validity.itemValid(itemIndex)
43
+ ? node_bindings_1.default.uhugeint_to_double((0, dataAccessors_1.getUInt128)(this.dataView, itemIndex * 16))
44
+ : null;
45
+ }
46
+ setItem(itemIndex, value) {
47
+ if (value != null) {
48
+ (0, dataAccessors_1.setUInt128)(this.dataView, itemIndex * 16, value);
49
+ this.validity.setItemValid(itemIndex, true);
50
+ }
51
+ else {
52
+ this.validity.setItemValid(itemIndex, false);
53
+ }
54
+ }
55
+ flush() {
56
+ node_bindings_1.default.copy_data_to_vector(this.vector, 0, this.dataView.buffer, this.dataView.byteOffset, this.dataView.byteLength);
57
+ this.validity.flush(this.vector);
58
+ }
59
+ slice(offset, length) {
60
+ return new DuckDBUHugeIntVector(new DataView(this.dataView.buffer, this.dataView.byteOffset + offset * 16, length * 16), this.validity.slice(offset, length), this.vector, length);
61
+ }
62
+ }
63
+ exports.DuckDBUHugeIntVector = DuckDBUHugeIntVector;