@duckdb/node-bindings 1.5.5-r.3 → 1.5.5-r.5

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 (2) hide show
  1. package/duckdb.d.ts +136 -12
  2. package/package.json +9 -9
package/duckdb.d.ts CHANGED
@@ -95,7 +95,6 @@ export enum Type {
95
95
  VARIANT = 41,
96
96
  }
97
97
 
98
-
99
98
  // Types (no explicit destroy)
100
99
 
101
100
  export interface Date_ {
@@ -183,14 +182,51 @@ export interface TimestampParts {
183
182
  time: TimeParts;
184
183
  }
185
184
 
186
- export interface BindInfo {
185
+ // The C API reuses one opaque handle type for bind info, init info and function
186
+ // info across function families, but the struct behind each handle differs per
187
+ // family and is reinterpret_cast with no check. Passing one family's handle to
188
+ // another family's accessor corrupts memory rather than failing, so each family
189
+ // gets its own type here, and its own runtime type tag in the bindings.
190
+ //
191
+ // __duckdb_type records the underlying C type; __duckdb_function_kind is what
192
+ // keeps the families from being assignable to one another.
193
+
194
+ export interface ScalarFunctionBindInfo {
195
+ __duckdb_type: 'duckdb_bind_info';
196
+ __duckdb_function_kind: 'scalar_function';
197
+ }
198
+
199
+ export interface ScalarFunctionInitInfo {
200
+ __duckdb_type: 'duckdb_init_info';
201
+ __duckdb_function_kind: 'scalar_function';
202
+ }
203
+
204
+ export interface ScalarFunctionInfo {
205
+ __duckdb_type: 'duckdb_function_info';
206
+ __duckdb_function_kind: 'scalar_function';
207
+ }
208
+
209
+ export interface TableFunctionBindInfo {
187
210
  __duckdb_type: 'duckdb_bind_info';
211
+ __duckdb_function_kind: 'table_function';
188
212
  }
189
213
 
190
- export interface FunctionInfo {
214
+ export interface TableFunctionInitInfo {
215
+ __duckdb_type: 'duckdb_init_info';
216
+ __duckdb_function_kind: 'table_function';
217
+ }
218
+
219
+ export interface TableFunctionInfo {
191
220
  __duckdb_type: 'duckdb_function_info';
221
+ __duckdb_function_kind: 'table_function';
192
222
  }
193
223
 
224
+ /** @deprecated Renamed to ScalarFunctionBindInfo. */
225
+ export type BindInfo = ScalarFunctionBindInfo;
226
+
227
+ /** @deprecated Renamed to ScalarFunctionInfo. */
228
+ export type FunctionInfo = ScalarFunctionInfo;
229
+
194
230
  export interface Vector {
195
231
  __duckdb_type: 'duckdb_vector';
196
232
  }
@@ -253,6 +289,10 @@ export interface ScalarFunction {
253
289
  __duckdb_type: 'duckdb_scalar_function';
254
290
  }
255
291
 
292
+ export interface TableFunction {
293
+ __duckdb_type: 'duckdb_table_function';
294
+ }
295
+
256
296
  // export interface SelectionVector {
257
297
  // __duckdb_type: 'duckdb_selection_vector';
258
298
  // }
@@ -273,8 +313,13 @@ export interface ExtractedStatementsAndCount {
273
313
  statement_count: number;
274
314
  }
275
315
 
276
- export type ScalarFunctionBindFunction = (info: BindInfo) => void;
277
- export type ScalarFunctionMainFunction = (info: FunctionInfo, input: DataChunk, output: Vector) => void;
316
+ export type ScalarFunctionBindFunction = (info: ScalarFunctionBindInfo) => void;
317
+ export type ScalarFunctionInitFunction = (info: ScalarFunctionInitInfo) => void;
318
+ export type ScalarFunctionMainFunction = (info: ScalarFunctionInfo, input: DataChunk, output: Vector) => void;
319
+
320
+ export type TableFunctionBindFunction = (info: TableFunctionBindInfo) => void;
321
+ export type TableFunctionInitFunction = (info: TableFunctionInitInfo) => void;
322
+ export type TableFunctionMainFunction = (info: TableFunctionInfo, output: DataChunk) => void;
278
323
 
279
324
  // Functions
280
325
 
@@ -1018,8 +1063,10 @@ export function data_chunk_get_size(chunk: DataChunk): number;
1018
1063
  export function data_chunk_set_size(chunk: DataChunk, size: number): void;
1019
1064
 
1020
1065
  // DUCKDB_C_API duckdb_vector duckdb_create_vector(duckdb_logical_type type, idx_t capacity);
1066
+ export function create_vector(logical_type: LogicalType, capacity: number): Vector;
1021
1067
 
1022
1068
  // DUCKDB_C_API void duckdb_destroy_vector(duckdb_vector *vector);
1069
+ // not exposed: destroyed in finalizer
1023
1070
 
1024
1071
  // DUCKDB_C_API duckdb_logical_type duckdb_vector_get_column_type(duckdb_vector vector);
1025
1072
  export function vector_get_column_type(vector: Vector): LogicalType;
@@ -1064,6 +1111,7 @@ export function array_vector_get_child(vector: Vector): Vector;
1064
1111
  // DUCKDB_C_API void duckdb_vector_copy_sel(duckdb_vector src, duckdb_vector dst, duckdb_selection_vector sel, idx_t src_count, idx_t src_offset, idx_t dst_offset);
1065
1112
 
1066
1113
  // DUCKDB_C_API void duckdb_vector_reference_value(duckdb_vector vector, duckdb_value value);
1114
+ export function vector_reference_value(vector: Vector, value: Value): void;
1067
1115
 
1068
1116
  // DUCKDB_C_API void duckdb_vector_reference_vector(duckdb_vector to_vector, duckdb_vector from_vector);
1069
1117
 
@@ -1110,13 +1158,13 @@ export function scalar_function_set_extra_info(scalar_function: ScalarFunction,
1110
1158
  export function scalar_function_set_bind(scalar_function: ScalarFunction, func: ScalarFunctionBindFunction): void;
1111
1159
 
1112
1160
  // DUCKDB_C_API void duckdb_scalar_function_set_bind_data(duckdb_bind_info info, void *bind_data, duckdb_delete_callback_t destroy);
1113
- export function scalar_function_set_bind_data(info: BindInfo, bind_data: object): void;
1161
+ export function scalar_function_set_bind_data(info: ScalarFunctionBindInfo, bind_data: object): void;
1114
1162
 
1115
1163
  // DUCKDB_C_API void duckdb_scalar_function_set_bind_data_copy(duckdb_bind_info info, duckdb_copy_callback_t copy);
1116
1164
  // not exposed: handled by scalar_function_set_bind_data
1117
1165
 
1118
1166
  // DUCKDB_C_API void duckdb_scalar_function_bind_set_error(duckdb_bind_info info, const char *error);
1119
- export function scalar_function_bind_set_error(bind_info: BindInfo, error: string): void;
1167
+ export function scalar_function_bind_set_error(bind_info: ScalarFunctionBindInfo, error: string): void;
1120
1168
 
1121
1169
  // DUCKDB_C_API void duckdb_scalar_function_set_function(duckdb_scalar_function scalar_function, duckdb_scalar_function_t function);
1122
1170
  export function scalar_function_set_function(scalar_function: ScalarFunction, func: ScalarFunctionMainFunction): void;
@@ -1125,19 +1173,19 @@ export function scalar_function_set_function(scalar_function: ScalarFunction, fu
1125
1173
  export function register_scalar_function(connection: Connection, scalar_function: ScalarFunction): void;
1126
1174
 
1127
1175
  // DUCKDB_C_API void *duckdb_scalar_function_get_extra_info(duckdb_function_info info);
1128
- export function scalar_function_get_extra_info(function_info: FunctionInfo): object | undefined;
1176
+ export function scalar_function_get_extra_info(function_info: ScalarFunctionInfo): object | undefined;
1129
1177
 
1130
1178
  // DUCKDB_C_API void *duckdb_scalar_function_bind_get_extra_info(duckdb_bind_info info);
1131
- export function scalar_function_bind_get_extra_info(bind_info: BindInfo): object | undefined;
1179
+ export function scalar_function_bind_get_extra_info(bind_info: ScalarFunctionBindInfo): object | undefined;
1132
1180
 
1133
1181
  // DUCKDB_C_API void *duckdb_scalar_function_get_bind_data(duckdb_function_info info);
1134
- export function scalar_function_get_bind_data(function_info: FunctionInfo): object | undefined;
1182
+ export function scalar_function_get_bind_data(function_info: ScalarFunctionInfo): object | undefined;
1135
1183
 
1136
1184
  // DUCKDB_C_API void duckdb_scalar_function_get_client_context(duckdb_bind_info info, duckdb_client_context *out_context);
1137
- export function scalar_function_get_client_context(bind_info: BindInfo): ClientContext;
1185
+ export function scalar_function_get_client_context(bind_info: ScalarFunctionBindInfo): ClientContext;
1138
1186
 
1139
1187
  // DUCKDB_C_API void duckdb_scalar_function_set_error(duckdb_function_info info, const char *error);
1140
- export function scalar_function_set_error(function_info: FunctionInfo, error: string): void;
1188
+ export function scalar_function_set_error(function_info: ScalarFunctionInfo, error: string): void;
1141
1189
 
1142
1190
  // DUCKDB_C_API duckdb_scalar_function_set duckdb_create_scalar_function_set(const char *name);
1143
1191
  // DUCKDB_C_API void duckdb_destroy_scalar_function_set(duckdb_scalar_function_set *scalar_function_set);
@@ -1148,12 +1196,25 @@ export function scalar_function_set_error(function_info: FunctionInfo, error: st
1148
1196
  // DUCKDB_C_API duckdb_expression duckdb_scalar_function_bind_get_argument(duckdb_bind_info info, idx_t index);
1149
1197
 
1150
1198
  // DUCKDB_C_API void *duckdb_scalar_function_get_state(duckdb_function_info info);
1199
+ export function scalar_function_get_state(function_info: ScalarFunctionInfo): object | undefined;
1200
+
1151
1201
  // DUCKDB_C_API void duckdb_scalar_function_set_init(duckdb_scalar_function scalar_function, duckdb_scalar_function_init_t init);
1202
+ export function scalar_function_set_init(scalar_function: ScalarFunction, func: ScalarFunctionInitFunction): void;
1203
+
1152
1204
  // DUCKDB_C_API void duckdb_scalar_function_init_set_error(duckdb_init_info info, const char *error);
1205
+ export function scalar_function_init_set_error(init_info: ScalarFunctionInitInfo, error: string): void;
1206
+
1153
1207
  // DUCKDB_C_API void duckdb_scalar_function_init_set_state(duckdb_init_info info, void *state, duckdb_delete_callback_t destroy);
1208
+ export function scalar_function_init_set_state(init_info: ScalarFunctionInitInfo, state: object): void;
1209
+
1154
1210
  // DUCKDB_C_API void duckdb_scalar_function_init_get_client_context(duckdb_init_info info, duckdb_client_context *out_context);
1211
+ export function scalar_function_init_get_client_context(init_info: ScalarFunctionInitInfo): ClientContext;
1212
+
1155
1213
  // DUCKDB_C_API void *duckdb_scalar_function_init_get_bind_data(duckdb_init_info info);
1214
+ export function scalar_function_init_get_bind_data(init_info: ScalarFunctionInitInfo): object | undefined;
1215
+
1156
1216
  // DUCKDB_C_API void *duckdb_scalar_function_init_get_extra_info(duckdb_init_info info);
1217
+ export function scalar_function_init_get_extra_info(init_info: ScalarFunctionInitInfo): object | undefined;
1157
1218
 
1158
1219
  // DUCKDB_C_API duckdb_selection_vector duckdb_create_selection_vector(idx_t size);
1159
1220
  // DUCKDB_C_API void duckdb_destroy_selection_vector(duckdb_selection_vector sel);
@@ -1178,41 +1239,103 @@ export function scalar_function_set_error(function_info: FunctionInfo, error: st
1178
1239
  // DUCKDB_C_API duckdb_state duckdb_register_aggregate_function_set(duckdb_connection con, duckdb_aggregate_function_set set);
1179
1240
 
1180
1241
  // DUCKDB_C_API duckdb_table_function duckdb_create_table_function();
1242
+ export function create_table_function(): TableFunction;
1243
+
1181
1244
  // DUCKDB_C_API void duckdb_destroy_table_function(duckdb_table_function *table_function);
1245
+ export function destroy_table_function_sync(table_function: TableFunction): void;
1246
+
1182
1247
  // DUCKDB_C_API void duckdb_table_function_set_name(duckdb_table_function table_function, const char *name);
1248
+ export function table_function_set_name(table_function: TableFunction, name: string): void;
1249
+
1183
1250
  // DUCKDB_C_API void duckdb_table_function_add_parameter(duckdb_table_function table_function, duckdb_logical_type type);
1251
+ export function table_function_add_parameter(table_function: TableFunction, logical_type: LogicalType): void;
1252
+
1184
1253
  // DUCKDB_C_API void duckdb_table_function_add_named_parameter(duckdb_table_function table_function, const char *name, duckdb_logical_type type);
1254
+ export function table_function_add_named_parameter(table_function: TableFunction, name: string, logical_type: LogicalType): void;
1255
+
1185
1256
  // DUCKDB_C_API void duckdb_table_function_set_extra_info(duckdb_table_function table_function, void *extra_info, duckdb_delete_callback_t destroy);
1257
+ export function table_function_set_extra_info(table_function: TableFunction, extra_info: object): void;
1258
+
1186
1259
  // DUCKDB_C_API void duckdb_table_function_set_bind(duckdb_table_function table_function, duckdb_table_function_bind_t bind);
1260
+ export function table_function_set_bind(table_function: TableFunction, func: TableFunctionBindFunction): void;
1261
+
1187
1262
  // DUCKDB_C_API void duckdb_table_function_set_init(duckdb_table_function table_function, duckdb_table_function_init_t init);
1263
+ export function table_function_set_init(table_function: TableFunction, func: TableFunctionInitFunction): void;
1264
+
1188
1265
  // DUCKDB_C_API void duckdb_table_function_set_local_init(duckdb_table_function table_function, duckdb_table_function_init_t init);
1266
+ export function table_function_set_local_init(table_function: TableFunction, func: TableFunctionInitFunction): void;
1267
+
1189
1268
  // DUCKDB_C_API void duckdb_table_function_set_function(duckdb_table_function table_function, duckdb_table_function_t function);
1269
+ export function table_function_set_function(table_function: TableFunction, func: TableFunctionMainFunction): void;
1270
+
1190
1271
  // DUCKDB_C_API void duckdb_table_function_supports_projection_pushdown(duckdb_table_function table_function, bool pushdown);
1272
+ export function table_function_supports_projection_pushdown(table_function: TableFunction, pushdown: boolean): void;
1273
+
1191
1274
  // DUCKDB_C_API duckdb_state duckdb_register_table_function(duckdb_connection con, duckdb_table_function function);
1275
+ export function register_table_function(connection: Connection, table_function: TableFunction): void;
1192
1276
 
1193
1277
  // DUCKDB_C_API void *duckdb_bind_get_extra_info(duckdb_bind_info info);
1278
+ export function bind_get_extra_info(bind_info: TableFunctionBindInfo): object | undefined;
1279
+
1194
1280
  // DUCKDB_C_API void duckdb_table_function_get_client_context(duckdb_bind_info info, duckdb_client_context *out_context);
1281
+ export function table_function_get_client_context(bind_info: TableFunctionBindInfo): ClientContext;
1282
+
1195
1283
  // DUCKDB_C_API void duckdb_bind_add_result_column(duckdb_bind_info info, const char *name, duckdb_logical_type type);
1284
+ export function bind_add_result_column(bind_info: TableFunctionBindInfo, name: string, logical_type: LogicalType): void;
1285
+
1196
1286
  // DUCKDB_C_API idx_t duckdb_bind_get_parameter_count(duckdb_bind_info info);
1287
+ export function bind_get_parameter_count(bind_info: TableFunctionBindInfo): number;
1288
+
1197
1289
  // DUCKDB_C_API duckdb_value duckdb_bind_get_parameter(duckdb_bind_info info, idx_t index);
1290
+ export function bind_get_parameter(bind_info: TableFunctionBindInfo, index: number): Value;
1291
+
1198
1292
  // DUCKDB_C_API duckdb_value duckdb_bind_get_named_parameter(duckdb_bind_info info, const char *name);
1293
+ export function bind_get_named_parameter(bind_info: TableFunctionBindInfo, name: string): Value | null;
1294
+
1199
1295
  // DUCKDB_C_API void duckdb_bind_set_bind_data(duckdb_bind_info info, void *bind_data, duckdb_delete_callback_t destroy);
1296
+ export function bind_set_bind_data(bind_info: TableFunctionBindInfo, bind_data: object): void;
1297
+
1200
1298
  // DUCKDB_C_API void duckdb_bind_set_cardinality(duckdb_bind_info info, idx_t cardinality, bool is_exact);
1299
+ export function bind_set_cardinality(bind_info: TableFunctionBindInfo, cardinality: number, is_exact: boolean): void;
1300
+
1201
1301
  // DUCKDB_C_API void duckdb_bind_set_error(duckdb_bind_info info, const char *error);
1302
+ export function bind_set_error(bind_info: TableFunctionBindInfo, error: string): void;
1202
1303
 
1203
1304
  // DUCKDB_C_API void *duckdb_init_get_extra_info(duckdb_init_info info);
1305
+ export function init_get_extra_info(init_info: TableFunctionInitInfo): object | undefined;
1306
+
1204
1307
  // DUCKDB_C_API void *duckdb_init_get_bind_data(duckdb_init_info info);
1308
+ export function init_get_bind_data(init_info: TableFunctionInitInfo): object | undefined;
1309
+
1205
1310
  // DUCKDB_C_API void duckdb_init_set_init_data(duckdb_init_info info, void *init_data, duckdb_delete_callback_t destroy);
1311
+ export function init_set_init_data(init_info: TableFunctionInitInfo, init_data: object): void;
1312
+
1206
1313
  // DUCKDB_C_API idx_t duckdb_init_get_column_count(duckdb_init_info info);
1314
+ export function init_get_column_count(init_info: TableFunctionInitInfo): number;
1315
+
1207
1316
  // DUCKDB_C_API idx_t duckdb_init_get_column_index(duckdb_init_info info, idx_t column_index);
1317
+ export function init_get_column_index(init_info: TableFunctionInitInfo, column_index: number): number;
1318
+
1208
1319
  // DUCKDB_C_API void duckdb_init_set_max_threads(duckdb_init_info info, idx_t max_threads);
1320
+ export function init_set_max_threads(init_info: TableFunctionInitInfo, max_threads: number): void;
1321
+
1209
1322
  // DUCKDB_C_API void duckdb_init_set_error(duckdb_init_info info, const char *error);
1323
+ export function init_set_error(init_info: TableFunctionInitInfo, error: string): void;
1210
1324
 
1211
1325
  // DUCKDB_C_API void *duckdb_function_get_extra_info(duckdb_function_info info);
1326
+ export function function_get_extra_info(function_info: TableFunctionInfo): object | undefined;
1327
+
1212
1328
  // DUCKDB_C_API void *duckdb_function_get_bind_data(duckdb_function_info info);
1329
+ export function function_get_bind_data(function_info: TableFunctionInfo): object | undefined;
1330
+
1213
1331
  // DUCKDB_C_API void *duckdb_function_get_init_data(duckdb_function_info info);
1332
+ export function function_get_init_data(function_info: TableFunctionInfo): object | undefined;
1333
+
1214
1334
  // DUCKDB_C_API void *duckdb_function_get_local_init_data(duckdb_function_info info);
1335
+ export function function_get_local_init_data(function_info: TableFunctionInfo): object | undefined;
1336
+
1215
1337
  // DUCKDB_C_API void duckdb_function_set_error(duckdb_function_info info, const char *error);
1338
+ export function function_set_error(function_info: TableFunctionInfo, error: string): void;
1216
1339
 
1217
1340
  // DUCKDB_C_API void duckdb_add_replacement_scan(duckdb_database db, duckdb_replacement_callback_t replacement, void *extra_data, duckdb_delete_callback_t delete_callback);
1218
1341
  // DUCKDB_C_API void duckdb_replacement_scan_set_function_name(duckdb_replacement_scan_info info, const char *function_name);
@@ -1250,6 +1373,7 @@ export function appender_column_type(appender: Appender, column_index: number):
1250
1373
  export function appender_flush_sync(appender: Appender): void;
1251
1374
 
1252
1375
  // DUCKDB_C_API duckdb_state duckdb_appender_clear(duckdb_appender appender);
1376
+ export function appender_clear(appender: Appender): void;
1253
1377
 
1254
1378
  // DUCKDB_C_API duckdb_state duckdb_appender_close(duckdb_appender appender);
1255
1379
  export function appender_close_sync(appender: Appender): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duckdb/node-bindings",
3
- "version": "1.5.5-r.3",
3
+ "version": "1.5.5-r.5",
4
4
  "license": "MIT",
5
5
  "main": "./duckdb.js",
6
6
  "types": "./duckdb.d.ts",
@@ -8,14 +8,14 @@
8
8
  "detect-libc": "^2.1.2"
9
9
  },
10
10
  "optionalDependencies": {
11
- "@duckdb/node-bindings-darwin-arm64": "1.5.5-r.3",
12
- "@duckdb/node-bindings-darwin-x64": "1.5.5-r.3",
13
- "@duckdb/node-bindings-linux-x64": "1.5.5-r.3",
14
- "@duckdb/node-bindings-linux-arm64": "1.5.5-r.3",
15
- "@duckdb/node-bindings-linux-arm64-musl": "1.5.5-r.3",
16
- "@duckdb/node-bindings-linux-x64-musl": "1.5.5-r.3",
17
- "@duckdb/node-bindings-win32-arm64": "1.5.5-r.3",
18
- "@duckdb/node-bindings-win32-x64": "1.5.5-r.3"
11
+ "@duckdb/node-bindings-darwin-x64": "1.5.5-r.5",
12
+ "@duckdb/node-bindings-linux-arm64": "1.5.5-r.5",
13
+ "@duckdb/node-bindings-linux-arm64-musl": "1.5.5-r.5",
14
+ "@duckdb/node-bindings-linux-x64": "1.5.5-r.5",
15
+ "@duckdb/node-bindings-darwin-arm64": "1.5.5-r.5",
16
+ "@duckdb/node-bindings-win32-arm64": "1.5.5-r.5",
17
+ "@duckdb/node-bindings-win32-x64": "1.5.5-r.5",
18
+ "@duckdb/node-bindings-linux-x64-musl": "1.5.5-r.5"
19
19
  },
20
20
  "repository": {
21
21
  "type": "git",