1
1
defmodule BigDataTest do
2
2
use ExUnit.Case
3
3
@ timeout :infinity
4
+ alias Sqlite.Connection
4
5
5
6
@ tag :bench
6
7
@ tag timeout: @ timeout
7
8
test "BIG DATA" do
8
- { :ok , conn } = Sqlite . open ( database: ":memory:" )
9
+ { :ok , conn } = Connection . open ( database: ":memory:" )
9
10
10
11
column_names_and_types =
11
12
"a int, b int, c int, d int, e int, f int, g int, h int, i int, j int, " <>
@@ -17,20 +18,20 @@ defmodule BigDataTest do
17
18
subs =
18
19
"$1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26"
19
20
20
- { :ok , q } = Sqlite . prepare ( conn , "CREATE TABLE posts (#{ column_names_and_types } )" )
21
- { :ok , _ } = Sqlite . execute ( conn , q , [ ] )
21
+ { :ok , q } = Connection . prepare ( conn , "CREATE TABLE posts (#{ column_names_and_types } )" )
22
+ { :ok , _ } = Connection . execute ( conn , q , [ ] )
22
23
23
24
{ :ok , statement } =
24
- Sqlite . prepare ( conn , "INSERT INTO posts (#{ column_names } ) VALUES (#{ subs } )" )
25
+ Connection . prepare ( conn , "INSERT INTO posts (#{ column_names } ) VALUES (#{ subs } )" )
25
26
26
- { :ok , _ } = Sqlite . execute ( conn , statement , Enum . to_list ( 1 .. 26 ) )
27
+ { :ok , _ } = Connection . execute ( conn , statement , Enum . to_list ( 1 .. 26 ) )
27
28
range = 0 .. 800_000
28
29
29
30
inserts_fun = fn ->
30
31
{ time , _ } =
31
32
:timer . tc ( fn ->
32
33
for _i <- range do
33
- { :ok , _ } = Sqlite . execute ( conn , statement , Enum . to_list ( 1 .. 26 ) )
34
+ { :ok , _ } = Connection . execute ( conn , statement , Enum . to_list ( 1 .. 26 ) )
34
35
end
35
36
end )
36
37
@@ -40,7 +41,7 @@ defmodule BigDataTest do
40
41
query_fun = fn ->
41
42
{ time , res } =
42
43
:timer . tc ( fn ->
43
- Sqlite . query! ( conn , "SELECT * FROM posts;" , [ ] , timeout: @ timeout )
44
+ Connection . query! ( conn , "SELECT * FROM posts;" , [ ] , timeout: @ timeout )
44
45
end )
45
46
46
47
IO . puts ( "Query took: #{ time } µs." )
0 commit comments