Skip to content

Commit

Permalink
vector writing functions
Browse files Browse the repository at this point in the history
  • Loading branch information
jraymakers committed Oct 8, 2024
1 parent 2ae39f8 commit f1e3417
Showing 1 changed file with 29 additions and 7 deletions.
36 changes: 29 additions & 7 deletions bindings/src/duckdb_node_bindings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2456,14 +2456,20 @@ class DuckDBNodeAddon : public Napi::Addon<DuckDBNodeAddon> {
// function vector_ensure_validity_writable(vector: Vector): void
Napi::Value vector_ensure_validity_writable(const Napi::CallbackInfo& info) {
auto env = info.Env();
throw Napi::Error::New(env, "Not implemented yet");
auto vector = GetVectorFromExternal(env, info[0]);
duckdb_vector_ensure_validity_writable(vector);
return env.Undefined();
}

// DUCKDB_API void duckdb_vector_assign_string_element(duckdb_vector vector, idx_t index, const char *str);
// function vector_assign_string_element(vector: Vector, index: number, str: string): void
Napi::Value vector_assign_string_element(const Napi::CallbackInfo& info) {
auto env = info.Env();
throw Napi::Error::New(env, "Not implemented yet");
auto vector = GetVectorFromExternal(env, info[0]);
auto index = info[1].As<Napi::Number>().Uint32Value();
std::string str = info[2].As<Napi::String>();
duckdb_vector_assign_string_element(vector, index, str.c_str());
return env.Undefined();
}

// DUCKDB_API void duckdb_vector_assign_string_element_len(duckdb_vector vector, idx_t index, const char *str, idx_t str_len);
Expand Down Expand Up @@ -2491,14 +2497,20 @@ class DuckDBNodeAddon : public Napi::Addon<DuckDBNodeAddon> {
// function list_vector_set_size(vector: Vector, size: number): void
Napi::Value list_vector_set_size(const Napi::CallbackInfo& info) {
auto env = info.Env();
throw Napi::Error::New(env, "Not implemented yet");
auto vector = GetVectorFromExternal(env, info[0]);
auto size = info[1].As<Napi::Number>().Uint32Value();
duckdb_list_vector_set_size(vector, size);
return env.Undefined();
}

// DUCKDB_API duckdb_state duckdb_list_vector_reserve(duckdb_vector vector, idx_t required_capacity);
// function list_vector_reserve(vector: Vector, required_capacity: number): void
Napi::Value list_vector_reserve(const Napi::CallbackInfo& info) {
auto env = info.Env();
throw Napi::Error::New(env, "Not implemented yet");
auto vector = GetVectorFromExternal(env, info[0]);
auto required_capacity = info[1].As<Napi::Number>().Uint32Value();
duckdb_list_vector_reserve(vector, required_capacity);
return env.Undefined();
}

// DUCKDB_API duckdb_vector duckdb_struct_vector_get_child(duckdb_vector vector, idx_t index);
Expand Down Expand Up @@ -2534,21 +2546,31 @@ class DuckDBNodeAddon : public Napi::Addon<DuckDBNodeAddon> {
// function validity_set_row_validity(validity: Uint8Array, row_index: number, valid: boolean): void
Napi::Value validity_set_row_validity(const Napi::CallbackInfo& info) {
auto env = info.Env();
throw Napi::Error::New(env, "Not implemented yet");
auto validity = reinterpret_cast<uint64_t*>(info[0].As<Napi::Uint8Array>().Data());
auto row_index = info[1].As<Napi::Number>().Uint32Value();
auto valid = info[2].As<Napi::Boolean>();
duckdb_validity_set_row_validity(validity, row_index, valid);
return env.Undefined();
}

// DUCKDB_API void duckdb_validity_set_row_invalid(uint64_t *validity, idx_t row);
// function validity_set_row_invalid(validity: Uint8Array, row_index: number): void
Napi::Value validity_set_row_invalid(const Napi::CallbackInfo& info) {
auto env = info.Env();
throw Napi::Error::New(env, "Not implemented yet");
auto validity = reinterpret_cast<uint64_t*>(info[0].As<Napi::Uint8Array>().Data());
auto row_index = info[1].As<Napi::Number>().Uint32Value();
duckdb_validity_set_row_invalid(validity, row_index);
return env.Undefined();
}

// DUCKDB_API void duckdb_validity_set_row_valid(uint64_t *validity, idx_t row);
// function validity_set_row_valid(validity: Uint8Array, row_index: number): void
Napi::Value validity_set_row_valid(const Napi::CallbackInfo& info) {
auto env = info.Env();
throw Napi::Error::New(env, "Not implemented yet");
auto validity = reinterpret_cast<uint64_t*>(info[0].As<Napi::Uint8Array>().Data());
auto row_index = info[1].As<Napi::Number>().Uint32Value();
duckdb_validity_set_row_valid(validity, row_index);
return env.Undefined();
}

// #ifndef DUCKDB_NO_EXTENSION_FUNCTIONS
Expand Down

0 comments on commit f1e3417

Please sign in to comment.