diff --git a/parser/ast.go b/parser/ast.go index 01960b4..f267d12 100644 --- a/parser/ast.go +++ b/parser/ast.go @@ -1468,6 +1468,7 @@ type CreateDatabase struct { IfNotExists bool // true if 'IF NOT EXISTS' is specified OnCluster *ClusterClause Engine *EngineExpr + Comment *StringLiteral } func (c *CreateDatabase) Pos() Pos { @@ -1497,6 +1498,10 @@ func (c *CreateDatabase) String() string { builder.WriteString(" ") builder.WriteString(c.Engine.String()) } + if c.Comment != nil { + builder.WriteString(" COMMENT ") + builder.WriteString(c.Comment.String()) + } return builder.String() } diff --git a/parser/parser_table.go b/parser/parser_table.go index e47393d..1c4143f 100644 --- a/parser/parser_table.go +++ b/parser/parser_table.go @@ -98,6 +98,10 @@ func (p *Parser) parseCreateDatabase(pos Pos) (*CreateDatabase, error) { if engineExpr != nil { StatementEnd = onCluster.End() } + commentExpr, err := p.tryParseComment() + if err != nil { + return nil, err + } return &CreateDatabase{ CreatePos: pos, StatementEnd: StatementEnd, @@ -105,6 +109,7 @@ func (p *Parser) parseCreateDatabase(pos Pos) (*CreateDatabase, error) { IfNotExists: ifNotExists, OnCluster: onCluster, Engine: engineExpr, + Comment: commentExpr, }, nil }