From 79e509f18629d72430ca7da7f1a6b73602f066e4 Mon Sep 17 00:00:00 2001 From: caifengyin <1317775780@qq.com> Date: Sat, 7 Jun 2025 23:58:54 +0800 Subject: [PATCH 1/2] feat: support database comment --- parser/ast.go | 5 +++++ parser/parser_table.go | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/parser/ast.go b/parser/ast.go index 727390e..0a0b0e7 100644 --- a/parser/ast.go +++ b/parser/ast.go @@ -1502,6 +1502,7 @@ type CreateDatabase struct { IfNotExists bool // true if 'IF NOT EXISTS' is specified OnCluster *ClusterClause Engine *EngineExpr + Comment *StringLiteral } func (c *CreateDatabase) Pos() Pos { @@ -1531,6 +1532,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 } From 4ee3327226f851c0ec57e59ba0c3d89cc33160f7 Mon Sep 17 00:00:00 2001 From: git-hulk Date: Fri, 20 Jun 2025 23:58:18 +0800 Subject: [PATCH 2/2] Fix style --- parser/testdata/ddl/output/create_database.sql.golden.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/parser/testdata/ddl/output/create_database.sql.golden.json b/parser/testdata/ddl/output/create_database.sql.golden.json index e2de521..02c3dcd 100644 --- a/parser/testdata/ddl/output/create_database.sql.golden.json +++ b/parser/testdata/ddl/output/create_database.sql.golden.json @@ -10,6 +10,7 @@ }, "IfNotExists": true, "OnCluster": null, - "Engine": null + "Engine": null, + "Comment": null } ] \ No newline at end of file