Skip to content

Commit

Permalink
Fix alter table add column cannot bring the comment field (#58)
Browse files Browse the repository at this point in the history
  • Loading branch information
git-hulk committed Mar 5, 2024
1 parent 6fcbda2 commit 0d9ca44
Show file tree
Hide file tree
Showing 18 changed files with 630 additions and 269 deletions.
4 changes: 2 additions & 2 deletions parser/ast.go
Original file line number Diff line number Diff line change
Expand Up @@ -2623,7 +2623,7 @@ func (w *WindowFunctionExpr) Accept(visitor ASTVisitor) error {
type Column struct {
NamePos Pos
ColumnEnd Pos
Name *Ident
Name *NestedIdentifier
Type Expr
NotNull *NotNullLiteral
Nullable *NullLiteral
Expand All @@ -2638,7 +2638,7 @@ type Column struct {
}

func (c *Column) Pos() Pos {
return c.Name.NamePos
return c.Name.Pos()
}

func (c *Column) End() Pos {
Expand Down
17 changes: 10 additions & 7 deletions parser/parser_table.go
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ func (p *Parser) parseTableColumn(pos Pos) (*Column, error) {
// Not a column definition, just return
column := &Column{NamePos: pos}
// parse column name
name, err := p.parseIdent()
name, err := p.ParseNestedIdentifier(p.Pos())
if err != nil {
return nil, err
}
Expand All @@ -434,20 +434,23 @@ func (p *Parser) parseTableColumn(pos Pos) (*Column, error) {
if notNull != nil {
columnEnd = notNull.End()
}
comment, err := p.tryParseColumnComment(p.Pos())

property, err := p.tryParseTableColumnPropertyExpr(p.Pos())
if err != nil {
return nil, err
}
if comment != nil {
columnEnd = comment.End()
if property != nil {
columnEnd = property.End()
}
property, err := p.tryParseTableColumnPropertyExpr(p.Pos())

comment, err := p.tryParseColumnComment(p.Pos())
if err != nil {
return nil, err
}
if property != nil {
columnEnd = property.End()
if comment != nil {
columnEnd = comment.End()
}

codec, err := p.tryParseCompressionCodecs(p.Pos())
if err != nil {
return nil, err
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,13 @@
"NamePos": 70,
"ColumnEnd": 79,
"Name": {
"Name": "f1",
"QuoteType": 1,
"NamePos": 70,
"NameEnd": 72
"Ident": {
"Name": "f1",
"QuoteType": 1,
"NamePos": 70,
"NameEnd": 72
},
"DotIdent": null
},
"Type": {
"Name": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,13 @@
"NamePos": 29,
"ColumnEnd": 52,
"Name": {
"Name": "f1",
"QuoteType": 1,
"NamePos": 29,
"NameEnd": 31
"Ident": {
"Name": "f1",
"QuoteType": 1,
"NamePos": 29,
"NameEnd": 31
},
"DotIdent": null
},
"Type": {
"Name": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,13 @@
"NamePos": 29,
"ColumnEnd": 31,
"Name": {
"Name": "f1",
"QuoteType": 1,
"NamePos": 29,
"NameEnd": 31
"Ident": {
"Name": "f1",
"QuoteType": 1,
"NamePos": 29,
"NameEnd": 31
},
"DotIdent": null
},
"Type": null,
"NotNull": null,
Expand Down
88 changes: 56 additions & 32 deletions parser/testdata/ddl/output/attach_table_basic.sql.golden.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,13 @@
"NamePos": 80,
"ColumnEnd": 89,
"Name": {
"Name": "f0",
"QuoteType": 1,
"NamePos": 80,
"NameEnd": 82
"Ident": {
"Name": "f0",
"QuoteType": 1,
"NamePos": 80,
"NameEnd": 82
},
"DotIdent": null
},
"Type": {
"Name": {
Expand All @@ -59,10 +62,13 @@
"NamePos": 95,
"ColumnEnd": 104,
"Name": {
"Name": "f1",
"QuoteType": 1,
"NamePos": 95,
"NameEnd": 97
"Ident": {
"Name": "f1",
"QuoteType": 1,
"NamePos": 95,
"NameEnd": 97
},
"DotIdent": null
},
"Type": {
"Name": {
Expand All @@ -84,10 +90,13 @@
"NamePos": 110,
"ColumnEnd": 119,
"Name": {
"Name": "f2",
"QuoteType": 1,
"NamePos": 110,
"NameEnd": 112
"Ident": {
"Name": "f2",
"QuoteType": 1,
"NamePos": 110,
"NameEnd": 112
},
"DotIdent": null
},
"Type": {
"Name": {
Expand All @@ -109,10 +118,13 @@
"NamePos": 125,
"ColumnEnd": 136,
"Name": {
"Name": "f3",
"QuoteType": 1,
"NamePos": 125,
"NameEnd": 127
"Ident": {
"Name": "f3",
"QuoteType": 1,
"NamePos": 125,
"NameEnd": 127
},
"DotIdent": null
},
"Type": {
"Name": {
Expand All @@ -134,10 +146,13 @@
"NamePos": 142,
"ColumnEnd": 153,
"Name": {
"Name": "f4",
"QuoteType": 1,
"NamePos": 142,
"NameEnd": 144
"Ident": {
"Name": "f4",
"QuoteType": 1,
"NamePos": 142,
"NameEnd": 144
},
"DotIdent": null
},
"Type": {
"Name": {
Expand All @@ -159,10 +174,13 @@
"NamePos": 159,
"ColumnEnd": 179,
"Name": {
"Name": "f5",
"QuoteType": 1,
"NamePos": 159,
"NameEnd": 161
"Ident": {
"Name": "f5",
"QuoteType": 1,
"NamePos": 159,
"NameEnd": 161
},
"DotIdent": null
},
"Type": {
"LeftParenPos": 166,
Expand Down Expand Up @@ -204,10 +222,13 @@
"NamePos": 186,
"ColumnEnd": 195,
"Name": {
"Name": "f6",
"QuoteType": 1,
"NamePos": 186,
"NameEnd": 188
"Ident": {
"Name": "f6",
"QuoteType": 1,
"NamePos": 186,
"NameEnd": 188
},
"DotIdent": null
},
"Type": {
"Name": {
Expand All @@ -229,10 +250,13 @@
"NamePos": 201,
"ColumnEnd": 225,
"Name": {
"Name": "f7",
"QuoteType": 1,
"NamePos": 201,
"NameEnd": 203
"Ident": {
"Name": "f7",
"QuoteType": 1,
"NamePos": 201,
"NameEnd": 203
},
"DotIdent": null
},
"Type": {
"Name": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,13 @@
"NamePos": 64,
"ColumnEnd": 73,
"Name": {
"Name": "id",
"QuoteType": 1,
"NamePos": 64,
"NameEnd": 66
"Ident": {
"Name": "id",
"QuoteType": 1,
"NamePos": 64,
"NameEnd": 66
},
"DotIdent": null
},
"Type": {
"Name": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,13 @@
"NamePos": 106,
"ColumnEnd": 122,
"Name": {
"Name": "f1",
"QuoteType": 3,
"NamePos": 106,
"NameEnd": 108
"Ident": {
"Name": "f1",
"QuoteType": 3,
"NamePos": 106,
"NameEnd": 108
},
"DotIdent": null
},
"Type": {
"LeftParenPos": 121,
Expand Down Expand Up @@ -85,10 +88,13 @@
"NamePos": 129,
"ColumnEnd": 139,
"Name": {
"Name": "f2",
"QuoteType": 3,
"NamePos": 129,
"NameEnd": 131
"Ident": {
"Name": "f2",
"QuoteType": 3,
"NamePos": 129,
"NameEnd": 131
},
"DotIdent": null
},
"Type": {
"Name": {
Expand All @@ -110,10 +116,13 @@
"NamePos": 145,
"ColumnEnd": 155,
"Name": {
"Name": "f3",
"QuoteType": 3,
"NamePos": 145,
"NameEnd": 147
"Ident": {
"Name": "f3",
"QuoteType": 3,
"NamePos": 145,
"NameEnd": 147
},
"DotIdent": null
},
"Type": {
"Name": {
Expand All @@ -135,10 +144,13 @@
"NamePos": 161,
"ColumnEnd": 171,
"Name": {
"Name": "f4",
"QuoteType": 3,
"NamePos": 161,
"NameEnd": 163
"Ident": {
"Name": "f4",
"QuoteType": 3,
"NamePos": 161,
"NameEnd": 163
},
"DotIdent": null
},
"Type": {
"Name": {
Expand All @@ -160,10 +172,13 @@
"NamePos": 177,
"ColumnEnd": 187,
"Name": {
"Name": "f5",
"QuoteType": 3,
"NamePos": 177,
"NameEnd": 179
"Ident": {
"Name": "f5",
"QuoteType": 3,
"NamePos": 177,
"NameEnd": 179
},
"DotIdent": null
},
"Type": {
"Name": {
Expand All @@ -185,10 +200,13 @@
"NamePos": 193,
"ColumnEnd": 202,
"Name": {
"Name": "f6",
"QuoteType": 3,
"NamePos": 193,
"NameEnd": 195
"Ident": {
"Name": "f6",
"QuoteType": 3,
"NamePos": 193,
"NameEnd": 195
},
"DotIdent": null
},
"Type": {
"Name": {
Expand Down
Loading

0 comments on commit 0d9ca44

Please sign in to comment.