Name:          postgresql-typed
Version:       0.3.0
Cabal-Version: >= 1.8
License:       BSD3
License-File:  COPYING
Copyright:     2010-2013 Chris Forno, 2014-2015 Dylan Simon
Author:        Dylan Simon
Maintainer:    dylan@dylex.net
Stability:     alpha
Bug-Reports:   https://github.com/dylex/postgresql-typed/issues
Homepage:      https://github.com/dylex/postgresql-typed
Category:      Database
Synopsis:      A PostgreSQL access library with compile-time SQL type inference
Description:   Automatically type-check SQL statements at compile time.
               Uses Template Haskell and the raw PostgreSQL protocol to describe SQL statements at compile time and provide appropriate type marshalling for both parameters and results.
               Allows not only syntax verification of your SQL but also full type safety between your SQL and Haskell.
               Supports many built-in PostgreSQL types already, including arrays and ranges, and can be easily extended in user code to support any other types.
               Originally based on Chris Forno's templatepg library.
Tested-With:   GHC == 7.8.4
Build-Type:    Simple

source-repository head
  type:     git
  location: git://github.com/dylex/postgresql-typed

Flag md5
  Description: Enable md5 password authentication method.
  Default: True

Flag binary
  Description: Use binary protocol encoding via postgresql-binary. This may put additional restrictions on supported PostgreSQL server versions.
  Default: True

Flag text
  Description: Support Text string values via text (implied by binary).
  Default: True

Flag uuid
  Description: Support the UUID type via uuid (implied by binary).
  Default: True

Flag scientific
  Description: Support decoding numeric via scientific (implied by binary).
  Default: True

Library
  Build-Depends:
    base >= 4.7 && < 5,
    array, binary, containers, old-locale, time,
    bytestring >= 0.10.2,
    template-haskell,
    haskell-src-meta,
    network,
    parsec,
    utf8-string
  Exposed-Modules:
    Database.PostgreSQL.Typed
    Database.PostgreSQL.Typed.Protocol
    Database.PostgreSQL.Typed.Types
    Database.PostgreSQL.Typed.TH
    Database.PostgreSQL.Typed.Query
    Database.PostgreSQL.Typed.Enum
    Database.PostgreSQL.Typed.Range
    Database.PostgreSQL.Typed.TemplatePG
  GHC-Options: -Wall
  if flag(md5)
    Build-Depends: cryptohash >= 0.5
    CPP-options: -DUSE_MD5
  if flag(binary)
    Build-Depends: postgresql-binary >= 0.5.0, text >= 1, uuid >= 1.3, scientific >= 0.3
    CPP-options: -DUSE_BINARY -DUSE_TEXT -DUSE_UUID -DUSE_SCIENTIFIC
  else
    if flag(text)
      Build-Depends: text >= 1
      CPP-options: -DUSE_TEXT
    if flag(uuid)
      Build-Depends: uuid >= 1.3
      CPP-options: -DUSE_UUID
    if flag(scientific)
      Build-Depends: scientific >= 0.3
      CPP-options: -DUSE_SCIENTIFIC

test-suite test
  build-depends: base, network, time, postgresql-typed
  type: exitcode-stdio-1.0
  main-is: Main.hs
  buildable: True
  hs-source-dirs: test
  Extensions: TemplateHaskell, QuasiQuotes
  GHC-Options: -Wall