@@ -19,7 +19,7 @@ defmodule Exqlite.Sqlite3 do
1919 @ type db ( ) :: reference ( )
2020 @ type statement ( ) :: reference ( )
2121 @ type reason ( ) :: atom ( ) | String . t ( )
22- @ type row ( ) :: [ ]
22+ @ type row ( ) :: list ( )
2323
2424 @ doc """
2525 Opens a new sqlite database at the Path provided.
@@ -46,7 +46,6 @@ defmodule Exqlite.Sqlite3 do
4646 case Sqlite3NIF . execute ( conn , sql ) do
4747 :ok -> :ok
4848 { :error , reason } -> { :error , reason }
49- _ -> { :error , "unhandled error" }
5049 end
5150 end
5251
@@ -57,7 +56,7 @@ defmodule Exqlite.Sqlite3 do
5756
5857 See: https://sqlite.org/c3ref/changes.html
5958 """
60- @ spec changes ( db ( ) ) :: { :ok , integer ( ) }
59+ @ spec changes ( db ( ) ) :: { :ok , integer ( ) } | { :error , reason ( ) }
6160 def changes ( conn ) , do: Sqlite3NIF . changes ( conn )
6261
6362 @ spec prepare ( db ( ) , String . t ( ) ) :: { :ok , statement ( ) } | { :error , reason ( ) }
@@ -68,29 +67,29 @@ defmodule Exqlite.Sqlite3 do
6867 @ spec bind ( db ( ) , statement ( ) , nil ) :: :ok | { :error , reason ( ) }
6968 def bind ( conn , statement , nil ) , do: bind ( conn , statement , [ ] )
7069
71- @ spec bind ( db ( ) , statement ( ) , [ ] ) :: :ok | { :error , reason ( ) }
70+ @ spec bind ( db ( ) , statement ( ) , list ( ) ) :: :ok | { :error , reason ( ) }
7271 def bind ( conn , statement , args ) do
7372 Sqlite3NIF . bind ( conn , statement , Enum . map ( args , & convert / 1 ) )
7473 end
7574
76- @ spec columns ( db ( ) , statement ( ) ) :: { :ok , [ ] } | { :error , reason ( ) }
75+ @ spec columns ( db ( ) , statement ( ) ) :: { :ok , [ binary ( ) ] } | { :error , reason ( ) }
7776 def columns ( conn , statement ) , do: Sqlite3NIF . columns ( conn , statement )
7877
79- @ spec step ( db ( ) , statement ( ) ) :: :done | :busy | { :row , [ ] }
78+ @ spec step ( db ( ) , statement ( ) ) :: :done | :busy | { :row , [ row ( ) ] } | { :error , reason ( ) }
8079 def step ( conn , statement ) , do: Sqlite3NIF . step ( conn , statement )
8180
82- @ spec multi_step ( db ( ) , statement ( ) ) :: :busy | { :rows , [ row ( ) ] } | { :done , [ row ( ) ] }
81+ @ spec multi_step ( db ( ) , statement ( ) ) :: :busy | { :rows , [ row ( ) ] } | { :done , [ row ( ) ] } | { :error , reason ( ) }
8382 def multi_step ( conn , statement ) do
8483 chunk_size = Application . get_env ( :exqlite , :default_chunk_size , 50 )
8584 multi_step ( conn , statement , chunk_size )
8685 end
8786
8887 @ spec multi_step ( db ( ) , statement ( ) , integer ( ) ) ::
89- :busy | { :rows , [ row ( ) ] } | { :done , [ row ( ) ] }
88+ :busy | { :rows , [ row ( ) ] } | { :done , [ row ( ) ] } | { :error , reason ( ) }
9089 def multi_step ( conn , statement , chunk_size ) do
9190 case Sqlite3NIF . multi_step ( conn , statement , chunk_size ) do
9291 :busy ->
93- { :error , "Database busy" }
92+ : busy
9493
9594 { :error , reason } ->
9695 { :error , reason }
@@ -187,7 +186,7 @@ defmodule Exqlite.Sqlite3 do
187186 @ doc """
188187 Allow loading native extensions.
189188 """
190- @ spec enable_load_extension ( db ( ) , boolean ) :: :ok | { :error , any }
189+ @ spec enable_load_extension ( db ( ) , boolean ( ) ) :: :ok | { :error , reason ( ) }
191190 def enable_load_extension ( conn , flag ) do
192191 if flag do
193192 Sqlite3NIF . enable_load_extension ( conn , 1 )
0 commit comments