influxdb 1.9.2.2 → 1.9.3
raw patch · 5 files changed
+44/−20 lines, 5 filesdep ~aesondep ~basedep ~doctestPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: aeson, base, doctest, lens, tasty, tasty-hunit, template-haskell, text, vector
API changes (from Hackage documentation)
- Database.InfluxDB: untag :: forall k (s :: k) b. Tagged s b -> b
+ Database.InfluxDB: untag :: forall {k} (s :: k) b. Tagged s b -> b
- Database.InfluxDB.Query: untag :: forall k (s :: k) b. Tagged s b -> b
+ Database.InfluxDB.Query: untag :: forall {k} (s :: k) b. Tagged s b -> b
Files
- CHANGELOG.md +6/−0
- influxdb.cabal +20/−15
- src/Database/InfluxDB/JSON.hs +11/−1
- src/Database/InfluxDB/Write/UDP.hs +3/−2
- tests/regressions.hs +4/−2
CHANGELOG.md view
@@ -1,5 +1,11 @@ # Revision history for influxdb +## v1.9.3 - 2023-06-29++* Mitigate InfluxDB compatibility problems ([#94](https://github.com/maoe/influxdb-haskell/pull/94))+* Support GHC 9.4 and 9.6 ([#95](https://github.com/maoe/influxdb-haskell/pull/95) and [#97](https://github.com/maoe/influxdb-haskell/pull/97))+* Revitalize CI ([#96](https://github.com/maoe/influxdb-haskell/pull/96))+ ## v1.9.2.2 - 2021-11-21 * Update dependencies
influxdb.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.24 name: influxdb-version: 1.9.2.2+version: 1.9.3 synopsis: InfluxDB client library for Haskell description: @influxdb@ is an InfluxDB client library for Haskell.@@ -11,21 +11,26 @@ license-file: LICENSE author: Mitsutoshi Aoe maintainer: Mitsutoshi Aoe <me@maoe.name>-copyright: Copyright (C) 2014-2021 Mitsutoshi Aoe+copyright: Copyright (C) 2014-2023 Mitsutoshi Aoe category: Database build-type: Custom tested-with: GHC == 8.4.4 GHC == 8.6.5 GHC == 8.8.4- GHC == 8.10.4- GHC == 9.0.1+ GHC == 8.10.7+ GHC == 9.0.2+ GHC == 9.2.8+ GHC == 9.4.5+ GHC == 9.6.2 extra-source-files: README.md- CHANGELOG.md cabal.project +extra-doc-files:+ CHANGELOG.md+ flag examples description: Build examples default: False@@ -34,7 +39,7 @@ custom-setup setup-depends: base >= 4 && < 5- , Cabal >= 1.24+ , Cabal >= 1.24 && < 3.11 , cabal-doctest >= 1 && < 1.1 library@@ -74,8 +79,8 @@ ViewPatterns ghc-options: -Wall build-depends:- base >= 4.11 && < 4.17- , aeson >= 0.7 && < 2.1+ base >= 4.11 && < 4.19+ , aeson >= 0.7 && < 2.2 , attoparsec < 0.15 , bytestring >= 0.10 && < 0.12 , clock >= 0.7 && < 0.9@@ -83,15 +88,15 @@ , foldl < 1.5 , http-client >= 0.5 && < 0.8 , http-types >= 0.8.6 && < 0.13- , lens >= 4.9 && < 5.2+ , lens >= 4.9 && < 5.3 , network >= 2.6 && < 3.2 , optional-args >= 1.0 && < 1.1 , scientific >= 0.3.3 && < 0.4 , tagged >= 0.1 && < 0.9- , text < 1.3+ , text < 2.1 , time >= 1.5 && < 1.14 , unordered-containers < 0.3- , vector >= 0.10 && < 0.13+ , vector >= 0.10 && < 0.14 hs-source-dirs: src default-language: Haskell2010 @@ -100,9 +105,9 @@ main-is: doctests.hs build-depends: base- , doctest >= 0.11.3 && < 0.21+ , doctest >= 0.11.3 && < 0.22 , influxdb- , template-haskell+ , template-haskell < 2.21 ghc-options: -Wall -threaded hs-source-dirs: tests default-language: Haskell2010@@ -115,8 +120,8 @@ , containers , influxdb , lens- , tasty- , tasty-hunit+ , tasty < 1.5+ , tasty-hunit < 1.11 , time , raw-strings-qq >= 1.1 && < 1.2 , vector
src/Database/InfluxDB/JSON.hs view
@@ -55,6 +55,12 @@ import Database.InfluxDB.Types +-- $setup+-- >>> import Data.Maybe+-- >>> import Data.Aeson (decode)+-- >>> import Database.InfluxDB.JSON+-- >>> import qualified Data.Aeson.Types as A+ -- | Parse a JSON response with the 'strictDecoder'. parseResultsWith :: (Maybe Text -> HashMap Text Text -> Vector Text -> Array -> A.Parser a)@@ -200,8 +206,12 @@ return (name, tags, columns, values) -- | Parse the common JSON structure used in failure response.+-- >>> A.parse parseErrorObject $ fromJust $ decode "{ \"error\": \"custom error\" }"+-- Success "custom error"+-- >>> A.parse parseErrorObject $ fromJust $ decode "{ \"message\": \"custom error\" }"+-- Success "custom error" parseErrorObject :: A.Value -> A.Parser String-parseErrorObject = A.withObject "error" $ \obj -> obj .: "error"+parseErrorObject = A.withObject "error" $ \obj -> obj .: "error" <|> obj .: "message" -- | Parse either a POSIX timestamp or RFC3339 formatted timestamp as 'UTCTime'. parseUTCTime :: Precision ty -> A.Value -> A.Parser UTCTime
src/Database/InfluxDB/Write/UDP.hs view
@@ -31,7 +31,8 @@ This module is desined to be used with the [network] (https://hackage.haskell.org/package/network) package and be imported qualified. ->>> :set -XOverloadedStrings -XOverloadedLists+>>> :set -XOverloadedStrings -XNoOverloadedLists+>>> import qualified Data.Map as Map >>> import Data.Time >>> import Network.Socket >>> import Database.InfluxDB@@ -39,7 +40,7 @@ >>> sock <- Network.Socket.socket AF_INET Datagram defaultProtocol >>> let localhost = tupleToHostAddress (127, 0, 0, 1) >>> let params = UDP.writeParams sock $ SockAddrInet 8089 localhost->>> UDP.write params $ Line "measurement1" [] [("value", FieldInt 42)] (Nothing :: Maybe UTCTime)+>>> UDP.write params $ Line "measurement1" Map.empty (Map.fromList [("value", FieldInt 42)]) (Nothing :: Maybe UTCTime) >>> close sock Make sure that the UDP service is enabled in the InfluxDB config. This API
tests/regressions.hs view
@@ -37,8 +37,10 @@ case r of Left err -> case err of UnexpectedResponse message _ _ ->- message @?=- "BUG: parsing Int failed, expected Number, but encountered String in Database.InfluxDB.Query.query"+ message `elem` [+ "BUG: parsing Int failed, expected Number, but encountered String in Database.InfluxDB.Query.query",+ "BUG: expected Int, encountered String in Database.InfluxDB.Query.query"+ ] @? "Correct error message." _ -> assertFailure $ got ++ show err Right (v :: (V.Vector (Tagged "time" Int, Tagged "value" Int))) ->