[arch-commits] Commit in postgrest/repos/community-x86_64 (3 files)
Felix Yan
felixonmars at archlinux.org
Sun Feb 3 12:38:56 UTC 2019
Date: Sunday, February 3, 2019 @ 12:38:55
Author: felixonmars
Revision: 429470
archrelease: copy trunk to community-x86_64
Added:
postgrest/repos/community-x86_64/PKGBUILD
(from rev 429469, postgrest/trunk/PKGBUILD)
Deleted:
postgrest/repos/community-x86_64/PKGBUILD
postgrest/repos/community-x86_64/new-hasql.patch
-----------------+
PKGBUILD | 144 +++++++---------
new-hasql.patch | 477 ------------------------------------------------------
2 files changed, 70 insertions(+), 551 deletions(-)
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2019-02-03 12:38:30 UTC (rev 429469)
+++ PKGBUILD 2019-02-03 12:38:55 UTC (rev 429470)
@@ -1,74 +0,0 @@
-# Maintainer: Felix Yan <felixonmars at archlinux.org>
-# Contributor: Arch Haskell Team <arch-haskell at haskell.org>
-
-pkgname=postgrest
-pkgver=5.1.0
-pkgrel=7
-pkgdesc="REST API for any Postgres database"
-url="https://github.com/begriffs/postgrest"
-license=("MIT")
-arch=('x86_64')
-depends=('ghc-libs' 'haskell-auto-update' 'haskell-hasql' 'haskell-hasql-pool' 'haskell-protolude'
- 'haskell-warp' 'haskell-base64-bytestring' 'haskell-retry' 'haskell-aeson'
- 'haskell-ansi-wl-pprint' 'haskell-case-insensitive' 'haskell-cassava'
- 'haskell-configurator-ng' 'haskell-contravariant' 'haskell-contravariant-extras'
- 'haskell-either' 'haskell-gitrev' 'haskell-hasql-transaction' 'haskell-heredoc'
- 'haskell-http' 'haskell-http-types' 'haskell-insert-ordered-containers'
- 'haskell-interpolatedstring-perl6' 'haskell-jose' 'haskell-lens' 'haskell-lens-aeson'
- 'haskell-network-uri' 'haskell-optparse-applicative' 'haskell-ranged-sets'
- 'haskell-regex-tdfa' 'haskell-scientific' 'haskell-swagger2' 'haskell-unordered-containers'
- 'haskell-vector' 'haskell-wai' 'haskell-wai-cors' 'haskell-wai-extra'
- 'haskell-wai-middleware-static' 'haskell-cookie')
-makedepends=('ghc' 'haskell-aeson-qq' 'haskell-async' 'haskell-hspec' 'haskell-hspec-wai'
- 'haskell-hspec-wai-json' 'haskell-hjsonschema')
-checkdepends=('pifpaf' 'postgresql' 'procps-ng')
-source=("$pkgname-$pkgver.tar.bz2::https://github.com/begriffs/postgrest/archive/v$pkgver.tar.gz"
- new-hasql.patch)
-sha512sums=('d4e7ef6dab26e93fe7edb9714cdf245e85ed58556f03d2d14b8e40e0456bf62247d3fe97cdd59db59f76b2a31e7086a2e6f0fc6a4780251bd091f16e8ee28fc2'
- '53bbac6d2ef850ca66809f971b67d5ffd9b8d210d7561978a088c287e434beef1ba09bae65dc14048caf9b8c8d8eb9c329e618092c62c09dae836a9857ede470')
-
-prepare() {
- cd $pkgname-$pkgver
- patch -p1 -i ../new-hasql.patch
-
- sed -i -e 's/==/>=/' -e 's/< *4.10/<5/' $pkgname.cabal
-}
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- runhaskell Setup configure -O --enable-shared --enable-executable-dynamic --disable-library-vanilla \
- --prefix=/usr --docdir="/usr/share/doc/${pkgname}" --enable-tests \
- --dynlibdir=/usr/lib --libsubdir=\$compiler/site-local/\$pkgid \
- -f-CI
- runhaskell Setup build
- runhaskell Setup register --gen-script
- runhaskell Setup unregister --gen-script
- sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh
- sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
-}
-
-check() {
- cd $pkgname-$pkgver
-
- eval $(pifpaf run postgresql --host 127.0.0.1 --port 5432)
- createdb postgrest_test
-
- # TODO: it shouldn't take this long to finish
- # POSTGREST_TEST_CONNECTION=$(test/create_test_db "postgres://$USER@localhost" postgrest_test) runhaskell Setup test
-
- # Disabled: uses stack
- # test/io-tests.sh
-
- pifpaf_stop
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- install -D -m744 register.sh "${pkgdir}/usr/share/haskell/register/${pkgname}.sh"
- install -D -m744 unregister.sh "${pkgdir}/usr/share/haskell/unregister/${pkgname}.sh"
- runhaskell Setup copy --destdir="${pkgdir}"
- install -D -m644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
- rm -f "${pkgdir}/usr/share/doc/${pkgname}/LICENSE"
-}
Copied: postgrest/repos/community-x86_64/PKGBUILD (from rev 429469, postgrest/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2019-02-03 12:38:55 UTC (rev 429470)
@@ -0,0 +1,70 @@
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell at haskell.org>
+
+pkgname=postgrest
+pkgver=5.2.0
+pkgrel=1
+pkgdesc="REST API for any Postgres database"
+url="https://github.com/begriffs/postgrest"
+license=("MIT")
+arch=('x86_64')
+depends=('ghc-libs' 'haskell-auto-update' 'haskell-hasql' 'haskell-hasql-pool' 'haskell-protolude'
+ 'haskell-warp' 'haskell-base64-bytestring' 'haskell-retry' 'haskell-aeson'
+ 'haskell-ansi-wl-pprint' 'haskell-case-insensitive' 'haskell-cassava'
+ 'haskell-configurator-ng' 'haskell-contravariant' 'haskell-contravariant-extras'
+ 'haskell-either' 'haskell-gitrev' 'haskell-hasql-transaction' 'haskell-heredoc'
+ 'haskell-http' 'haskell-http-types' 'haskell-insert-ordered-containers'
+ 'haskell-interpolatedstring-perl6' 'haskell-jose' 'haskell-lens' 'haskell-lens-aeson'
+ 'haskell-network-uri' 'haskell-optparse-applicative' 'haskell-ranged-sets'
+ 'haskell-regex-tdfa' 'haskell-scientific' 'haskell-swagger2' 'haskell-unordered-containers'
+ 'haskell-vector' 'haskell-wai' 'haskell-wai-cors' 'haskell-wai-extra'
+ 'haskell-wai-middleware-static' 'haskell-cookie')
+makedepends=('ghc' 'haskell-aeson-qq' 'haskell-async' 'haskell-hspec' 'haskell-hspec-wai'
+ 'haskell-hspec-wai-json' 'haskell-hjsonschema')
+checkdepends=('pifpaf' 'postgresql' 'procps-ng')
+source=("$pkgname-$pkgver.tar.bz2::https://github.com/begriffs/postgrest/archive/v$pkgver.tar.gz")
+sha512sums=('7c2bba89457dd8b3d681ccc032482055144b5ee17336b2e90dda6bbed6c229f36cf521cf66aafd7923ca6c147a1f2bb26567a3109079dae65d726e85f85b32ed')
+
+prepare() {
+ cd $pkgname-$pkgver
+ sed -i -e 's/==/>=/' -e 's/< *4.10/<5/' $pkgname.cabal
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ runhaskell Setup configure -O --enable-shared --enable-executable-dynamic --disable-library-vanilla \
+ --prefix=/usr --docdir="/usr/share/doc/${pkgname}" --enable-tests \
+ --dynlibdir=/usr/lib --libsubdir=\$compiler/site-local/\$pkgid \
+ -f-CI
+ runhaskell Setup build
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+check() {
+ cd $pkgname-$pkgver
+
+ eval $(pifpaf run postgresql --host 127.0.0.1 --port 5432)
+ createdb postgrest_test
+
+ # TODO: it shouldn't take this long to finish
+ # POSTGREST_TEST_CONNECTION=$(test/create_test_db "postgres://$USER@localhost" postgrest_test) runhaskell Setup test
+
+ # Disabled: uses stack
+ # test/io-tests.sh
+
+ pifpaf_stop
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -D -m744 register.sh "${pkgdir}/usr/share/haskell/register/${pkgname}.sh"
+ install -D -m744 unregister.sh "${pkgdir}/usr/share/haskell/unregister/${pkgname}.sh"
+ runhaskell Setup copy --destdir="${pkgdir}"
+ install -D -m644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ rm -f "${pkgdir}/usr/share/doc/${pkgname}/LICENSE"
+}
Deleted: new-hasql.patch
===================================================================
--- new-hasql.patch 2019-02-03 12:38:30 UTC (rev 429469)
+++ new-hasql.patch 2019-02-03 12:38:55 UTC (rev 429470)
@@ -1,477 +0,0 @@
-From e0cc4d157106fb8978b00456181347cdb96ae1c7 Mon Sep 17 00:00:00 2001
-From: Ben Gamari <ben at smart-cactus.org>
-Date: Thu, 28 Jun 2018 01:02:09 -0400
-Subject: [PATCH] Update hasql
-
-Move to hasql 1.3.
----
- postgrest.cabal | 6 +-
- src/PostgREST/App.hs | 16 ++---
- src/PostgREST/DbStructure.hs | 126 +++++++++++++++++-----------------
- src/PostgREST/Error.hs | 11 +--
- src/PostgREST/QueryBuilder.hs | 30 ++++----
- 5 files changed, 96 insertions(+), 93 deletions(-)
-
-diff --git a/postgrest.cabal b/postgrest.cabal
-index 25231474..acfe7af9 100644
---- a/postgrest.cabal
-+++ b/postgrest.cabal
-@@ -64,9 +64,9 @@ library
- , contravariant-extras
- , either
- , gitrev
-- , hasql == 1.1
-- , hasql-pool == 0.4.3
-- , hasql-transaction == 0.5.2
-+ , hasql >= 1.3
-+ , hasql-pool >= 0.5
-+ , hasql-transaction >= 0.7
- , heredoc
- , HTTP
- , http-types
-diff --git a/src/PostgREST/App.hs b/src/PostgREST/App.hs
-index 022d95ac..ff12b6dd 100644
---- a/src/PostgREST/App.hs
-+++ b/src/PostgREST/App.hs
-@@ -102,7 +102,7 @@ findProc qi payloadKeys paramsAsSingleObject allProcs =
- else payloadKeys `S.isSubsetOf` S.fromList (pgaName <$> pdArgs x))
- ) <$> procs
-
--transactionMode :: Maybe ProcDescription -> Action -> H.Mode
-+transactionMode :: Maybe ProcDescription -> Action -> HT.Mode
- transactionMode proc action =
- case action of
- ActionRead -> HT.Read
-@@ -131,7 +131,7 @@ app dbStructure proc conf apiRequest =
- Right ((q, cq), bField) -> do
- let stm = createReadStatement q cq (contentType == CTSingularJSON) shouldCount
- (contentType == CTTextCSV) bField
-- row <- H.query () stm
-+ row <- H.statement () stm
- let (tableTotal, queryTotal, _ , body) = row
- (status, contentRange) = rangeHeader queryTotal tableTotal
- canonical = iCanonicalQS apiRequest
-@@ -162,7 +162,7 @@ app dbStructure proc conf apiRequest =
- stm = createWriteStatement sq mq
- (contentType == CTSingularJSON) isSingle
- (contentType == CTTextCSV) (iPreferRepresentation apiRequest) pkCols
-- row <- H.query (toS pjRaw) stm
-+ row <- H.statement (toS pjRaw) stm
- let (_, _, fs, body) = extractQueryResult row
- headers = catMaybes [
- if null fs
-@@ -191,7 +191,7 @@ app dbStructure proc conf apiRequest =
- let stm = createWriteStatement sq mq
- (contentType == CTSingularJSON) False (contentType == CTTextCSV)
- (iPreferRepresentation apiRequest) []
-- row <- H.query (toS pjRaw) stm
-+ row <- H.statement (toS pjRaw) stm
- let (_, queryTotal, _, body) = extractQueryResult row
- if contentType == CTSingularJSON
- && queryTotal /= 1
-@@ -224,7 +224,7 @@ app dbStructure proc conf apiRequest =
- else if S.fromList colNames /= pjKeys
- then return $ simpleError status400 [] "You must specify all columns in the payload when using PUT"
- else do
-- row <- H.query (toS pjRaw) $
-+ row <- H.statement (toS pjRaw) $
- createWriteStatement sq mq (contentType == CTSingularJSON) False
- (contentType == CTTextCSV) (iPreferRepresentation apiRequest) []
- let (_, queryTotal, _, body) = extractQueryResult row
-@@ -248,7 +248,7 @@ app dbStructure proc conf apiRequest =
- (contentType == CTSingularJSON) False
- (contentType == CTTextCSV)
- (iPreferRepresentation apiRequest) []
-- row <- H.query mempty stm
-+ row <- H.statement mempty stm
- let (_, queryTotal, _, body) = extractQueryResult row
- r = contentRangeH 1 0 $
- toInteger <$> if shouldCount then Just queryTotal else Nothing
-@@ -287,7 +287,7 @@ app dbStructure proc conf apiRequest =
- PJArray _ -> False
- singular = contentType == CTSingularJSON
- specifiedPgArgs = filter ((`S.member` pjKeys) . pgaName) $ fromMaybe [] (pdArgs <$> proc)
-- row <- H.query (toS pjRaw) $
-+ row <- H.statement (toS pjRaw) $
- callProc qi specifiedPgArgs returnsScalar q cq shouldCount
- singular (iPreferSingleObjectParameter apiRequest)
- (contentType == CTTextCSV)
-@@ -316,7 +316,7 @@ app dbStructure proc conf apiRequest =
- toTableInfo :: [Table] -> [(Table, [Column], [Text])]
- toTableInfo = map (\t -> let (s, tn) = (tableSchema t, tableName t) in (t, tableCols dbStructure s tn, tablePKCols dbStructure s tn))
- encodeApi ti sd procs = encodeOpenAPI (concat $ M.elems procs) (toTableInfo ti) uri' sd $ dbPrimaryKeys dbStructure
-- body <- encodeApi <$> H.query schema accessibleTables <*> H.query schema schemaDescription <*> H.query schema accessibleProcs
-+ body <- encodeApi <$> H.statement schema accessibleTables <*> H.statement schema schemaDescription <*> H.statement schema accessibleProcs
- return $ responseLBS status200 [toHeader CTOpenAPI] $ toS body
-
- _ -> return notFound
-diff --git a/src/PostgREST/DbStructure.hs b/src/PostgREST/DbStructure.hs
-index 99e792ec..82a48210 100644
---- a/src/PostgREST/DbStructure.hs
-+++ b/src/PostgREST/DbStructure.hs
-@@ -14,7 +14,7 @@ module PostgREST.DbStructure (
-
- import qualified Hasql.Decoders as HD
- import qualified Hasql.Encoders as HE
--import qualified Hasql.Query as H
-+import qualified Hasql.Statement as H
-
- import Control.Applicative
- import qualified Data.HashMap.Strict as M
-@@ -34,12 +34,12 @@ import Unsafe (unsafeHead)
-
- getDbStructure :: Schema -> PgVersion -> H.Session DbStructure
- getDbStructure schema pgVer = do
-- tabs <- H.query () allTables
-- cols <- H.query schema $ allColumns tabs
-- syns <- H.query schema $ allSynonyms cols
-- childRels <- H.query () $ allChildRelations tabs cols
-- keys <- H.query () $ allPrimaryKeys tabs
-- procs <- H.query schema allProcs
-+ tabs <- H.statement () allTables
-+ cols <- H.statement schema $ allColumns tabs
-+ syns <- H.statement schema $ allSynonyms cols
-+ childRels <- H.statement () $ allChildRelations tabs cols
-+ keys <- H.statement () $ allPrimaryKeys tabs
-+ procs <- H.statement schema allProcs
-
- let rels = addManyToManyRelations . addParentRelations $ addViewRelations syns childRels
- cols' = addForeignKeys rels cols
-@@ -56,70 +56,70 @@ getDbStructure schema pgVer = do
-
- decodeTables :: HD.Result [Table]
- decodeTables =
-- HD.rowsList tblRow
-+ HD.rowList tblRow
- where
-- tblRow = Table <$> HD.value HD.text
-- <*> HD.value HD.text
-- <*> HD.nullableValue HD.text
-- <*> HD.value HD.bool
-+ tblRow = Table <$> HD.column HD.text
-+ <*> HD.column HD.text
-+ <*> HD.nullableColumn HD.text
-+ <*> HD.column HD.bool
-
- decodeColumns :: [Table] -> HD.Result [Column]
- decodeColumns tables =
-- mapMaybe (columnFromRow tables) <$> HD.rowsList colRow
-+ mapMaybe (columnFromRow tables) <$> HD.rowList colRow
- where
- colRow =
- (,,,,,,,,,,,)
-- <$> HD.value HD.text <*> HD.value HD.text
-- <*> HD.value HD.text <*> HD.nullableValue HD.text
-- <*> HD.value HD.int4 <*> HD.value HD.bool
-- <*> HD.value HD.text <*> HD.value HD.bool
-- <*> HD.nullableValue HD.int4
-- <*> HD.nullableValue HD.int4
-- <*> HD.nullableValue HD.text
-- <*> HD.nullableValue HD.text
-+ <$> HD.column HD.text <*> HD.column HD.text
-+ <*> HD.column HD.text <*> HD.nullableColumn HD.text
-+ <*> HD.column HD.int4 <*> HD.column HD.bool
-+ <*> HD.column HD.text <*> HD.column HD.bool
-+ <*> HD.nullableColumn HD.int4
-+ <*> HD.nullableColumn HD.int4
-+ <*> HD.nullableColumn HD.text
-+ <*> HD.nullableColumn HD.text
-
- decodeRelations :: [Table] -> [Column] -> HD.Result [Relation]
- decodeRelations tables cols =
-- mapMaybe (relationFromRow tables cols) <$> HD.rowsList relRow
-+ mapMaybe (relationFromRow tables cols) <$> HD.rowList relRow
- where
- relRow = (,,,,,)
-- <$> HD.value HD.text
-- <*> HD.value HD.text
-- <*> HD.value (HD.array (HD.arrayDimension replicateM (HD.arrayValue HD.text)))
-- <*> HD.value HD.text
-- <*> HD.value HD.text
-- <*> HD.value (HD.array (HD.arrayDimension replicateM (HD.arrayValue HD.text)))
-+ <$> HD.column HD.text
-+ <*> HD.column HD.text
-+ <*> HD.column (HD.array (HD.dimension replicateM (HD.element HD.text)))
-+ <*> HD.column HD.text
-+ <*> HD.column HD.text
-+ <*> HD.column (HD.array (HD.dimension replicateM (HD.element HD.text)))
-
- decodePks :: [Table] -> HD.Result [PrimaryKey]
- decodePks tables =
-- mapMaybe (pkFromRow tables) <$> HD.rowsList pkRow
-+ mapMaybe (pkFromRow tables) <$> HD.rowList pkRow
- where
-- pkRow = (,,) <$> HD.value HD.text <*> HD.value HD.text <*> HD.value HD.text
-+ pkRow = (,,) <$> HD.column HD.text <*> HD.column HD.text <*> HD.column HD.text
-
- decodeSynonyms :: [Column] -> HD.Result [Synonym]
- decodeSynonyms cols =
-- mapMaybe (synonymFromRow cols) <$> HD.rowsList synRow
-+ mapMaybe (synonymFromRow cols) <$> HD.rowList synRow
- where
- synRow = (,,,,,)
-- <$> HD.value HD.text <*> HD.value HD.text
-- <*> HD.value HD.text <*> HD.value HD.text
-- <*> HD.value HD.text <*> HD.value HD.text
-+ <$> HD.column HD.text <*> HD.column HD.text
-+ <*> HD.column HD.text <*> HD.column HD.text
-+ <*> HD.column HD.text <*> HD.column HD.text
-
- decodeProcs :: HD.Result (M.HashMap Text [ProcDescription])
- decodeProcs =
- -- Duplicate rows for a function means they're overloaded, order these by least args according to ProcDescription Ord instance
-- map sort . M.fromListWith (++) . map ((\(x,y) -> (x, [y])) . addName) <$> HD.rowsList tblRow
-+ map sort . M.fromListWith (++) . map ((\(x,y) -> (x, [y])) . addName) <$> HD.rowList tblRow
- where
- tblRow = ProcDescription
-- <$> HD.value HD.text
-- <*> HD.nullableValue HD.text
-- <*> (parseArgs <$> HD.value HD.text)
-+ <$> HD.column HD.text
-+ <*> HD.nullableColumn HD.text
-+ <*> (parseArgs <$> HD.column HD.text)
- <*> (parseRetType
-- <$> HD.value HD.text
-- <*> HD.value HD.text
-- <*> HD.value HD.bool
-- <*> HD.value HD.char)
-- <*> (parseVolatility <$> HD.value HD.char)
-+ <$> HD.column HD.text
-+ <*> HD.column HD.text
-+ <*> HD.column HD.bool
-+ <*> HD.column HD.char)
-+ <*> (parseVolatility <$> HD.column HD.char)
-
- addName :: ProcDescription -> (Text, ProcDescription)
- addName pd = (pdName pd, pd)
-@@ -155,11 +155,11 @@ decodeProcs =
- | v == 's' = Stable
- | otherwise = Volatile -- only 'v' can happen here
-
--allProcs :: H.Query Schema (M.HashMap Text [ProcDescription])
--allProcs = H.statement (toS procsSqlQuery) (HE.value HE.text) decodeProcs True
-+allProcs :: H.Statement Schema (M.HashMap Text [ProcDescription])
-+allProcs = H.Statement (toS procsSqlQuery) (HE.param HE.text) decodeProcs True
-
--accessibleProcs :: H.Query Schema (M.HashMap Text [ProcDescription])
--accessibleProcs = H.statement (toS sql) (HE.value HE.text) decodeProcs True
-+accessibleProcs :: H.Statement Schema (M.HashMap Text [ProcDescription])
-+accessibleProcs = H.Statement (toS sql) (HE.param HE.text) decodeProcs True
- where
- sql = procsSqlQuery <> " AND has_function_privilege(p.oid, 'execute')"
-
-@@ -182,9 +182,9 @@ procsSqlQuery = [q|
- WHERE pn.nspname = $1
- |]
-
--schemaDescription :: H.Query Schema (Maybe Text)
-+schemaDescription :: H.Statement Schema (Maybe Text)
- schemaDescription =
-- H.statement sql (HE.value HE.text) (join <$> HD.maybeRow (HD.nullableValue HD.text)) True
-+ H.Statement sql (HE.param HE.text) (join <$> HD.rowMaybe (HD.nullableColumn HD.text)) True
- where
- sql = [q|
- select
-@@ -195,9 +195,9 @@ schemaDescription =
- where
- n.nspname = $1 |]
-
--accessibleTables :: H.Query Schema [Table]
-+accessibleTables :: H.Statement Schema [Table]
- accessibleTables =
-- H.statement sql (HE.value HE.text) decodeTables True
-+ H.Statement sql (HE.param HE.text) decodeTables True
- where
- sql = [q|
- select
-@@ -324,9 +324,9 @@ addViewPrimaryKeys syns = concatMap (\pk ->
- filter (\(col, _) -> colTable col == pkTable pk && colName col == pkName pk) syns in
- pk : viewPks)
-
--allTables :: H.Query () [Table]
-+allTables :: H.Statement () [Table]
- allTables =
-- H.statement sql HE.unit decodeTables True
-+ H.Statement sql HE.unit decodeTables True
- where
- sql = [q|
- SELECT
-@@ -347,9 +347,9 @@ allTables =
- GROUP BY table_schema, table_name, insertable
- ORDER BY table_schema, table_name |]
-
--allColumns :: [Table] -> H.Query Schema [Column]
-+allColumns :: [Table] -> H.Statement Schema [Column]
- allColumns tabs =
-- H.statement sql (HE.value HE.text) (decodeColumns tabs) True
-+ H.Statement sql (HE.param HE.text) (decodeColumns tabs) True
- where
- sql = [q|
- SELECT DISTINCT
-@@ -534,9 +534,9 @@ columnFromRow tabs (s, t, n, desc, pos, nul, typ, u, l, p, d, e) = buildColumn <
- parseEnum :: Maybe Text -> [Text]
- parseEnum str = fromMaybe [] $ split (==',') <$> str
-
--allChildRelations :: [Table] -> [Column] -> H.Query () [Relation]
-+allChildRelations :: [Table] -> [Column] -> H.Statement () [Relation]
- allChildRelations tabs cols =
-- H.statement sql HE.unit (decodeRelations tabs cols) True
-+ H.Statement sql HE.unit (decodeRelations tabs cols) True
- where
- sql = [q|
- SELECT ns1.nspname AS table_schema,
-@@ -575,9 +575,9 @@ relationFromRow allTabs allCols (rs, rt, rcs, frs, frt, frcs) =
- cols = mapM (findCol rs rt) rcs
- colsF = mapM (findCol frs frt) frcs
-
--allPrimaryKeys :: [Table] -> H.Query () [PrimaryKey]
-+allPrimaryKeys :: [Table] -> H.Statement () [PrimaryKey]
- allPrimaryKeys tabs =
-- H.statement sql HE.unit (decodePks tabs) True
-+ H.Statement sql HE.unit (decodePks tabs) True
- where
- sql = [q|
- /*
-@@ -685,9 +685,9 @@ pkFromRow :: [Table] -> (Schema, Text, Text) -> Maybe PrimaryKey
- pkFromRow tabs (s, t, n) = PrimaryKey <$> table <*> pure n
- where table = find (\tbl -> tableSchema tbl == s && tableName tbl == t) tabs
-
--allSynonyms :: [Column] -> H.Query Schema [Synonym]
-+allSynonyms :: [Column] -> H.Statement Schema [Synonym]
- allSynonyms cols =
-- H.statement sql (HE.value HE.text) (decodeSynonyms cols) True
-+ H.Statement sql (HE.param HE.text) (decodeSynonyms cols) True
- -- query explanation at https://gist.github.com/steve-chavez/7ee0e6590cddafb532e5f00c46275569
- where sql = [q|
- with
-@@ -756,7 +756,7 @@ synonymFromRow allCols (s1,t1,c1,s2,t2,c2) = (,) <$> col1 <*> col2
- findCol s t c = find (\col -> (tableSchema . colTable) col == s && (tableName . colTable) col == t && colName col == c) allCols
-
- getPgVersion :: H.Session PgVersion
--getPgVersion = H.query () $ H.statement sql HE.unit versionRow False
-+getPgVersion = H.statement () $ H.Statement sql HE.unit versionRow False
- where
- sql = "SELECT current_setting('server_version_num')::integer, current_setting('server_version')"
-- versionRow = HD.singleRow $ PgVersion <$> HD.value HD.int4 <*> HD.value HD.text
-+ versionRow = HD.singleRow $ PgVersion <$> HD.column HD.int4 <*> HD.column HD.text
-diff --git a/src/PostgREST/Error.hs b/src/PostgREST/Error.hs
-index 0972b281..f54a8e63 100644
---- a/src/PostgREST/Error.hs
-+++ b/src/PostgREST/Error.hs
-@@ -118,7 +118,10 @@ instance JSON.ToJSON P.UsageError where
- "details" .= (toS $ fromMaybe "" e :: Text)]
- toJSON (P.SessionError e) = JSON.toJSON e -- H.Error
-
--instance JSON.ToJSON H.Error where
-+instance JSON.ToJSON H.QueryError where
-+ toJSON (H.QueryError _ _ e) = JSON.toJSON e
-+
-+instance JSON.ToJSON H.CommandError where
- toJSON (H.ResultError (H.ServerError c m d h)) = case toS c of
- 'P':'T':_ ->
- JSON.object [
-@@ -154,7 +157,7 @@ instance JSON.ToJSON H.Error where
-
- httpStatus :: Bool -> P.UsageError -> HT.Status
- httpStatus _ (P.ConnectionError _) = HT.status503
--httpStatus authed (P.SessionError (H.ResultError (H.ServerError c m _ _))) =
-+httpStatus authed (P.SessionError (H.QueryError _ _ (H.ResultError (H.ServerError c m _ _)))) =
- case toS c of
- '0':'8':_ -> HT.status503 -- pg connection err
- '0':'9':_ -> HT.status500 -- triggered action exception
-@@ -184,5 +187,5 @@ httpStatus authed (P.SessionError (H.ResultError (H.ServerError c m _ _))) =
- "42501" -> if authed then HT.status403 else HT.status401 -- insufficient privilege
- 'P':'T':n -> fromMaybe HT.status500 (HT.mkStatus <$> readMaybe n <*> pure m)
- _ -> HT.status400
--httpStatus _ (P.SessionError (H.ResultError _)) = HT.status500
--httpStatus _ (P.SessionError (H.ClientError _)) = HT.status503
-+httpStatus _ (P.SessionError (H.QueryError _ _ (H.ResultError _))) = HT.status500
-+httpStatus _ (P.SessionError (H.QueryError _ _ (H.ClientError _))) = HT.status503
-diff --git a/src/PostgREST/QueryBuilder.hs b/src/PostgREST/QueryBuilder.hs
-index e29ce630..95bc2516 100644
---- a/src/PostgREST/QueryBuilder.hs
-+++ b/src/PostgREST/QueryBuilder.hs
-@@ -26,7 +26,7 @@ module PostgREST.QueryBuilder (
- , pgFmtSetLocal
- ) where
-
--import qualified Hasql.Query as H
-+import qualified Hasql.Statement as H
- import qualified Hasql.Encoders as HE
- import qualified Hasql.Decoders as HD
-
-@@ -58,10 +58,10 @@ import PostgREST.ApiRequest (PreferRepresentation (..))
- type ResultsWithCount = (Maybe Int64, Int64, [BS.ByteString], BS.ByteString)
-
- standardRow :: HD.Row ResultsWithCount
--standardRow = (,,,) <$> HD.nullableValue HD.int8 <*> HD.value HD.int8
-- <*> HD.value header <*> HD.value HD.bytea
-+standardRow = (,,,) <$> HD.nullableColumn HD.int8 <*> HD.column HD.int8
-+ <*> HD.column header <*> HD.column HD.bytea
- where
-- header = HD.array $ HD.arrayDimension replicateM $ HD.arrayValue HD.bytea
-+ header = HD.array $ HD.dimension replicateM $ HD.element HD.bytea
-
- noLocationF :: Text
- noLocationF = "array[]::text[]"
-@@ -76,10 +76,10 @@ decodeStandard =
-
- decodeStandardMay :: HD.Result (Maybe ResultsWithCount)
- decodeStandardMay =
-- HD.maybeRow standardRow
-+ HD.rowMaybe standardRow
-
- createReadStatement :: SqlQuery -> SqlQuery -> Bool -> Bool -> Bool -> Maybe FieldName ->
-- H.Query () ResultsWithCount
-+ H.Statement () ResultsWithCount
- createReadStatement selectQuery countQuery isSingle countTotal asCsv binaryField =
- unicodeStatement sql HE.unit decodeStandard False
- where
-@@ -102,9 +102,9 @@ createReadStatement selectQuery countQuery isSingle countTotal asCsv binaryField
-
- createWriteStatement :: SqlQuery -> SqlQuery -> Bool -> Bool -> Bool ->
- PreferRepresentation -> [Text] ->
-- H.Query ByteString (Maybe ResultsWithCount)
-+ H.Statement ByteString (Maybe ResultsWithCount)
- createWriteStatement selectQuery mutateQuery wantSingle wantHdrs asCsv rep pKeys =
-- unicodeStatement sql (HE.value HE.unknown) decodeStandardMay True
-+ unicodeStatement sql (HE.param HE.unknown) decodeStandardMay True
-
- where
- sql = case rep of
-@@ -139,9 +139,9 @@ createWriteStatement selectQuery mutateQuery wantSingle wantHdrs asCsv rep pKeys
- type ProcResults = (Maybe Int64, Int64, ByteString, ByteString)
- callProc :: QualifiedIdentifier -> [PgArg] -> Bool -> SqlQuery -> SqlQuery -> Bool ->
- Bool -> Bool -> Bool -> Bool -> Maybe FieldName -> Bool -> PgVersion ->
-- H.Query ByteString (Maybe ProcResults)
-+ H.Statement ByteString (Maybe ProcResults)
- callProc qi pgArgs returnsScalar selectQuery countQuery countTotal isSingle paramsAsSingleObject asCsv asBinary binaryField isObject pgVer =
-- unicodeStatement sql (HE.value HE.unknown) decodeProc True
-+ unicodeStatement sql (HE.param HE.unknown) decodeProc True
- where
- sql =
- if returnsScalar then [qc|
-@@ -182,9 +182,9 @@ callProc qi pgArgs returnsScalar selectQuery countQuery countTotal isSingle para
- if pgVer >= pgVersion96
- then "coalesce(nullif(current_setting('response.headers', true), ''), '[]')" :: Text -- nullif is used because of https://gist.github.com/steve-chavez/8d7033ea5655096903f3b52f8ed09a15
- else "'[]'" :: Text
-- decodeProc = HD.maybeRow procRow
-- procRow = (,,,) <$> HD.nullableValue HD.int8 <*> HD.value HD.int8
-- <*> HD.value HD.bytea <*> HD.value HD.bytea
-+ decodeProc = HD.rowMaybe procRow
-+ procRow = (,,,) <$> HD.nullableColumn HD.int8 <*> HD.column HD.int8
-+ <*> HD.column HD.bytea <*> HD.column HD.bytea
- scalarBodyF
- | asBinary = asBinaryF _procName
- | otherwise = "(row_to_json(_postgrest_t)->" <> pgFmtLit _procName <> ")::character varying"
-@@ -381,8 +381,8 @@ fromQi t = (if s == "" then "" else pgFmtIdent s <> ".") <> pgFmtIdent n
- n = qiName t
- s = qiSchema t
-
--unicodeStatement :: Text -> HE.Params a -> HD.Result b -> Bool -> H.Query a b
--unicodeStatement = H.statement . T.encodeUtf8
-+unicodeStatement :: Text -> HE.Params a -> HD.Result b -> Bool -> H.Statement a b
-+unicodeStatement = H.Statement . T.encodeUtf8
-
- emptyOnFalse :: Text -> Bool -> Text
- emptyOnFalse val cond = if cond then "" else val
More information about the arch-commits
mailing list