Merge branch 'greyson-simple-sql-parser'
This commit is contained in:
commit
f019c2d1ed
|
@ -1460,6 +1460,7 @@ TODO: change style
|
|||
> statementWithoutSemicolon = choice
|
||||
> [keyword_ "create" *> choice [createSchema
|
||||
> ,createTable
|
||||
> ,createIndex
|
||||
> ,createView
|
||||
> ,createDomain
|
||||
> ,createSequence
|
||||
|
@ -1504,6 +1505,15 @@ TODO: change style
|
|||
> <*> parens (commaSep1 (uncurry TableConstraintDef <$> tableConstraintDef
|
||||
> <|> TableColumnDef <$> columnDef))
|
||||
|
||||
> createIndex :: Parser Statement
|
||||
> createIndex =
|
||||
> CreateIndex
|
||||
> <$> ((keyword_ "index" >> pure False) <|>
|
||||
> (keywords_ ["unique", "index"] >> pure True))
|
||||
> <*> names
|
||||
> <*> (keyword_ "on" >> name)
|
||||
> <*> parens (commaSep1 name)
|
||||
|
||||
> columnDef :: Parser ColumnDef
|
||||
> columnDef = ColumnDef <$> name <*> typeName
|
||||
> <*> optionMaybe defaultClause
|
||||
|
@ -1567,8 +1577,9 @@ TODO: change style
|
|||
> colConstraintDef =
|
||||
> ColConstraintDef
|
||||
> <$> (optionMaybe (keyword_ "constraint" *> names))
|
||||
> <*> (notNull <|> unique <|> primaryKey <|> check <|> references)
|
||||
> <*> (nullable <|> notNull <|> unique <|> primaryKey <|> check <|> references)
|
||||
> where
|
||||
> nullable = ColNullableConstraint <$ keyword "null"
|
||||
> notNull = ColNotNullConstraint <$ keywords_ ["not", "null"]
|
||||
> unique = ColUniqueConstraint <$ keyword_ "unique"
|
||||
> primaryKey = ColPrimaryKeyConstraint <$ keywords_ ["primary", "key"]
|
||||
|
|
|
@ -454,6 +454,7 @@ I'm not sure if this is valid syntax or not.
|
|||
> | CreateTable [Name] [TableElement]
|
||||
> | AlterTable [Name] AlterTableAction
|
||||
> | DropTable [Name] DropBehaviour
|
||||
> | CreateIndex Bool [Name] Name [Name]
|
||||
> | CreateView Bool [Name] (Maybe [Name])
|
||||
> QueryExpr (Maybe CheckOption)
|
||||
> | DropView [Name] DropBehaviour
|
||||
|
@ -572,7 +573,8 @@ I'm not sure if this is valid syntax or not.
|
|||
> deriving (Eq,Show,Read,Data,Typeable)
|
||||
|
||||
> data ColConstraint =
|
||||
> ColNotNullConstraint
|
||||
> ColNullableConstraint
|
||||
> | ColNotNullConstraint
|
||||
> | ColUniqueConstraint
|
||||
> | ColPrimaryKeyConstraint
|
||||
> | ColReferencesConstraint [Name] (Maybe Name)
|
||||
|
|
Loading…
Reference in a new issue