rel8-1.5.0.0: src/Rel8/Query/SQL.hs
{-# language FlexibleContexts #-}
{-# language MonoLocalBinds #-}
module Rel8.Query.SQL
( showQuery
)
where
-- base
import Prelude
-- opaleye
import qualified Opaleye.Internal.Tag as Opaleye
-- rel8
import Rel8.Expr ( Expr )
import Rel8.Query ( Query )
import Rel8.Statement.Select ( ppSelect )
import Rel8.Table ( Table )
-- transformers
import Control.Monad.Trans.State.Strict (evalState)
-- | Convert a 'Query' to a 'String' containing a @SELECT@ statement.
showQuery :: Table Expr a => Query a -> String
showQuery = show . (`evalState` Opaleye.start) . ppSelect