Add scalar convenience function

This commit is contained in:
rightfold
2017-01-12 17:12:59 +01:00
parent 9609e8c94f
commit b9c7dbedea
2 changed files with 16 additions and 2 deletions

View File

@@ -17,11 +17,13 @@ module Database.PostgreSQL
, withTransaction
, execute
, query
, scalar
) where
import Control.Monad.Aff (Aff)
import Control.Monad.Error.Class (catchError, throwError)
import Control.Monad.Except (runExcept)
import Data.Array (head)
import Data.ByteString (ByteString)
import Data.Either (Either(..))
import Data.Foreign (Foreign, readArray, readChar, readInt, readString, toForeign, unsafeFromForeign)
@@ -30,7 +32,7 @@ import Data.List as List
import Data.Maybe (fromJust, Maybe(..))
import Data.Newtype (class Newtype)
import Data.Traversable (traverse)
import Data.Tuple (Tuple)
import Data.Tuple (fst, Tuple)
import Data.Tuple.Nested ((/\), tuple1, tuple2, tuple3, tuple4, tuple5)
import Partial.Unsafe (unsafePartial)
import Prelude
@@ -203,6 +205,17 @@ query conn (Query sql) values =
_query conn sql (toSQLRow values)
<#> map (unsafePartial fromJust <<< fromSQLRow)
scalar
:: ∀ i o eff
. (ToSQLRow i, FromSQLValue o)
=> Connection
-> Query i (Tuple o Unit)
-> i
-> Aff (postgreSQL :: POSTGRESQL | eff) (Maybe o)
scalar conn sql values =
query conn sql values
<#> map fst <<< head
foreign import _query
:: ∀ eff
. Connection