relational-query-0.12.3.1: src/Database/Relational/Projectable/Unsafe.hs
-- |
-- Module : Database.Relational.Projectable.Unsafe
-- Copyright : 2017 Kei Hibino
-- License : BSD3
--
-- Maintainer : ex8k.hibino@gmail.com
-- Stability : experimental
-- Portability : unknown
--
-- This module provides unsafe interfaces between projected terms and SQL terms.
module Database.Relational.Projectable.Unsafe (
SqlContext (..), OperatorContext, AggregatedContext,
PlaceHolders (..)
) where
import Database.Relational.Internal.String (StringSQL)
import Database.Relational.SqlSyntax (Record)
-- | Interface to project SQL terms unsafely.
class SqlContext c where
-- | Unsafely project from SQL expression terms.
unsafeProjectSqlTerms :: [StringSQL]
-> Record c t
-- | Constraint to restrict context of full SQL expressions.
-- For example, the expression at the left of OVER clause
-- is not allowed using full SQL expression.
class SqlContext c => OperatorContext c
-- | Constraint to restrict context of aggregated SQL context.
class AggregatedContext ac
-- | Placeholder parameter type which has real parameter type argument 'p'.
data PlaceHolders p = PlaceHolders