Skip to content

Commit

Permalink
fix: using ArrowArrayInitFromType when building list of strings (#113)
Browse files Browse the repository at this point in the history
Signed-off-by: Cocoa <i@uwucocoa.moe>
  • Loading branch information
cocoa-xu authored Jan 20, 2025
1 parent c67027e commit 1a58af5
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
2 changes: 1 addition & 1 deletion c_src/adbc_column.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@ int do_get_list_string(ErlNifEnv *env, ERL_NIF_TERM list, bool nullable, ArrowTy

nanoarrow::UniqueArray tmp;
struct ArrowArray* write_array = tmp.get();
NANOARROW_RETURN_NOT_OK(ArrowArrayInitFromSchema(write_array, schema_out, error_out));
NANOARROW_RETURN_NOT_OK(ArrowArrayInitFromType(write_array, nanoarrow_type));
NANOARROW_RETURN_NOT_OK(ArrowArrayStartAppending(write_array));
int ret = get_list_string(env, list, nullable, write_array, ArrowArrayAppendString);
if (ret == 0) {
Expand Down
30 changes: 30 additions & 0 deletions test/adbc_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,36 @@ defmodule AdbcTest do
)
end
end

test "list of strings", %{db: _, conn: conn} do
ids = ["1", "2", "3"]

assert {:ok, result} =
Adbc.Connection.query(
conn,
"SELECT $1",
[Adbc.Column.list([Adbc.Column.string(ids)])]
)

assert %Adbc.Result{
data: [
%Adbc.Column{
data: [
%Adbc.Column{
data: ["1", "2", "3"],
name: "item",
type: :string,
metadata: nil,
nullable: true
}
],
type: :list,
metadata: nil,
nullable: true
}
]
} = result |> Adbc.Result.materialize()
end
end

describe "duckdb smoke tests" do
Expand Down

0 comments on commit 1a58af5

Please sign in to comment.