mysql 0.1.2 → 0.1.2.1
raw patch · 4 files changed
+15/−7 lines, 4 files
Files
- ChangeLog.md +4/−0
- Database/MySQL/Base/C.hsc +3/−4
- mysql.cabal +1/−1
- test/main.hs +7/−2
ChangeLog.md view
@@ -1,3 +1,7 @@+## 0.1.2.1++* Fix bystestring-valued connectOptions sometimes not being null terminated at the correct place (avoid unsafeUseAsCString).+ ## 0.1.2 * Fix setup for cabal 1.24
Database/MySQL/Base/C.hsc view
@@ -69,7 +69,6 @@ #include "mysql.h" import Data.ByteString (useAsCString)-import Data.ByteString.Unsafe (unsafeUseAsCString) import Database.MySQL.Base.Types import Foreign.C.String (CString, withCString) ##if __GLASGOW_HASKELL__ >= 704@@ -98,7 +97,7 @@ ReadDefaultFile path -> withCString path $ go (#const MYSQL_READ_DEFAULT_FILE) ReadDefaultGroup group ->- unsafeUseAsCString group $ go (#const MYSQL_READ_DEFAULT_GROUP)+ useAsCString group $ go (#const MYSQL_READ_DEFAULT_GROUP) CharsetDir path -> withCString path $ go (#const MYSQL_SET_CHARSET_DIR) CharsetName cs ->@@ -108,7 +107,7 @@ Protocol proto -> withIntegral (fromEnum proto) $ go (#const MYSQL_OPT_PROTOCOL) SharedMemoryBaseName name ->- unsafeUseAsCString name $ go (#const MYSQL_SHARED_MEMORY_BASE_NAME)+ useAsCString name $ go (#const MYSQL_SHARED_MEMORY_BASE_NAME) ReadTimeout secs -> withIntegral secs $ go (#const MYSQL_OPT_READ_TIMEOUT) WriteTimeout secs ->@@ -120,7 +119,7 @@ GuessConnection -> go (#const MYSQL_OPT_GUESS_CONNECTION) nullPtr ClientIP ip ->- unsafeUseAsCString ip $ go (#const MYSQL_SET_CLIENT_IP)+ useAsCString ip $ go (#const MYSQL_SET_CLIENT_IP) SecureAuth b -> withBool b $ go (#const MYSQL_SECURE_AUTH) ReportDataTruncation b ->
mysql.cabal view
@@ -1,5 +1,5 @@ name: mysql-version: 0.1.2+version: 0.1.2.1 homepage: https://github.com/paul-rouse/mysql bug-reports: https://github.com/paul-rouse/mysql/issues synopsis: A low-level MySQL client library.
test/main.hs view
@@ -1,17 +1,22 @@ {-# LANGUAGE OverloadedStrings #-} import Control.Exception (bracket)-import Database.MySQL.Base (ConnectInfo (..), defaultConnectInfo,+import Database.MySQL.Base (ConnectInfo (..), defaultConnectInfo, Option (..), connect, close, query, useResult, fetchRow) import Test.Hspec -- This is how to connect to our test database+-- Options with bytestring values are given to partially test #17 and #23 testConn :: ConnectInfo testConn = defaultConnectInfo { connectHost = "127.0.0.1", connectUser = "test",- connectDatabase = "test"+ connectDatabase = "test",+ connectOptions = [+ InitCommand "SET SESSION sql_mode = 'STRICT_ALL_TABLES';"+ , ReadDefaultGroup "client"+ ] } -- Only the most cursory test is done at the moment, simply showing that