{-# LANGUAGE FlexibleContexts #-}
module Opaleye.Values(
values,
valuesExplicit,
V.Valuesspec,
V.valuesspecField,
valuesSafe,
valuesSafeExplicit,
valuesUnsafe,
valuesUnsafeExplicit,
V.ValuesspecSafe,
) where
import qualified Opaleye.Internal.QueryArr as Q
import qualified Opaleye.Internal.Tag as Tag
import Opaleye.Internal.Values as V
import qualified Opaleye.Internal.Unpackspec as U
import qualified Opaleye.Select as S
import Data.Profunctor.Product.Default (Default, def)
{-# DEPRECATED valuesUnsafe "Use 'values' instead. Will be removed in 0.10." #-}
valuesUnsafe :: (Default V.ValuesspecUnsafe fields fields,
Default U.Unpackspec fields fields) =>
[fields] -> S.Select fields
valuesUnsafe :: [fields] -> Select fields
valuesUnsafe = Unpackspec fields fields
-> ValuesspecUnsafe fields fields -> [fields] -> Select fields
forall fields fields'.
Unpackspec fields fields'
-> ValuesspecUnsafe fields fields' -> [fields] -> Select fields'
valuesUnsafeExplicit Unpackspec fields fields
forall (p :: * -> * -> *) a b. Default p a b => p a b
def ValuesspecUnsafe fields fields
forall (p :: * -> * -> *) a b. Default p a b => p a b
def
{-# DEPRECATED valuesUnsafeExplicit "Use 'values' instead. Will be removed in 0.10." #-}
valuesUnsafeExplicit :: U.Unpackspec fields fields'
-> V.ValuesspecUnsafe fields fields'
-> [fields] -> S.Select fields'
valuesUnsafeExplicit :: Unpackspec fields fields'
-> ValuesspecUnsafe fields fields' -> [fields] -> Select fields'
valuesUnsafeExplicit Unpackspec fields fields'
unpack ValuesspecUnsafe fields fields'
valuesspec [fields]
fields =
State Tag (fields', PrimQuery) -> Select fields'
forall a. State Tag (a, PrimQuery) -> Query a
Q.productQueryArr (State Tag (fields', PrimQuery) -> Select fields')
-> State Tag (fields', PrimQuery) -> Select fields'
forall a b. (a -> b) -> a -> b
$ do
Tag
t <- State Tag Tag
Tag.fresh
(fields', PrimQuery) -> State Tag (fields', PrimQuery)
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Unpackspec fields fields'
-> ValuesspecUnsafe fields fields'
-> [fields]
-> ((), Tag)
-> (fields', PrimQuery)
forall columns columns'.
Unpackspec columns columns'
-> ValuesspecUnsafe columns columns'
-> [columns]
-> ((), Tag)
-> (columns', PrimQuery)
V.valuesU Unpackspec fields fields'
unpack ValuesspecUnsafe fields fields'
valuesspec [fields]
fields ((), Tag
t))
values :: Default V.Valuesspec fields fields
=> [fields] -> S.Select fields
values :: [fields] -> Select fields
values = Valuesspec fields fields -> [fields] -> Select fields
forall fields fields'.
Valuesspec fields fields' -> [fields] -> Select fields'
valuesExplicit Valuesspec fields fields
forall (p :: * -> * -> *) a b. Default p a b => p a b
def
valuesExplicit :: V.Valuesspec fields fields'
-> [fields] -> S.Select fields'
valuesExplicit :: Valuesspec fields fields' -> [fields] -> Select fields'
valuesExplicit Valuesspec fields fields'
valuesspec [fields]
fields =
State Tag (fields', PrimQuery) -> Select fields'
forall a. State Tag (a, PrimQuery) -> Query a
Q.productQueryArr (State Tag (fields', PrimQuery) -> Select fields')
-> State Tag (fields', PrimQuery) -> Select fields'
forall a b. (a -> b) -> a -> b
$ do
Tag
t <- State Tag Tag
Tag.fresh
(fields', PrimQuery) -> State Tag (fields', PrimQuery)
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Valuesspec fields fields'
-> [fields] -> ((), Tag) -> (fields', PrimQuery)
forall columns columns'.
Valuesspec columns columns'
-> [columns] -> ((), Tag) -> (columns', PrimQuery)
V.valuesUSafe Valuesspec fields fields'
valuesspec [fields]
fields ((), Tag
t))
{-# DEPRECATED valuesSafe "Use 'values' instead. Will be removed in 0.10." #-}
valuesSafe :: Default V.Valuesspec fields fields
=> [fields] -> S.Select fields
valuesSafe :: [fields] -> Select fields
valuesSafe = [fields] -> Select fields
forall fields.
Default Valuesspec fields fields =>
[fields] -> Select fields
values
{-# DEPRECATED valuesSafeExplicit "Use 'values' instead. Will be removed in 0.10." #-}
valuesSafeExplicit :: V.Valuesspec fields fields'
-> [fields] -> S.Select fields'
valuesSafeExplicit :: Valuesspec fields fields' -> [fields] -> Select fields'
valuesSafeExplicit = Valuesspec fields fields' -> [fields] -> Select fields'
forall fields fields'.
Valuesspec fields fields' -> [fields] -> Select fields'
valuesExplicit