packages feed

simplest-sqlite 0.0.0.13 → 0.0.0.14

raw patch · 5 files changed

+43/−14 lines, 5 files

Files

simplest-sqlite.cabal view
@@ -2,7 +2,7 @@ cabal-version: >= 1.8  name: simplest-sqlite-version: 0.0.0.13+version: 0.0.0.14 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.13+    tag: simplest-sqlite-0.0.0.14  library     hs-source-dirs: src@@ -34,6 +34,6 @@     build-depends:         base == 4.*, bytestring == 0.10.*, text >= 1.1 && < 1.3,         exception-hierarchy == 0.0.0.*, template-haskell >= 2.9 && < 2.11-    ghc-options: -Wall+    ghc-options: -Wall -fno-warn-tabs     extra-libraries: sqlite3     extensions: ForeignFunctionInterface
src/Database/SmplstSQLite3.hs view
@@ -53,7 +53,8 @@ 		sqliteThrow ("Cannot close database: " ++ em) ret  sqlite3Errmsg :: SQLite -> IO String-sqlite3Errmsg (SQLite db) = peekCString =<< c_sqlite3_errmsg db+sqlite3Errmsg (SQLite db) =+	peekCString' "Error Message" =<< c_sqlite3_errmsg db  foreign import ccall unsafe "sqlite3.h sqlite3_prepare_v2" 	c_sqlite3_prepare_v2 ::@@ -76,7 +77,7 @@ 			em <- sqlite3Errmsg db 			sqlite3Finalize sm 			sqliteThrow ("Cannot prepare: " ++ em) ret-		(sm ,) <$> (peekCString =<< peek pt)+		(sm ,) <$> (peekCString' "Unused SQL" =<< peek pt)  sqlite3Finalize :: Stmt -> IO () sqlite3Finalize (Stmt psm) = do@@ -133,18 +134,28 @@  instance SQLiteDataList Char where 	bindNList = sqlite3BindString-	columnList (Stmt sm) i =-		peekCString =<< c_sqlite3_column_text sm (fromIntegral i)+	columnList (Stmt sm) i = peekCString' "String column"+		=<< c_sqlite3_column_text sm (fromIntegral i)  instance SQLiteData BS.ByteString where 	bindN = sqlite3BindBlob-	column (Stmt sm) i =-		BS.packCString =<< c_sqlite3_column_blob sm (fromIntegral i)+	column (Stmt sm) i = packCString' "ByteString column"+		=<< c_sqlite3_column_blob sm (fromIntegral i)  instance SQLiteData T.Text where 	bindN sm i = sqlite3BindByteString sm i . T.encodeUtf8-	column (Stmt sm) i = T.decodeUtf8 <$>-		(BS.packCString =<< c_sqlite3_column_text sm (fromIntegral i))+	column (Stmt sm) i = (T.decodeUtf8 <$>) .  packCString' "Text column"+		=<< c_sqlite3_column_text sm (fromIntegral i)++peekCString' :: String -> CString -> IO String+peekCString' em cstr+	| cstr == nullPtr = nullPointerException em+	| otherwise = peekCString cstr++packCString' :: String -> CString -> IO BS.ByteString+packCString' em cstr+	| cstr == nullPtr = nullPointerException em+	| otherwise = BS.packCString cstr  foreign import ccall unsafe "sqlite3.h sqlite3_bind_null" 	c_sqlite3_bind_null :: Ptr Stmt -> CInt -> IO CInt
src/Database/SmplstSQLite3/Constants.hsc view
@@ -63,6 +63,7 @@ 	) where  import Foreign.C.Types+import Data.Bits  sQLITE_OK, sQLITE_ROW, sQLITE_DONE :: CInt sQLITE_OK = #const SQLITE_OK@@ -98,7 +99,8 @@ sQLITE_READONLY_RECOVERY = #const SQLITE_READONLY_RECOVERY sQLITE_READONLY_CANTLOCK = #const SQLITE_READONLY_CANTLOCK sQLITE_READONLY_ROLLBACK = #const SQLITE_READONLY_ROLLBACK-sQLITE_READONLY_DBMOVED = #const SQLITE_READONLY_DBMOVED+-- sQLITE_READONLY_DBMOVED = #const SQLITE_READONLY_DBMOVED+sQLITE_READONLY_DBMOVED = sQLITE_READONLY_PLAIN .|. 4 `shiftL` 8  sQLITE_INTERRUPT :: CInt sQLITE_INTERRUPT = #const SQLITE_INTERRUPT@@ -191,7 +193,8 @@  sQLITE_AUTH_PLAIN, sQLITE_AUTH_USER :: CInt sQLITE_AUTH_PLAIN = #const SQLITE_AUTH-sQLITE_AUTH_USER = #const SQLITE_AUTH_USER+-- sQLITE_AUTH_USER = #const SQLITE_AUTH_USER+sQLITE_AUTH_USER = sQLITE_AUTH_PLAIN .|. 1 `shiftL` 8  sQLITE_FORMAT, sQLITE_RANGE, sQLITE_NOTADB :: CInt sQLITE_FORMAT = #const SQLITE_FORMAT
src/Database/SmplstSQLite3/Exception.hs view
@@ -113,6 +113,9 @@  	SQLITE_BIND_ERROR(..), 	SQLITE_ERROR_OTHER(..),+	+	NullPointerException(..),+	nullPointerException 	) where  import Database.SmplstSQLite3.Exception.Internal
src/Database/SmplstSQLite3/Exception/Internal.hs view
@@ -116,7 +116,11 @@ 	SQLITE_WARNING_AUTOINDEX(..),  	SQLITE_BIND_ERROR(..),-	SQLITE_ERROR_OTHER(..) ) where+	SQLITE_ERROR_OTHER(..),+	+	NullPointerException(..),+	nullPointerException+	) where  import Control.Exception import Control.Exception.Hierarchy@@ -443,3 +447,11 @@  sqliteThrowBindError :: String -> IO a sqliteThrowBindError em = throw $ SQLITE_BIND_ERROR em++newtype NullPointerException = NullPointerException String+	deriving (Typeable, Show)++exceptionHierarchy Nothing (ExType ''NullPointerException)++nullPointerException :: String -> IO a+nullPointerException em = throwIO $ NullPointerException em