direct-sqlite 2.3.16 → 2.3.17
raw patch · 3 files changed
+22/−26 lines, 3 filesdep +temporaryPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: temporary
API changes (from Hackage documentation)
- Database.SQLite3: instance Eq SQLData
- Database.SQLite3: instance Eq SQLError
- Database.SQLite3: instance Exception SQLError
- Database.SQLite3: instance Show SQLData
- Database.SQLite3: instance Show SQLError
- Database.SQLite3: instance Typeable SQLData
- Database.SQLite3: instance Typeable SQLError
- Database.SQLite3: sqlError :: SQLError -> !Error
- Database.SQLite3: sqlErrorContext :: SQLError -> Text
- Database.SQLite3: sqlErrorDetails :: SQLError -> Text
- Database.SQLite3.Bindings.Types: instance Bounded ArgCount
- Database.SQLite3.Bindings.Types: instance Bounded CArgCount
- Database.SQLite3.Bindings.Types: instance Bounded ColumnIndex
- Database.SQLite3.Bindings.Types: instance Bounded ParamIndex
- Database.SQLite3.Bindings.Types: instance Enum ArgCount
- Database.SQLite3.Bindings.Types: instance Enum CArgCount
- Database.SQLite3.Bindings.Types: instance Enum CColumnIndex
- Database.SQLite3.Bindings.Types: instance Enum CNumBytes
- Database.SQLite3.Bindings.Types: instance Enum CParamIndex
- Database.SQLite3.Bindings.Types: instance Enum ColumnIndex
- Database.SQLite3.Bindings.Types: instance Enum ParamIndex
- Database.SQLite3.Bindings.Types: instance Eq ArgCount
- Database.SQLite3.Bindings.Types: instance Eq CArgCount
- Database.SQLite3.Bindings.Types: instance Eq CColumnIndex
- Database.SQLite3.Bindings.Types: instance Eq CColumnType
- Database.SQLite3.Bindings.Types: instance Eq CError
- Database.SQLite3.Bindings.Types: instance Eq CNumBytes
- Database.SQLite3.Bindings.Types: instance Eq CParamIndex
- Database.SQLite3.Bindings.Types: instance Eq ColumnIndex
- Database.SQLite3.Bindings.Types: instance Eq ColumnType
- Database.SQLite3.Bindings.Types: instance Eq Error
- Database.SQLite3.Bindings.Types: instance Eq ParamIndex
- Database.SQLite3.Bindings.Types: instance FFIType ArgCount CArgCount
- Database.SQLite3.Bindings.Types: instance FFIType ColumnIndex CColumnIndex
- Database.SQLite3.Bindings.Types: instance FFIType ColumnType CColumnType
- Database.SQLite3.Bindings.Types: instance FFIType Error CError
- Database.SQLite3.Bindings.Types: instance FFIType ParamIndex CParamIndex
- Database.SQLite3.Bindings.Types: instance Integral ArgCount
- Database.SQLite3.Bindings.Types: instance Integral CArgCount
- Database.SQLite3.Bindings.Types: instance Integral CColumnIndex
- Database.SQLite3.Bindings.Types: instance Integral CNumBytes
- Database.SQLite3.Bindings.Types: instance Integral CParamIndex
- Database.SQLite3.Bindings.Types: instance Integral ColumnIndex
- Database.SQLite3.Bindings.Types: instance Integral ParamIndex
- Database.SQLite3.Bindings.Types: instance Num ArgCount
- Database.SQLite3.Bindings.Types: instance Num CArgCount
- Database.SQLite3.Bindings.Types: instance Num CColumnIndex
- Database.SQLite3.Bindings.Types: instance Num CNumBytes
- Database.SQLite3.Bindings.Types: instance Num CParamIndex
- Database.SQLite3.Bindings.Types: instance Num ColumnIndex
- Database.SQLite3.Bindings.Types: instance Num ParamIndex
- Database.SQLite3.Bindings.Types: instance Ord ArgCount
- Database.SQLite3.Bindings.Types: instance Ord CArgCount
- Database.SQLite3.Bindings.Types: instance Ord CColumnIndex
- Database.SQLite3.Bindings.Types: instance Ord CNumBytes
- Database.SQLite3.Bindings.Types: instance Ord CParamIndex
- Database.SQLite3.Bindings.Types: instance Ord ColumnIndex
- Database.SQLite3.Bindings.Types: instance Ord ParamIndex
- Database.SQLite3.Bindings.Types: instance Real ArgCount
- Database.SQLite3.Bindings.Types: instance Real CArgCount
- Database.SQLite3.Bindings.Types: instance Real CColumnIndex
- Database.SQLite3.Bindings.Types: instance Real CNumBytes
- Database.SQLite3.Bindings.Types: instance Real CParamIndex
- Database.SQLite3.Bindings.Types: instance Real ColumnIndex
- Database.SQLite3.Bindings.Types: instance Real ParamIndex
- Database.SQLite3.Bindings.Types: instance Show ArgCount
- Database.SQLite3.Bindings.Types: instance Show CArgCount
- Database.SQLite3.Bindings.Types: instance Show CColumnIndex
- Database.SQLite3.Bindings.Types: instance Show CColumnType
- Database.SQLite3.Bindings.Types: instance Show CError
- Database.SQLite3.Bindings.Types: instance Show CNumBytes
- Database.SQLite3.Bindings.Types: instance Show CParamIndex
- Database.SQLite3.Bindings.Types: instance Show ColumnIndex
- Database.SQLite3.Bindings.Types: instance Show ColumnType
- Database.SQLite3.Bindings.Types: instance Show Error
- Database.SQLite3.Bindings.Types: instance Show ParamIndex
- Database.SQLite3.Direct: instance Eq Backup
- Database.SQLite3.Direct: instance Eq BackupStepResult
- Database.SQLite3.Direct: instance Eq Blob
- Database.SQLite3.Direct: instance Eq Database
- Database.SQLite3.Direct: instance Eq FuncContext
- Database.SQLite3.Direct: instance Eq Statement
- Database.SQLite3.Direct: instance Eq StepResult
- Database.SQLite3.Direct: instance Eq Utf8
- Database.SQLite3.Direct: instance IsString Utf8
- Database.SQLite3.Direct: instance Monoid Utf8
- Database.SQLite3.Direct: instance Ord Utf8
- Database.SQLite3.Direct: instance Show Backup
- Database.SQLite3.Direct: instance Show BackupStepResult
- Database.SQLite3.Direct: instance Show Blob
- Database.SQLite3.Direct: instance Show Database
- Database.SQLite3.Direct: instance Show FuncContext
- Database.SQLite3.Direct: instance Show Statement
- Database.SQLite3.Direct: instance Show StepResult
- Database.SQLite3.Direct: instance Show Utf8
+ Database.SQLite3: [sqlErrorContext] :: SQLError -> Text
+ Database.SQLite3: [sqlErrorDetails] :: SQLError -> Text
+ Database.SQLite3: [sqlError] :: SQLError -> !Error
+ Database.SQLite3: instance GHC.Classes.Eq Database.SQLite3.SQLData
+ Database.SQLite3: instance GHC.Classes.Eq Database.SQLite3.SQLError
+ Database.SQLite3: instance GHC.Exception.Exception Database.SQLite3.SQLError
+ Database.SQLite3: instance GHC.Show.Show Database.SQLite3.SQLData
+ Database.SQLite3: instance GHC.Show.Show Database.SQLite3.SQLError
+ Database.SQLite3.Bindings.Types: instance Database.SQLite3.Bindings.Types.FFIType Database.SQLite3.Bindings.Types.ArgCount Database.SQLite3.Bindings.Types.CArgCount
+ Database.SQLite3.Bindings.Types: instance Database.SQLite3.Bindings.Types.FFIType Database.SQLite3.Bindings.Types.ColumnIndex Database.SQLite3.Bindings.Types.CColumnIndex
+ Database.SQLite3.Bindings.Types: instance Database.SQLite3.Bindings.Types.FFIType Database.SQLite3.Bindings.Types.ColumnType Database.SQLite3.Bindings.Types.CColumnType
+ Database.SQLite3.Bindings.Types: instance Database.SQLite3.Bindings.Types.FFIType Database.SQLite3.Bindings.Types.Error Database.SQLite3.Bindings.Types.CError
+ Database.SQLite3.Bindings.Types: instance Database.SQLite3.Bindings.Types.FFIType Database.SQLite3.Bindings.Types.ParamIndex Database.SQLite3.Bindings.Types.CParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Eq Database.SQLite3.Bindings.Types.ArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Eq Database.SQLite3.Bindings.Types.CArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Eq Database.SQLite3.Bindings.Types.CColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Eq Database.SQLite3.Bindings.Types.CColumnType
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Eq Database.SQLite3.Bindings.Types.CError
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Eq Database.SQLite3.Bindings.Types.CNumBytes
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Eq Database.SQLite3.Bindings.Types.CParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Eq Database.SQLite3.Bindings.Types.ColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Eq Database.SQLite3.Bindings.Types.ColumnType
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Eq Database.SQLite3.Bindings.Types.Error
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Eq Database.SQLite3.Bindings.Types.ParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Ord Database.SQLite3.Bindings.Types.ArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Ord Database.SQLite3.Bindings.Types.CArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Ord Database.SQLite3.Bindings.Types.CColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Ord Database.SQLite3.Bindings.Types.CNumBytes
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Ord Database.SQLite3.Bindings.Types.CParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Ord Database.SQLite3.Bindings.Types.ColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Classes.Ord Database.SQLite3.Bindings.Types.ParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Enum.Bounded Database.SQLite3.Bindings.Types.ArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Enum.Bounded Database.SQLite3.Bindings.Types.CArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Enum.Bounded Database.SQLite3.Bindings.Types.ColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Enum.Bounded Database.SQLite3.Bindings.Types.ParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Enum.Enum Database.SQLite3.Bindings.Types.ArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Enum.Enum Database.SQLite3.Bindings.Types.CArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Enum.Enum Database.SQLite3.Bindings.Types.CColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Enum.Enum Database.SQLite3.Bindings.Types.CNumBytes
+ Database.SQLite3.Bindings.Types: instance GHC.Enum.Enum Database.SQLite3.Bindings.Types.CParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Enum.Enum Database.SQLite3.Bindings.Types.ColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Enum.Enum Database.SQLite3.Bindings.Types.ParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Num.Num Database.SQLite3.Bindings.Types.ArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Num.Num Database.SQLite3.Bindings.Types.CArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Num.Num Database.SQLite3.Bindings.Types.CColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Num.Num Database.SQLite3.Bindings.Types.CNumBytes
+ Database.SQLite3.Bindings.Types: instance GHC.Num.Num Database.SQLite3.Bindings.Types.CParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Num.Num Database.SQLite3.Bindings.Types.ColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Num.Num Database.SQLite3.Bindings.Types.ParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Integral Database.SQLite3.Bindings.Types.ArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Integral Database.SQLite3.Bindings.Types.CArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Integral Database.SQLite3.Bindings.Types.CColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Integral Database.SQLite3.Bindings.Types.CNumBytes
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Integral Database.SQLite3.Bindings.Types.CParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Integral Database.SQLite3.Bindings.Types.ColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Integral Database.SQLite3.Bindings.Types.ParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Real Database.SQLite3.Bindings.Types.ArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Real Database.SQLite3.Bindings.Types.CArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Real Database.SQLite3.Bindings.Types.CColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Real Database.SQLite3.Bindings.Types.CNumBytes
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Real Database.SQLite3.Bindings.Types.CParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Real Database.SQLite3.Bindings.Types.ColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Real.Real Database.SQLite3.Bindings.Types.ParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Show.Show Database.SQLite3.Bindings.Types.ArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Show.Show Database.SQLite3.Bindings.Types.CArgCount
+ Database.SQLite3.Bindings.Types: instance GHC.Show.Show Database.SQLite3.Bindings.Types.CColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Show.Show Database.SQLite3.Bindings.Types.CColumnType
+ Database.SQLite3.Bindings.Types: instance GHC.Show.Show Database.SQLite3.Bindings.Types.CError
+ Database.SQLite3.Bindings.Types: instance GHC.Show.Show Database.SQLite3.Bindings.Types.CNumBytes
+ Database.SQLite3.Bindings.Types: instance GHC.Show.Show Database.SQLite3.Bindings.Types.CParamIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Show.Show Database.SQLite3.Bindings.Types.ColumnIndex
+ Database.SQLite3.Bindings.Types: instance GHC.Show.Show Database.SQLite3.Bindings.Types.ColumnType
+ Database.SQLite3.Bindings.Types: instance GHC.Show.Show Database.SQLite3.Bindings.Types.Error
+ Database.SQLite3.Bindings.Types: instance GHC.Show.Show Database.SQLite3.Bindings.Types.ParamIndex
+ Database.SQLite3.Direct: instance Data.String.IsString Database.SQLite3.Direct.Utf8
+ Database.SQLite3.Direct: instance GHC.Base.Monoid Database.SQLite3.Direct.Utf8
+ Database.SQLite3.Direct: instance GHC.Classes.Eq Database.SQLite3.Direct.Backup
+ Database.SQLite3.Direct: instance GHC.Classes.Eq Database.SQLite3.Direct.BackupStepResult
+ Database.SQLite3.Direct: instance GHC.Classes.Eq Database.SQLite3.Direct.Blob
+ Database.SQLite3.Direct: instance GHC.Classes.Eq Database.SQLite3.Direct.Database
+ Database.SQLite3.Direct: instance GHC.Classes.Eq Database.SQLite3.Direct.FuncContext
+ Database.SQLite3.Direct: instance GHC.Classes.Eq Database.SQLite3.Direct.Statement
+ Database.SQLite3.Direct: instance GHC.Classes.Eq Database.SQLite3.Direct.StepResult
+ Database.SQLite3.Direct: instance GHC.Classes.Eq Database.SQLite3.Direct.Utf8
+ Database.SQLite3.Direct: instance GHC.Classes.Ord Database.SQLite3.Direct.Utf8
+ Database.SQLite3.Direct: instance GHC.Show.Show Database.SQLite3.Direct.Backup
+ Database.SQLite3.Direct: instance GHC.Show.Show Database.SQLite3.Direct.BackupStepResult
+ Database.SQLite3.Direct: instance GHC.Show.Show Database.SQLite3.Direct.Blob
+ Database.SQLite3.Direct: instance GHC.Show.Show Database.SQLite3.Direct.Database
+ Database.SQLite3.Direct: instance GHC.Show.Show Database.SQLite3.Direct.FuncContext
+ Database.SQLite3.Direct: instance GHC.Show.Show Database.SQLite3.Direct.Statement
+ Database.SQLite3.Direct: instance GHC.Show.Show Database.SQLite3.Direct.StepResult
+ Database.SQLite3.Direct: instance GHC.Show.Show Database.SQLite3.Direct.Utf8
- Database.SQLite3: type ExecCallback = ColumnCount -> [Text] -> [Maybe Text] -> IO ()
+ Database.SQLite3: type ExecCallback = ColumnCount Number of columns, which is the number of items in the following lists. This will be the same for every row. -> [Text] List of column names. This will be the same for every row. -> [Maybe Text] List of column values, as returned by 'columnText'. -> IO ()
- Database.SQLite3.Bindings: type CExecCallback a = Ptr a -> CColumnCount -> Ptr CString -> Ptr CString -> IO CInt
+ Database.SQLite3.Bindings: type CExecCallback a = Ptr a -> CColumnCount Number of columns, which is the number of elements in the following arrays. -> Ptr CString Array of column values, as returned by 'c_sqlite3_column_text'. Null values are represented as null pointers. -> Ptr CString Array of column names -> IO CInt If the callback returns non-zero, then 'c_sqlite3_exec' returns @SQLITE_ABORT@ ('ErrorAbort').
- Database.SQLite3.Bindings: type CTraceCallback a = Ptr a -> CString -> IO ()
+ Database.SQLite3.Bindings: type CTraceCallback a = Ptr a -> CString UTF-8 rendering of the SQL statement text as the statement first begins executing -> IO ()
- Database.SQLite3.Direct: type ExecCallback = ColumnCount -> [Utf8] -> [Maybe Utf8] -> IO ()
+ Database.SQLite3.Direct: type ExecCallback = ColumnCount Number of columns, which is the number of items in the following lists. This will be the same for every row. -> [Utf8] List of column names. This will be the same for every row. -> [Maybe Utf8] List of column values, as returned by 'columnText'. -> IO ()
Files
- changelog +5/−0
- direct-sqlite.cabal +2/−1
- test/Main.hs +15/−25
changelog view
@@ -1,3 +1,8 @@+v2.3.17+ * Use a randomly created temp file for test database when running+ unit tests instead of a hardcoded file under 'dist/'. Hopefully+ fixes https://github.com/IreneKnapp/direct-sqlite/issues/60+ v2.3.16 * Add an Eq instance for SQLError
direct-sqlite.cabal view
@@ -1,5 +1,5 @@ name: direct-sqlite-version: 2.3.16+version: 2.3.17 build-type: Simple license: BSD3 license-file: LICENSE@@ -105,4 +105,5 @@ , directory , HUnit , direct-sqlite+ , temporary , text
test/Main.hs view
@@ -14,6 +14,7 @@ import System.Exit (exitFailure) import System.IO import System.IO.Error (isDoesNotExistError, isUserError)+import System.IO.Temp (withTempFile) import System.Timeout (timeout) import Test.HUnit @@ -875,16 +876,13 @@ return () -sharedDBPath :: Text-sharedDBPath = "dist/test/direct-sqlite-test-database.db"--withTestEnv :: (TestEnv -> IO a) -> IO a-withTestEnv cb =+withTestEnv :: String -> (TestEnv -> IO a) -> IO a+withTestEnv tempDbName cb = withConn $ \conn -> cb TestEnv { conn = conn , withConn = withConn- , withConnShared = withConnPath sharedDBPath+ , withConnShared = withConnPath (T.pack tempDbName) } where withConn = withConnPath ":memory:"@@ -898,28 +896,20 @@ close conn return r -runTestGroup :: [TestEnv -> Test] -> IO Bool-runTestGroup tests = do+runTestGroup :: String -> [TestEnv -> Test] -> IO Bool+runTestGroup tempDbName tests = do Counts{cases, tried, errors, failures} <-- withTestEnv $ \env -> runTestTT $ TestList $ map ($ env) tests+ withTestEnv tempDbName $ \env -> runTestTT $ TestList $ map ($ env) tests return (cases == tried && errors == 0 && failures == 0) main :: IO () main = do mapM_ (`hSetBuffering` LineBuffering) [stdout, stderr]-- T.putStrLn $ "Creating " `T.append` sharedDBPath- handleJust (\e -> if isDoesNotExistError e- then Just ()- else Nothing)- (\_ -> return ())- (removeFile $ T.unpack sharedDBPath)- open sharedDBPath >>= close-- ok <- runTestGroup regressionTests- when (not ok) exitFailure-- -- Signal failure if feature tests fail. I'd rather print a noisy warning- -- instead, but cabal redirects test output to log files by default.- ok <- runTestGroup featureTests- when (not ok) exitFailure+ withTempFile "." "direct-sqlite-test-database" $ \tempDbName _hFile -> do+ open (T.pack tempDbName) >>= close+ ok <- runTestGroup tempDbName regressionTests+ when (not ok) exitFailure+ -- Signal failure if feature tests fail. I'd rather print a noisy warning+ -- instead, but cabal redirects test output to log files by default.+ ok <- runTestGroup tempDbName featureTests+ when (not ok) exitFailure