packages feed

hpqtypes-1.7.0.0: hpqtypes.cabal

name:                hpqtypes
version:             1.7.0.0
synopsis:            Haskell bindings to libpqtypes

description:         Efficient and easy-to-use bindings to (slightly modified)
                     @libpqtypes@, a @libpq@ extension that adds support
                     for a binary transport format and composite types.
                     .
                     Since modified @libpqtypes@ is used, its source
                     code is bundled along with the bindings. The
                     differences between verbatim @libpqtypes@ and the
                     one used by this package:
                     .
                     * Per-thread global error structures were replaced by
                       explicit passing of these structures around so that
                       there is no need to use bound threads.
                     .
                     * Handlers that take values to be put into the
                       database were modified to always expect
                       pointers to objects, as opposed to previous
                       situation where primitives were being taken by
                       value (which was convenient if the library was
                       used directly from C, but created inconsistency
                       problems while trying to define bindings in a
                       sensible way).
                     .
                     Examples can be found in the
                     <https://github.com/scrive/hpqtypes/tree/master/examples examples>
                     directory.

homepage:            https://github.com/scrive/hpqtypes
license:             BSD3
license-file:        LICENSE
author:              Scrive AB
maintainer:          Andrzej Rybczak <andrzej@rybczak.net>,
                     Jonathan Jouty <jonathan@scrive.com>,
                     Mikhail Glushenkov <mikhail@scrive.com>
copyright:           Scrive AB
category:            Database
build-type:          Custom
cabal-version:       1.18
tested-with:         GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5


extra-source-files: README.md
                  , CHANGELOG.md
                  , examples/Catalog.hs
                  , libpqtypes/AUTHORS
                  , libpqtypes/Makefile.in
                  , libpqtypes/config.guess
                  , libpqtypes/groff2html
                  , libpqtypes/win32.mak
                  , libpqtypes/ChangeLog
                  , libpqtypes/Makefile.win32
                  , libpqtypes/config.sub
                  , libpqtypes/install-sh
                  , libpqtypes/INSTALL
                  , libpqtypes/README
                  , libpqtypes/configure
                  , libpqtypes/ltmain.sh
                  , libpqtypes/LICENSE
                  , libpqtypes/acinclude.m4
                  , libpqtypes/configure.ac
                  , libpqtypes/missing
                  , libpqtypes/Makefile.am
                  , libpqtypes/aclocal.m4
                  , libpqtypes/src/pqt_config.h
                  , libpqtypes/src/pqt_config.h.in
                  , libpqtypes/src/libpqtypes-int.h
                  , libpqtypes/src/libpqtypes.h

custom-setup
  setup-depends: base >= 4.9 && < 4.13,
                 Cabal >= 1.24 && < 2.5,
                 directory,
                 filepath

source-repository head
  type:     git
  location: https://github.com/scrive/hpqtypes.git

source-repository this
  type:     git
  location: https://github.com/scrive/hpqtypes.git
  tag:      1.7.0.0

