simplest-sqlite 0.0.0.9 → 0.0.0.10
raw patch · 2 files changed
+22/−7 lines, 2 filesPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ Database.SmplstSQLite3: instance Database.SmplstSQLite3.SQLiteData GHC.Types.Double
+ Database.SmplstSQLite3: instance GHC.Classes.Eq Database.SmplstSQLite3.Type
Files
- simplest-sqlite.cabal +2/−2
- src/Database/SmplstSQLite3.hs +20/−5
simplest-sqlite.cabal view
@@ -2,7 +2,7 @@ cabal-version: >= 1.8 name: simplest-sqlite-version: 0.0.0.9+version: 0.0.0.10 stability: Experimental author: YoshikuniJujo <PAF01143@nifty.ne.jp> maintainer: YoshikuniJujo <PAF01143@nifty.ne.jp>@@ -23,7 +23,7 @@ source-repository this type: git location: git://github.com/YoshikuniJujo/test_haskell- tag: simplest-sqlite-0.0.0.9+ tag: simplest-sqlite-0.0.0.10 library hs-source-dirs: src
src/Database/SmplstSQLite3.hs view
@@ -101,6 +101,8 @@ foreign import ccall unsafe "sqlite3.h sqlite3_column_int" c_sqlite3_column_int :: Ptr Stmt -> CInt -> IO CInt+foreign import ccall unsafe "sqlite3.h sqlite3_column_double"+ c_sqlite3_column_double :: Ptr Stmt -> CInt -> IO CDouble foreign import ccall unsafe "sqlite3.h sqlite3_column_text" c_sqlite3_column_text :: Ptr Stmt -> CInt -> IO CString foreign import ccall unsafe "sqlite3.h sqlite3_column_blob"@@ -127,6 +129,11 @@ column (Stmt sm) i = fromIntegral <$> c_sqlite3_column_int sm (fromIntegral i) +instance SQLiteData Double where+ bindN = sqlite3BindDouble+ column (Stmt sm) i =+ realToFrac <$> c_sqlite3_column_double sm (fromIntegral i)+ instance SQLiteDataList Char where bindNList = sqlite3BindString columnList (Stmt sm) i =@@ -142,10 +149,12 @@ column (Stmt sm) i = T.decodeUtf8 <$> (BS.packCString =<< c_sqlite3_column_text sm (fromIntegral i)) -foreign import ccall unsafe "sqlite3.h sqlite3_bind_null" c_sqlite3_bind_null ::- Ptr Stmt -> CInt -> IO CInt-foreign import ccall unsafe "sqlite3.h sqlite3_bind_int" c_sqlite3_bind_int ::- Ptr Stmt -> CInt -> CInt -> IO CInt+foreign import ccall unsafe "sqlite3.h sqlite3_bind_null"+ c_sqlite3_bind_null :: Ptr Stmt -> CInt -> IO CInt+foreign import ccall unsafe "sqlite3.h sqlite3_bind_int"+ c_sqlite3_bind_int :: Ptr Stmt -> CInt -> CInt -> IO CInt+foreign import ccall unsafe "sqlite3.h sqlite3_bind_double"+ c_sqlite3_bind_double :: Ptr Stmt -> CInt -> CDouble -> IO CInt foreign import ccall unsafe "sqlite3.h sqlite3_bind_text" c_sqlite3_bind_text :: Ptr Stmt -> CInt -> CString -> CInt -> Ptr a -> IO CInt foreign import ccall unsafe "sqlite3.h sqlite3_bind_blob" c_sqlite3_bind_blob ::@@ -160,6 +169,12 @@ when (ret /= sQLITE_OK) . ioError . userError $ "Cannot bind null: error code (" ++ show ret ++ ")" +sqlite3BindDouble :: Stmt -> Int -> Double -> IO ()+sqlite3BindDouble (Stmt sm) i d = do+ ret <- c_sqlite3_bind_double sm (fromIntegral i) (realToFrac d)+ when (ret /= sQLITE_OK) . ioError . userError $+ "Cannot bind double: error code (" ++ show ret ++ ")"+ sqlite3BindInt :: Stmt -> Int -> Int -> IO () sqlite3BindInt (Stmt sm) i n = do ret <- c_sqlite3_bind_int sm (fromIntegral i) (fromIntegral n)@@ -204,7 +219,7 @@ when (ret /= sQLITE_OK) . ioError . userError $ "Cannot reset stmt: error code (" ++ show ret ++ ")" -data Type = Integer | Float | Text | Blob | Null deriving Show+data Type = Integer | Float | Text | Blob | Null deriving (Show, Eq) foreign import ccall unsafe "sqlite3.h sqlite3_column_type" c_sqlite3_column_type :: Ptr Stmt -> CInt -> IO CInt