{-# language FlexibleContexts #-}
module Rel8.Query.Values
( values
)
where
import Data.Foldable ( toList )
import Prelude
import qualified Opaleye.Values as Opaleye
import Rel8.Expr ( Expr )
import {-# SOURCE #-} Rel8.Query ( Query )
import Rel8.Query.Opaleye ( fromOpaleye )
import Rel8.Table ( Table )
import Rel8.Table.Opaleye ( valuesspec )
values :: (Table Expr a, Foldable f) => f a -> Query a
values :: f a -> Query a
values = Select a -> Query a
forall a. Select a -> Query a
fromOpaleye (Select a -> Query a) -> (f a -> Select a) -> f a -> Query a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Valuesspec a a -> [a] -> Select a
forall fields fields'.
Valuesspec fields fields' -> [fields] -> Select fields'
Opaleye.valuesExplicit Valuesspec a a
forall a. Table Expr a => ValuesspecSafe a a
valuesspec ([a] -> Select a) -> (f a -> [a]) -> f a -> Select a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. f a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList