module Database.Relational.Internal.Config (
Config,
defaultConfig,
productUnitSupport,
chunksInsertSize,
schemaNameMode,
normalizedTableName,
addQueryTableAliasAS,
addModifyTableAliasAS,
enableWarning,
verboseAsCompilerWarning,
disableOverloadedProjection,
disableSpecializedProjection,
identifierQuotation,
nameConfig,
NameConfig,
defaultNameConfig,
recordConfig,
relationVarName,
ProductUnitSupport (..), SchemaNameMode (..), IdentifierQuotation (..),
) where
import Language.Haskell.TH.Name.CamelCase (VarName, varCamelcaseName)
import qualified Database.Record.TH as RecordTH
data NameConfig =
NameConfig
{ NameConfig -> NameConfig
recordConfig :: RecordTH.NameConfig
, NameConfig -> String -> String -> VarName
relationVarName :: String -> String -> VarName
}
instance Show NameConfig where
show :: NameConfig -> String
show = String -> NameConfig -> String
forall a b. a -> b -> a
const String
"<NameConfig>"
defaultNameConfig :: NameConfig
defaultNameConfig :: NameConfig
defaultNameConfig =
NameConfig :: NameConfig -> (String -> String -> VarName) -> NameConfig
NameConfig
{ recordConfig :: NameConfig
recordConfig = NameConfig
RecordTH.defaultNameConfig
, relationVarName :: String -> String -> VarName
relationVarName = (String -> VarName) -> String -> String -> VarName
forall a b. a -> b -> a
const String -> VarName
varCamelcaseName
}
data ProductUnitSupport = PUSupported | PUNotSupported deriving Int -> ProductUnitSupport -> ShowS
[ProductUnitSupport] -> ShowS
ProductUnitSupport -> String
(Int -> ProductUnitSupport -> ShowS)
-> (ProductUnitSupport -> String)
-> ([ProductUnitSupport] -> ShowS)
-> Show ProductUnitSupport
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProductUnitSupport] -> ShowS
$cshowList :: [ProductUnitSupport] -> ShowS
show :: ProductUnitSupport -> String
$cshow :: ProductUnitSupport -> String
showsPrec :: Int -> ProductUnitSupport -> ShowS
$cshowsPrec :: Int -> ProductUnitSupport -> ShowS
Show
data SchemaNameMode
= SchemaQualified
| SchemaNotQualified
deriving (SchemaNameMode -> SchemaNameMode -> Bool
(SchemaNameMode -> SchemaNameMode -> Bool)
-> (SchemaNameMode -> SchemaNameMode -> Bool) -> Eq SchemaNameMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SchemaNameMode -> SchemaNameMode -> Bool
$c/= :: SchemaNameMode -> SchemaNameMode -> Bool
== :: SchemaNameMode -> SchemaNameMode -> Bool
$c== :: SchemaNameMode -> SchemaNameMode -> Bool
Eq, Int -> SchemaNameMode -> ShowS
[SchemaNameMode] -> ShowS
SchemaNameMode -> String
(Int -> SchemaNameMode -> ShowS)
-> (SchemaNameMode -> String)
-> ([SchemaNameMode] -> ShowS)
-> Show SchemaNameMode
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SchemaNameMode] -> ShowS
$cshowList :: [SchemaNameMode] -> ShowS
show :: SchemaNameMode -> String
$cshow :: SchemaNameMode -> String
showsPrec :: Int -> SchemaNameMode -> ShowS
$cshowsPrec :: Int -> SchemaNameMode -> ShowS
Show)
data IdentifierQuotation = NoQuotation | Quotation Char deriving Int -> IdentifierQuotation -> ShowS
[IdentifierQuotation] -> ShowS
IdentifierQuotation -> String
(Int -> IdentifierQuotation -> ShowS)
-> (IdentifierQuotation -> String)
-> ([IdentifierQuotation] -> ShowS)
-> Show IdentifierQuotation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IdentifierQuotation] -> ShowS
$cshowList :: [IdentifierQuotation] -> ShowS
show :: IdentifierQuotation -> String
$cshow :: IdentifierQuotation -> String
showsPrec :: Int -> IdentifierQuotation -> ShowS
$cshowsPrec :: Int -> IdentifierQuotation -> ShowS
Show
data Config =
Config
{ Config -> ProductUnitSupport
productUnitSupport :: !ProductUnitSupport
, Config -> Int
chunksInsertSize :: !Int
, Config -> SchemaNameMode
schemaNameMode :: !SchemaNameMode
, Config -> Bool
normalizedTableName :: !Bool
, Config -> Bool
addQueryTableAliasAS :: !Bool
, Config -> Bool
addModifyTableAliasAS :: !Bool
, Config -> Bool
enableWarning :: !Bool
, Config -> Bool
verboseAsCompilerWarning :: !Bool
, Config -> Bool
disableOverloadedProjection :: !Bool
, Config -> Bool
disableSpecializedProjection :: !Bool
, Config -> IdentifierQuotation
identifierQuotation :: !IdentifierQuotation
, Config -> NameConfig
nameConfig :: !NameConfig
} deriving Int -> Config -> ShowS
[Config] -> ShowS
Config -> String
(Int -> Config -> ShowS)
-> (Config -> String) -> ([Config] -> ShowS) -> Show Config
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Config] -> ShowS
$cshowList :: [Config] -> ShowS
show :: Config -> String
$cshow :: Config -> String
showsPrec :: Int -> Config -> ShowS
$cshowsPrec :: Int -> Config -> ShowS
Show
defaultConfig :: Config
defaultConfig :: Config
defaultConfig =
Config :: ProductUnitSupport
-> Int
-> SchemaNameMode
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> IdentifierQuotation
-> NameConfig
-> Config
Config { productUnitSupport :: ProductUnitSupport
productUnitSupport = ProductUnitSupport
PUSupported
, chunksInsertSize :: Int
chunksInsertSize = Int
256
, schemaNameMode :: SchemaNameMode
schemaNameMode = SchemaNameMode
SchemaQualified
, normalizedTableName :: Bool
normalizedTableName = Bool
True
, addQueryTableAliasAS :: Bool
addQueryTableAliasAS = Bool
False
, addModifyTableAliasAS :: Bool
addModifyTableAliasAS = Bool
False
, enableWarning :: Bool
enableWarning = Bool
True
, verboseAsCompilerWarning :: Bool
verboseAsCompilerWarning = Bool
False
, disableOverloadedProjection :: Bool
disableOverloadedProjection = Bool
False
, disableSpecializedProjection :: Bool
disableSpecializedProjection = Bool
False
, identifierQuotation :: IdentifierQuotation
identifierQuotation = IdentifierQuotation
NoQuotation
, nameConfig :: NameConfig
nameConfig = NameConfig
defaultNameConfig
}