should be it
This commit is contained in:
54
external/duckdb/tools/juliapkg/test/test_tpch_multithread.jl
vendored
Normal file
54
external/duckdb/tools/juliapkg/test/test_tpch_multithread.jl
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
# test_tpch_multithread.jl
|
||||
|
||||
# DuckDB needs to have been built with TPCH (BUILD_TPCH=1) to run this test!
|
||||
|
||||
function test_tpch_multithread()
|
||||
sf = "0.10"
|
||||
|
||||
# load TPC-H into DuckDB
|
||||
native_con = DBInterface.connect(DuckDB.DB)
|
||||
try
|
||||
DBInterface.execute(native_con, "CALL dbgen(sf=$sf)")
|
||||
catch
|
||||
@info "TPC-H extension not available; skipping"
|
||||
return
|
||||
end
|
||||
|
||||
# convert all tables to Julia DataFrames
|
||||
customer = DataFrame(DBInterface.execute(native_con, "SELECT * FROM customer"))
|
||||
lineitem = DataFrame(DBInterface.execute(native_con, "SELECT * FROM lineitem"))
|
||||
nation = DataFrame(DBInterface.execute(native_con, "SELECT * FROM nation"))
|
||||
orders = DataFrame(DBInterface.execute(native_con, "SELECT * FROM orders"))
|
||||
part = DataFrame(DBInterface.execute(native_con, "SELECT * FROM part"))
|
||||
partsupp = DataFrame(DBInterface.execute(native_con, "SELECT * FROM partsupp"))
|
||||
region = DataFrame(DBInterface.execute(native_con, "SELECT * FROM region"))
|
||||
supplier = DataFrame(DBInterface.execute(native_con, "SELECT * FROM supplier"))
|
||||
|
||||
id = Threads.threadid()
|
||||
# now open a new in-memory database, and register the dataframes there
|
||||
df_con = DBInterface.connect(DuckDB.DB)
|
||||
DuckDB.register_table(df_con, customer, "customer")
|
||||
DuckDB.register_table(df_con, lineitem, "lineitem")
|
||||
DuckDB.register_table(df_con, nation, "nation")
|
||||
DuckDB.register_table(df_con, orders, "orders")
|
||||
DuckDB.register_table(df_con, part, "part")
|
||||
DuckDB.register_table(df_con, partsupp, "partsupp")
|
||||
DuckDB.register_table(df_con, region, "region")
|
||||
DuckDB.register_table(df_con, supplier, "supplier")
|
||||
GC.gc()
|
||||
|
||||
# Execute all the queries
|
||||
for _ in 1:10
|
||||
for i in 1:22
|
||||
|
||||
print("T:$id | Q:$i\n")
|
||||
res = DataFrame(DBInterface.execute(df_con, "PRAGMA tpch($i)"))
|
||||
end
|
||||
end
|
||||
DBInterface.close!(df_con)
|
||||
return DBInterface.close!(native_con)
|
||||
end
|
||||
|
||||
@testset "Test TPC-H Stresstest" begin
|
||||
test_tpch_multithread()
|
||||
end
|
||||
Reference in New Issue
Block a user