Allow not specifying types for column defs
This commit is contained in:
parent
39c8e05224
commit
424211b49a
6 changed files with 63 additions and 50 deletions
Language/SQL/SimpleSQL
|
@ -98,6 +98,8 @@ data Dialect = Dialect
|
|||
,diNonCommaSeparatedConstraints :: Bool
|
||||
-- | allow marking tables as "without rowid"
|
||||
,diWithoutRowidTables :: Bool
|
||||
-- | allow omitting types for columns
|
||||
,diOptionalColumnTypes :: Bool
|
||||
}
|
||||
deriving (Eq,Show,Read,Data,Typeable)
|
||||
|
||||
|
@ -123,6 +125,7 @@ ansi2011 = Dialect {diKeywords = ansi2011ReservedKeywords
|
|||
,diAutoincrement = False
|
||||
,diNonCommaSeparatedConstraints = False
|
||||
,diWithoutRowidTables = False
|
||||
,diOptionalColumnTypes = False
|
||||
}
|
||||
|
||||
-- | mysql dialect
|
||||
|
|
|
@ -1737,9 +1737,12 @@ createIndex =
|
|||
<*> parens (commaSep1 (name "column name"))
|
||||
|
||||
columnDef :: Parser ColumnDef
|
||||
columnDef = ColumnDef <$> name "column name" <*> typeName
|
||||
<*> optional defaultClause
|
||||
<*> option [] (some colConstraintDef)
|
||||
columnDef = do
|
||||
optionalType <- askDialect diOptionalColumnTypes
|
||||
ColumnDef <$> name "column name"
|
||||
<*> (if optionalType then optional typeName else Just <$> typeName)
|
||||
<*> optional defaultClause
|
||||
<*> option [] (some colConstraintDef)
|
||||
where
|
||||
defaultClause = label "column default clause" $ choice [
|
||||
keyword_ "default" >>
|
||||
|
|
|
@ -700,7 +700,7 @@ dropBehav Restrict = pretty "restrict"
|
|||
|
||||
columnDef :: Dialect -> ColumnDef -> Doc a
|
||||
columnDef d (ColumnDef n t mdef cons) =
|
||||
name n <+> typeName t
|
||||
name n <+> maybe mempty typeName t
|
||||
<+> case mdef of
|
||||
Nothing -> mempty
|
||||
Just (DefaultClause def) ->
|
||||
|
|
|
@ -553,7 +553,7 @@ data TableElement =
|
|||
| TableConstraintDef (Maybe [Name]) TableConstraint
|
||||
deriving (Eq,Show,Read,Data,Typeable)
|
||||
|
||||
data ColumnDef = ColumnDef Name TypeName
|
||||
data ColumnDef = ColumnDef Name (Maybe TypeName)
|
||||
(Maybe DefaultClause)
|
||||
[ColConstraintDef]
|
||||
-- (Maybe CollateClause)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue