@@ -19,7 +19,7 @@ defmodule Exqlite.Sqlite3 do
19
19
@ type db ( ) :: reference ( )
20
20
@ type statement ( ) :: reference ( )
21
21
@ type reason ( ) :: atom ( ) | String . t ( )
22
- @ type row ( ) :: [ ]
22
+ @ type row ( ) :: list ( )
23
23
24
24
@ doc """
25
25
Opens a new sqlite database at the Path provided.
@@ -46,7 +46,6 @@ defmodule Exqlite.Sqlite3 do
46
46
case Sqlite3NIF . execute ( conn , sql ) do
47
47
:ok -> :ok
48
48
{ :error , reason } -> { :error , reason }
49
- _ -> { :error , "unhandled error" }
50
49
end
51
50
end
52
51
@@ -57,7 +56,7 @@ defmodule Exqlite.Sqlite3 do
57
56
58
57
See: https://sqlite.org/c3ref/changes.html
59
58
"""
60
- @ spec changes ( db ( ) ) :: { :ok , integer ( ) }
59
+ @ spec changes ( db ( ) ) :: { :ok , integer ( ) } | { :error , reason ( ) }
61
60
def changes ( conn ) , do: Sqlite3NIF . changes ( conn )
62
61
63
62
@ spec prepare ( db ( ) , String . t ( ) ) :: { :ok , statement ( ) } | { :error , reason ( ) }
@@ -68,29 +67,29 @@ defmodule Exqlite.Sqlite3 do
68
67
@ spec bind ( db ( ) , statement ( ) , nil ) :: :ok | { :error , reason ( ) }
69
68
def bind ( conn , statement , nil ) , do: bind ( conn , statement , [ ] )
70
69
71
- @ spec bind ( db ( ) , statement ( ) , [ ] ) :: :ok | { :error , reason ( ) }
70
+ @ spec bind ( db ( ) , statement ( ) , list ( ) ) :: :ok | { :error , reason ( ) }
72
71
def bind ( conn , statement , args ) do
73
72
Sqlite3NIF . bind ( conn , statement , Enum . map ( args , & convert / 1 ) )
74
73
end
75
74
76
- @ spec columns ( db ( ) , statement ( ) ) :: { :ok , [ ] } | { :error , reason ( ) }
75
+ @ spec columns ( db ( ) , statement ( ) ) :: { :ok , [ binary ( ) ] } | { :error , reason ( ) }
77
76
def columns ( conn , statement ) , do: Sqlite3NIF . columns ( conn , statement )
78
77
79
- @ spec step ( db ( ) , statement ( ) ) :: :done | :busy | { :row , [ ] }
78
+ @ spec step ( db ( ) , statement ( ) ) :: :done | :busy | { :row , [ row ( ) ] } | { :error , reason ( ) }
80
79
def step ( conn , statement ) , do: Sqlite3NIF . step ( conn , statement )
81
80
82
- @ spec multi_step ( db ( ) , statement ( ) ) :: :busy | { :rows , [ row ( ) ] } | { :done , [ row ( ) ] }
81
+ @ spec multi_step ( db ( ) , statement ( ) ) :: :busy | { :rows , [ row ( ) ] } | { :done , [ row ( ) ] } | { :error , reason ( ) }
83
82
def multi_step ( conn , statement ) do
84
83
chunk_size = Application . get_env ( :exqlite , :default_chunk_size , 50 )
85
84
multi_step ( conn , statement , chunk_size )
86
85
end
87
86
88
87
@ spec multi_step ( db ( ) , statement ( ) , integer ( ) ) ::
89
- :busy | { :rows , [ row ( ) ] } | { :done , [ row ( ) ] }
88
+ :busy | { :rows , [ row ( ) ] } | { :done , [ row ( ) ] } | { :error , reason ( ) }
90
89
def multi_step ( conn , statement , chunk_size ) do
91
90
case Sqlite3NIF . multi_step ( conn , statement , chunk_size ) do
92
91
:busy ->
93
- { :error , "Database busy" }
92
+ : busy
94
93
95
94
{ :error , reason } ->
96
95
{ :error , reason }
@@ -187,7 +186,7 @@ defmodule Exqlite.Sqlite3 do
187
186
@ doc """
188
187
Allow loading native extensions.
189
188
"""
190
- @ spec enable_load_extension ( db ( ) , boolean ) :: :ok | { :error , any }
189
+ @ spec enable_load_extension ( db ( ) , boolean ( ) ) :: :ok | { :error , reason ( ) }
191
190
def enable_load_extension ( conn , flag ) do
192
191
if flag do
193
192
Sqlite3NIF . enable_load_extension ( conn , 1 )
0 commit comments