library
  exposed-modules:     Data.Monoid.Utils
                     , Database.PostgreSQL.PQTypes
                     , Database.PostgreSQL.PQTypes.Composite
                     , Database.PostgreSQL.PQTypes.ToRow
                     , Database.PostgreSQL.PQTypes.Utils
                     , Database.PostgreSQL.PQTypes.FromSQL
                     , Database.PostgreSQL.PQTypes.Array
                     , Database.PostgreSQL.PQTypes.Fold
                     , Database.PostgreSQL.PQTypes.FromRow
                     , Database.PostgreSQL.PQTypes.JSON
                     , Database.PostgreSQL.PQTypes.ToSQL
                     , Database.PostgreSQL.PQTypes.Transaction
                     , Database.PostgreSQL.PQTypes.Class
                     , Database.PostgreSQL.PQTypes.Cursor
                     , Database.PostgreSQL.PQTypes.Format
                     , Database.PostgreSQL.PQTypes.Interval
                     , Database.PostgreSQL.PQTypes.Notification
                     , Database.PostgreSQL.PQTypes.SQL
                     , Database.PostgreSQL.PQTypes.SQL.Raw
                     , Database.PostgreSQL.PQTypes.SQL.Class
                     , Database.PostgreSQL.PQTypes.Transaction.Settings
                     , Database.PostgreSQL.PQTypes.XML
                     , Database.PostgreSQL.PQTypes.Internal.Error
                     , Database.PostgreSQL.PQTypes.Internal.Error.Code
                     , Database.PostgreSQL.PQTypes.Internal.Composite
                     , Database.PostgreSQL.PQTypes.Internal.Utils
                     , Database.PostgreSQL.PQTypes.Internal.Connection
                     , Database.PostgreSQL.PQTypes.Internal.Exception
                     , Database.PostgreSQL.PQTypes.Internal.Monad
                     , Database.PostgreSQL.PQTypes.Internal.Notification
                     , Database.PostgreSQL.PQTypes.Internal.QueryResult
                     , Database.PostgreSQL.PQTypes.Internal.Query
                     , Database.PostgreSQL.PQTypes.Internal.State
                     , Database.PostgreSQL.PQTypes.Internal.C.Put
                     , Database.PostgreSQL.PQTypes.Internal.C.Types
                     , Database.PostgreSQL.PQTypes.Internal.C.Interface
                     , Database.PostgreSQL.PQTypes.Internal.C.Get

  build-depends:       base >= 4.9 && < 4.13
                     , text >= 0.11
                     , aeson >= 0.6.2.0
                     , async >= 2.1.1.1
                     , bytestring >= 0.9
                     , semigroups >= 0.16
                     , time >= 1.4
                     , vector >= 0.10
                     , transformers-base >= 0.4
                     , monad-control >= 0.3
                     , lifted-base >= 0.2
                     , resource-pool >= 0.2
                     , mtl >= 2.1
                     , transformers >= 0.2.2
                     , containers >= 0.4.0.0
                     , exceptions >= 0.6
                     , text-show >= 2

  hs-source-dirs:    src

  ghc-options:       -Wall

  build-tools:       hsc2hs
  include-dirs:      libpqtypes/src
  extra-libraries:   pq

  cc-options:        -DHAVE_CONFIG_H -D_GNU_SOURCE -D_REENTRANT -std=gnu99 -fsigned-char -fno-strict-aliasing -Wall -Wextra

  c-sources:           libpqtypes/src/array.c
                     , libpqtypes/src/datetime.c
                     , libpqtypes/src/error.c
                     , libpqtypes/src/events.c
                     , libpqtypes/src/exec.c
                     , libpqtypes/src/ffi.c
                     , libpqtypes/src/geo.c
                     , libpqtypes/src/handler.c
                     , libpqtypes/src/misc.c
                     , libpqtypes/src/network.c
                     , libpqtypes/src/numerics.c
                     , libpqtypes/src/param.c
                     , libpqtypes/src/port.c
                     , libpqtypes/src/record.c
                     , libpqtypes/src/spec.c
                     , libpqtypes/src/utils.c
                     , libpqtypes/src/varlena.c

  default-language:  Haskell2010
  default-extensions: BangPatterns
                    , ConstraintKinds
                    , DataKinds
                    , DeriveFunctor
                    , ExistentialQuantification
                    , FlexibleContexts
                    , FlexibleInstances
                    , ForeignFunctionInterface
                    , GADTs
                    , GeneralizedNewtypeDeriving
                    , LambdaCase
                    , MultiParamTypeClasses
                    , MultiWayIf
                    , OverloadedStrings
                    , RankNTypes
                    , RecordWildCards
                    , ScopedTypeVariables
                    , StandaloneDeriving
                    , TupleSections
                    , TypeFamilies
                    , TypeOperators
                    , UndecidableInstances
  other-extensions:   AllowAmbiguousTypes
                    , CPP
                    , TypeApplications

test-suite hpqtypes-tests
  type:              exitcode-stdio-1.0
  ghc-options:       -Wall -threaded

  hs-source-dirs:    test
  main-is:           Main.hs
  other-modules:     Prelude.Instances
                     Test.QuickCheck.Compat
                     Test.QuickCheck.Arbitrary.Instances
  build-depends:       hpqtypes
                     , base >= 4.9 && < 4.13
                     , HUnit >= 1.2
                     , QuickCheck >= 2.5
                     , aeson >= 0.6.2.0
                     , bytestring >= 0.9
                     , exceptions >= 0.6
                     , lifted-base >= 0.2
                     , monad-control >= 0.3
                     , mtl >= 2.1
                     , random >= 1.0
                     , scientific
                     , test-framework >= 0.8
                     , test-framework-hunit >= 0.3
                     , text >= 0.11
                     , text-show
                     , time >= 1.4
                     , transformers-base >= 0.4
                     , unordered-containers
                     , vector

  default-language:  Haskell2010
  default-extensions: BangPatterns
                    , ConstraintKinds
                    , DataKinds
                    , DeriveFunctor
                    , ExistentialQuantification
                    , FlexibleContexts
                    , FlexibleInstances
                    , ForeignFunctionInterface
                    , GADTs
                    , GeneralizedNewtypeDeriving
                    , LambdaCase
                    , MultiParamTypeClasses
                    , MultiWayIf
                    , OverloadedStrings
                    , RankNTypes
                    , RecordWildCards
                    , ScopedTypeVariables
                    , StandaloneDeriving
                    , TupleSections
                    , TypeFamilies
                    , TypeOperators
                    , UndecidableInstances