haskelldb-0.13: src/Database/HaskellDB/Sql/Generate.hs
-----------------------------------------------------------
-- |
-- Module : Database.HaskellDB.Sql.Generate
-- Copyright : Daan Leijen (c) 1999, daan@cs.uu.nl
-- HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net
-- License : BSD-style
--
-- Maintainer : haskelldb-users@lists.sourceforge.net
-- Stability : experimental
-- Portability : non-portable
--
-- The type of SQL generators.
--
-----------------------------------------------------------
module Database.HaskellDB.Sql.Generate (SqlGenerator(..)) where
import Database.HaskellDB.PrimQuery
import Database.HaskellDB.FieldType
import Database.HaskellDB.Sql
data SqlGenerator = SqlGenerator
{
sqlQuery :: PrimQuery -> SqlSelect,
sqlUpdate :: TableName -> [PrimExpr] -> Assoc -> SqlUpdate,
sqlDelete :: TableName -> [PrimExpr] -> SqlDelete,
sqlInsert :: TableName -> Assoc -> SqlInsert,
sqlInsertQuery :: TableName -> PrimQuery -> SqlInsert,
sqlCreateDB :: String -> SqlCreate,
sqlCreateTable :: TableName -> [(Attribute,FieldDesc)] -> SqlCreate,
sqlDropDB :: String -> SqlDrop,
sqlDropTable :: TableName -> SqlDrop,
sqlEmpty :: SqlSelect,
sqlTable :: TableName -> Scheme -> SqlSelect,
sqlProject :: Assoc -> SqlSelect -> SqlSelect,
-- | Ensures non-aggregate expressions in the select are included in
-- group by clause.
sqlGroup :: Assoc -> SqlSelect -> SqlSelect,
sqlRestrict :: PrimExpr -> SqlSelect -> SqlSelect,
sqlBinary :: RelOp -> SqlSelect -> SqlSelect -> SqlSelect,
sqlSpecial :: SpecialOp -> SqlSelect -> SqlSelect,
sqlExpr :: PrimExpr -> SqlExpr,
sqlLiteral :: Literal -> String,
sqlType :: FieldType -> SqlType,
-- | Turn a string into a quoted string. Quote characters
-- and any escaping are handled by this function.
sqlQuote :: String -> String
}