should be it

This commit is contained in:
2025-10-24 19:21:19 -05:00
parent a4b23fc57c
commit f09560c7b1
14047 changed files with 3161551 additions and 1 deletions

View File

@@ -0,0 +1,74 @@
@testset "Test big list" begin
con = DBInterface.connect(DuckDB.DB)
DBInterface.execute(con, "CREATE TABLE list_table (int_list INT[]);")
DBInterface.execute(con, "INSERT INTO list_table VALUES (range(2049));")
df = DataFrame(DBInterface.execute(con, "SELECT * FROM list_table;"))
@test length(df[1, :int_list]) == 2049
DBInterface.close!(con)
end
@testset "Test big bitstring" begin
con = DBInterface.connect(DuckDB.DB)
DBInterface.execute(con, "CREATE TABLE bit_table (bits BIT);")
# 131073 = 64 * 2048 + 1
DBInterface.execute(con, "INSERT INTO bit_table VALUES (bitstring('1010', 131073));")
df = DataFrame(DBInterface.execute(con, "SELECT * FROM bit_table;"))
# Currently mapped to Julia in an odd way.
# Can reenable following https://github.com/duckdb/duckdb/issues/7065
@test length(df[1, :bits]) == 131073 skip = true
DBInterface.close!(con)
end
@testset "Test big string" begin
con = DBInterface.connect(DuckDB.DB)
DBInterface.execute(con, "CREATE TABLE str_table (str VARCHAR);")
DBInterface.execute(con, "INSERT INTO str_table VALUES (repeat('🦆', 1024) || '🪿');")
df = DataFrame(DBInterface.execute(con, "SELECT * FROM str_table;"))
@test length(df[1, :str]) == 1025
DBInterface.close!(con)
end
@testset "Test big map" begin
con = DBInterface.connect(DuckDB.DB)
DBInterface.execute(con, "CREATE TABLE map_table (map MAP(VARCHAR, INT));")
DBInterface.execute(
con,
"INSERT INTO map_table VALUES (map_from_entries([{'k': 'billy' || num, 'v': num} for num in range(2049)]));"
)
df = DataFrame(DBInterface.execute(con, "SELECT * FROM map_table;"))
@test length(df[1, :map]) == 2049
DBInterface.close!(con)
end
@testset "Test big struct" begin
con = DBInterface.connect(DuckDB.DB)
DBInterface.execute(con, "CREATE TABLE struct_table (stct STRUCT(a INT[], b INT[]));")
DBInterface.execute(con, "INSERT INTO struct_table VALUES ({'a': range(1024), 'b': range(1025)});")
df = DataFrame(DBInterface.execute(con, "SELECT * FROM struct_table;"))
s = df[1, :stct]
@test length(s.a) == 1024
@test length(s.b) == 1025
DBInterface.close!(con)
end
@testset "Test big union" begin
con = DBInterface.connect(DuckDB.DB)
DBInterface.execute(con, "CREATE TABLE union_table (uni UNION(a INT[], b INT));")
DBInterface.execute(con, "INSERT INTO union_table (uni) VALUES (union_value(a := range(2049))), (42);")
df = DataFrame(DBInterface.execute(con, "SELECT * FROM union_table;"))
@test length(df[1, :uni]) == 2049
DBInterface.close!(con)
end