From a0cbb2d4aaf1dba666792be28e8d790e1ca772b2 Mon Sep 17 00:00:00 2001 From: apstndb <803393+apstndb@users.noreply.github.com> Date: Tue, 11 Mar 2025 03:20:07 +0900 Subject: [PATCH 1/4] Implement LOCALITY GROUP statements --- ast/ast.go | 44 +++++++++++++++++++++++++++++++++++++++++++ ast/pos.go | 24 +++++++++++++++++++++++ ast/sql.go | 11 +++++++++++ ast/walk_internal.go | 11 +++++++++++ parser.go | 45 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 135 insertions(+) diff --git a/ast/ast.go b/ast/ast.go index aa96096f..982fc8ba 100644 --- a/ast/ast.go +++ b/ast/ast.go @@ -80,6 +80,9 @@ func (CreateSchema) isStatement() {} func (DropSchema) isStatement() {} func (CreateDatabase) isStatement() {} func (AlterDatabase) isStatement() {} +func (CreateLocalityGroup) isStatement() {} +func (AlterLocalityGroup) isStatement() {} +func (DropLocalityGroup) isStatement() {} func (CreatePlacement) isStatement() {} func (CreateProtoBundle) isStatement() {} func (AlterProtoBundle) isStatement() {} @@ -369,6 +372,9 @@ func (CreateSchema) isDDL() {} func (DropSchema) isDDL() {} func (CreateDatabase) isDDL() {} func (AlterDatabase) isDDL() {} +func (CreateLocalityGroup) isDDL() {} +func (AlterLocalityGroup) isDDL() {} +func (DropLocalityGroup) isDDL() {} func (CreatePlacement) isDDL() {} func (CreateProtoBundle) isDDL() {} func (AlterProtoBundle) isDDL() {} @@ -2276,6 +2282,44 @@ type AlterDatabase struct { Options *Options } +// CreateLocalityGroup is CREATE LOCALITY GROUP statement node. +// +// CREATE LOCALITY GROUP {{.Name | sql}} {{.Options | sqlOpt}} +type CreateLocalityGroup struct { + // pos = Create + // end = (Options ?? Name).end + + Create token.Pos // position of "CREATE" keyword + + Name *Ident + Options *Options // optional +} + +// AlterLocalityGroup is ALTER LOCALITY GROUP statement node. +// +// ALTER LOCALITY GROUP {{.Name | sql}} {{if.Options}}SET {{.Options | sql}}{{end}} +type AlterLocalityGroup struct { + // pos = Alter + // end = Options.end + + Alter token.Pos // position of "ALTER" keyword + + Name *Ident + Options *Options +} + +// DropLocalityGroup is DROP LOCALITY GROUP statement node. +// +// DROP LOCALITY GROUP {{.Name | sql}} +type DropLocalityGroup struct { + // pos = Drop + // end = Name.end + + Drop token.Pos // position of "DROP" keyword + + Name *Ident +} + // CreatePlacement is CREATE PLACEMENT statement node. // // CREATE PLACEMENT {{.Name | sql}} {{.Options | sqlOpt}} diff --git a/ast/pos.go b/ast/pos.go index d47dcd18..127ba2f9 100644 --- a/ast/pos.go +++ b/ast/pos.go @@ -1022,6 +1022,30 @@ func (a *AlterDatabase) End() token.Pos { return nodeEnd(wrapNode(a.Options)) } +func (c *CreateLocalityGroup) Pos() token.Pos { + return c.Create +} + +func (c *CreateLocalityGroup) End() token.Pos { + return nodeEnd(nodeChoice(wrapNode(c.Options), wrapNode(c.Name))) +} + +func (a *AlterLocalityGroup) Pos() token.Pos { + return a.Alter +} + +func (a *AlterLocalityGroup) End() token.Pos { + return nodeEnd(wrapNode(a.Options)) +} + +func (d *DropLocalityGroup) Pos() token.Pos { + return d.Drop +} + +func (d *DropLocalityGroup) End() token.Pos { + return nodeEnd(wrapNode(d.Name)) +} + func (c *CreatePlacement) Pos() token.Pos { return c.Create } diff --git a/ast/sql.go b/ast/sql.go index 1533767d..37e05697 100644 --- a/ast/sql.go +++ b/ast/sql.go @@ -754,6 +754,17 @@ func (c *CreateDatabase) SQL() string { return "CREATE DATABASE " + c.Name.SQL() } +func (c *CreateLocalityGroup) SQL() string { + return "CREATE LOCALITY GROUP " + c.Name.SQL() + sqlOpt(" SET ", c.Options, "") +} +func (a *AlterLocalityGroup) SQL() string { + return "ALTER LOCALITY GROUP " + a.Name.SQL() + sqlOpt(" ", a.Options, "") +} + +func (d *DropLocalityGroup) SQL() string { + return "DROP LOCALITY GROUP " + d.Name.SQL() +} + func (s *CreateSchema) SQL() string { return "CREATE SCHEMA " + s.Name.SQL() } func (s *DropSchema) SQL() string { return "DROP SCHEMA " + s.Name.SQL() } diff --git a/ast/walk_internal.go b/ast/walk_internal.go index 7104968b..10cb8a2e 100644 --- a/ast/walk_internal.go +++ b/ast/walk_internal.go @@ -465,6 +465,17 @@ func walkInternal(node Node, v Visitor, stack []*stackItem) []*stackItem { stack = append(stack, &stackItem{node: wrapNode(n.Options), visitor: v.Field("Options")}) stack = append(stack, &stackItem{node: wrapNode(n.Name), visitor: v.Field("Name")}) + case *CreateLocalityGroup: + stack = append(stack, &stackItem{node: wrapNode(n.Options), visitor: v.Field("Options")}) + stack = append(stack, &stackItem{node: wrapNode(n.Name), visitor: v.Field("Name")}) + + case *AlterLocalityGroup: + stack = append(stack, &stackItem{node: wrapNode(n.Options), visitor: v.Field("Options")}) + stack = append(stack, &stackItem{node: wrapNode(n.Name), visitor: v.Field("Name")}) + + case *DropLocalityGroup: + stack = append(stack, &stackItem{node: wrapNode(n.Name), visitor: v.Field("Name")}) + case *CreatePlacement: stack = append(stack, &stackItem{node: wrapNode(n.Options), visitor: v.Field("Options")}) stack = append(stack, &stackItem{node: wrapNode(n.Name), visitor: v.Field("Name")}) diff --git a/parser.go b/parser.go index 3bf907b8..438c1028 100644 --- a/parser.go +++ b/parser.go @@ -2836,6 +2836,8 @@ func (p *Parser) parseDDL() (ddl ast.DDL) { return p.parseCreateSchema(pos) case p.Token.IsKeywordLike("DATABASE"): return p.parseCreateDatabase(pos) + case p.Token.IsKeywordLike("LOCALITY"): + return p.parseCreateLocalityGroup(pos) case p.Token.IsKeywordLike("PLACEMENT"): return p.parseCreatePlacement(pos) case p.Token.Kind == "PROTO": @@ -2880,6 +2882,8 @@ func (p *Parser) parseDDL() (ddl ast.DDL) { return p.parseAlterTable(pos) case p.Token.IsKeywordLike("DATABASE"): return p.parseAlterDatabase(pos) + case p.Token.IsKeywordLike("LOCALITY"): + return p.parseAlterLocalityGroup(pos) case p.Token.Kind == "PROTO": return p.parseAlterProtoBundle(pos) case p.Token.IsKeywordLike("INDEX"): @@ -2901,6 +2905,8 @@ func (p *Parser) parseDDL() (ddl ast.DDL) { switch { case p.Token.IsKeywordLike("SCHEMA"): return p.parseDropSchema(pos) + case p.Token.IsKeywordLike("LOCALITY"): + return p.parseDropLocalityGroup(pos) case p.Token.Kind == "PROTO": return p.parseDropProtoBundle(pos) case p.Token.IsKeywordLike("TABLE"): @@ -2986,6 +2992,45 @@ func (p *Parser) parseAlterDatabase(pos token.Pos) *ast.AlterDatabase { } } +func (p *Parser) parseCreateLocalityGroup(pos token.Pos) *ast.CreateLocalityGroup { + p.expectKeywordLike("LOCALITY") + p.expect("GROUP") + name := p.parseIdent() + options := p.tryParseOptions() + + return &ast.CreateLocalityGroup{ + Create: pos, + Name: name, + Options: options, + } +} + +func (p *Parser) parseAlterLocalityGroup(pos token.Pos) *ast.AlterLocalityGroup { + p.expectKeywordLike("LOCALITY") + p.expect("GROUP") + name := p.parseIdent() + + p.expect("SET") + options := p.parseOptions() + + return &ast.AlterLocalityGroup{ + Alter: pos, + Name: name, + Options: options, + } +} + +func (p *Parser) parseDropLocalityGroup(pos token.Pos) *ast.DropLocalityGroup { + p.expectKeywordLike("LOCALITY") + p.expect("GROUP") + name := p.parseIdent() + + return &ast.DropLocalityGroup{ + Drop: pos, + Name: name, + } +} + func (p *Parser) parseCreatePlacement(pos token.Pos) *ast.CreatePlacement { p.expectKeywordLike("PLACEMENT") name := p.parseIdent() From b91f470529e8c6d9da93e40ae28154869fe6afc0 Mon Sep 17 00:00:00 2001 From: apstndb <803393+apstndb@users.noreply.github.com> Date: Tue, 11 Mar 2025 03:20:21 +0900 Subject: [PATCH 2/4] Update testdata --- testdata/input/ddl/alter_locality_group.sql | 1 + .../ddl/create_locality_group_options.sql | 2 + .../ddl/create_locality_group_simple.sql | 1 + testdata/input/ddl/drop_locality_group.sql | 1 + .../result/ddl/alter_locality_group.sql.txt | 43 ++++++++++++++++++ .../ddl/create_locality_group_options.sql.txt | 44 +++++++++++++++++++ .../ddl/create_locality_group_simple.sql.txt | 13 ++++++ .../result/ddl/drop_locality_group.sql.txt | 13 ++++++ .../statement/alter_locality_group.sql.txt | 43 ++++++++++++++++++ .../create_locality_group_options.sql.txt | 44 +++++++++++++++++++ .../create_locality_group_simple.sql.txt | 13 ++++++ .../statement/drop_locality_group.sql.txt | 13 ++++++ 12 files changed, 231 insertions(+) create mode 100644 testdata/input/ddl/alter_locality_group.sql create mode 100644 testdata/input/ddl/create_locality_group_options.sql create mode 100644 testdata/input/ddl/create_locality_group_simple.sql create mode 100644 testdata/input/ddl/drop_locality_group.sql create mode 100644 testdata/result/ddl/alter_locality_group.sql.txt create mode 100644 testdata/result/ddl/create_locality_group_options.sql.txt create mode 100644 testdata/result/ddl/create_locality_group_simple.sql.txt create mode 100644 testdata/result/ddl/drop_locality_group.sql.txt create mode 100644 testdata/result/statement/alter_locality_group.sql.txt create mode 100644 testdata/result/statement/create_locality_group_options.sql.txt create mode 100644 testdata/result/statement/create_locality_group_simple.sql.txt create mode 100644 testdata/result/statement/drop_locality_group.sql.txt diff --git a/testdata/input/ddl/alter_locality_group.sql b/testdata/input/ddl/alter_locality_group.sql new file mode 100644 index 00000000..5de25059 --- /dev/null +++ b/testdata/input/ddl/alter_locality_group.sql @@ -0,0 +1 @@ +ALTER LOCALITY GROUP `default` SET OPTIONS (storage = 'ssd', ssd_to_hdd_spill_timespan = '10d') \ No newline at end of file diff --git a/testdata/input/ddl/create_locality_group_options.sql b/testdata/input/ddl/create_locality_group_options.sql new file mode 100644 index 00000000..ebddf648 --- /dev/null +++ b/testdata/input/ddl/create_locality_group_options.sql @@ -0,0 +1,2 @@ +CREATE LOCALITY GROUP spill_to_hdd +OPTIONS (storage = 'ssd', ssd_to_hdd_spill_timespan = '10d') \ No newline at end of file diff --git a/testdata/input/ddl/create_locality_group_simple.sql b/testdata/input/ddl/create_locality_group_simple.sql new file mode 100644 index 00000000..0d94b52f --- /dev/null +++ b/testdata/input/ddl/create_locality_group_simple.sql @@ -0,0 +1 @@ +CREATE LOCALITY GROUP separate_storage \ No newline at end of file diff --git a/testdata/input/ddl/drop_locality_group.sql b/testdata/input/ddl/drop_locality_group.sql new file mode 100644 index 00000000..8d00a38e --- /dev/null +++ b/testdata/input/ddl/drop_locality_group.sql @@ -0,0 +1 @@ +DROP LOCALITY GROUP ssd_only \ No newline at end of file diff --git a/testdata/result/ddl/alter_locality_group.sql.txt b/testdata/result/ddl/alter_locality_group.sql.txt new file mode 100644 index 00000000..7b5fccf8 --- /dev/null +++ b/testdata/result/ddl/alter_locality_group.sql.txt @@ -0,0 +1,43 @@ +--- alter_locality_group.sql +ALTER LOCALITY GROUP `default` SET OPTIONS (storage = 'ssd', ssd_to_hdd_spill_timespan = '10d') +--- AST +&ast.AlterLocalityGroup{ + Name: &ast.Ident{ + NamePos: 21, + NameEnd: 30, + Name: "default", + }, + Options: &ast.Options{ + Options: 35, + Rparen: 94, + Records: []*ast.OptionsDef{ + &ast.OptionsDef{ + Name: &ast.Ident{ + NamePos: 44, + NameEnd: 51, + Name: "storage", + }, + Value: &ast.StringLiteral{ + ValuePos: 54, + ValueEnd: 59, + Value: "ssd", + }, + }, + &ast.OptionsDef{ + Name: &ast.Ident{ + NamePos: 61, + NameEnd: 86, + Name: "ssd_to_hdd_spill_timespan", + }, + Value: &ast.StringLiteral{ + ValuePos: 89, + ValueEnd: 94, + Value: "10d", + }, + }, + }, + }, +} + +--- SQL +ALTER LOCALITY GROUP `default` OPTIONS (storage = "ssd", ssd_to_hdd_spill_timespan = "10d") diff --git a/testdata/result/ddl/create_locality_group_options.sql.txt b/testdata/result/ddl/create_locality_group_options.sql.txt new file mode 100644 index 00000000..d0bf0eac --- /dev/null +++ b/testdata/result/ddl/create_locality_group_options.sql.txt @@ -0,0 +1,44 @@ +--- create_locality_group_options.sql +CREATE LOCALITY GROUP spill_to_hdd +OPTIONS (storage = 'ssd', ssd_to_hdd_spill_timespan = '10d') +--- AST +&ast.CreateLocalityGroup{ + Name: &ast.Ident{ + NamePos: 22, + NameEnd: 34, + Name: "spill_to_hdd", + }, + Options: &ast.Options{ + Options: 35, + Rparen: 94, + Records: []*ast.OptionsDef{ + &ast.OptionsDef{ + Name: &ast.Ident{ + NamePos: 44, + NameEnd: 51, + Name: "storage", + }, + Value: &ast.StringLiteral{ + ValuePos: 54, + ValueEnd: 59, + Value: "ssd", + }, + }, + &ast.OptionsDef{ + Name: &ast.Ident{ + NamePos: 61, + NameEnd: 86, + Name: "ssd_to_hdd_spill_timespan", + }, + Value: &ast.StringLiteral{ + ValuePos: 89, + ValueEnd: 94, + Value: "10d", + }, + }, + }, + }, +} + +--- SQL +CREATE LOCALITY GROUP spill_to_hdd SET OPTIONS (storage = "ssd", ssd_to_hdd_spill_timespan = "10d") diff --git a/testdata/result/ddl/create_locality_group_simple.sql.txt b/testdata/result/ddl/create_locality_group_simple.sql.txt new file mode 100644 index 00000000..015f86d9 --- /dev/null +++ b/testdata/result/ddl/create_locality_group_simple.sql.txt @@ -0,0 +1,13 @@ +--- create_locality_group_simple.sql +CREATE LOCALITY GROUP separate_storage +--- AST +&ast.CreateLocalityGroup{ + Name: &ast.Ident{ + NamePos: 22, + NameEnd: 38, + Name: "separate_storage", + }, +} + +--- SQL +CREATE LOCALITY GROUP separate_storage diff --git a/testdata/result/ddl/drop_locality_group.sql.txt b/testdata/result/ddl/drop_locality_group.sql.txt new file mode 100644 index 00000000..49e79fd7 --- /dev/null +++ b/testdata/result/ddl/drop_locality_group.sql.txt @@ -0,0 +1,13 @@ +--- drop_locality_group.sql +DROP LOCALITY GROUP ssd_only +--- AST +&ast.DropLocalityGroup{ + Name: &ast.Ident{ + NamePos: 20, + NameEnd: 28, + Name: "ssd_only", + }, +} + +--- SQL +DROP LOCALITY GROUP ssd_only diff --git a/testdata/result/statement/alter_locality_group.sql.txt b/testdata/result/statement/alter_locality_group.sql.txt new file mode 100644 index 00000000..7b5fccf8 --- /dev/null +++ b/testdata/result/statement/alter_locality_group.sql.txt @@ -0,0 +1,43 @@ +--- alter_locality_group.sql +ALTER LOCALITY GROUP `default` SET OPTIONS (storage = 'ssd', ssd_to_hdd_spill_timespan = '10d') +--- AST +&ast.AlterLocalityGroup{ + Name: &ast.Ident{ + NamePos: 21, + NameEnd: 30, + Name: "default", + }, + Options: &ast.Options{ + Options: 35, + Rparen: 94, + Records: []*ast.OptionsDef{ + &ast.OptionsDef{ + Name: &ast.Ident{ + NamePos: 44, + NameEnd: 51, + Name: "storage", + }, + Value: &ast.StringLiteral{ + ValuePos: 54, + ValueEnd: 59, + Value: "ssd", + }, + }, + &ast.OptionsDef{ + Name: &ast.Ident{ + NamePos: 61, + NameEnd: 86, + Name: "ssd_to_hdd_spill_timespan", + }, + Value: &ast.StringLiteral{ + ValuePos: 89, + ValueEnd: 94, + Value: "10d", + }, + }, + }, + }, +} + +--- SQL +ALTER LOCALITY GROUP `default` OPTIONS (storage = "ssd", ssd_to_hdd_spill_timespan = "10d") diff --git a/testdata/result/statement/create_locality_group_options.sql.txt b/testdata/result/statement/create_locality_group_options.sql.txt new file mode 100644 index 00000000..d0bf0eac --- /dev/null +++ b/testdata/result/statement/create_locality_group_options.sql.txt @@ -0,0 +1,44 @@ +--- create_locality_group_options.sql +CREATE LOCALITY GROUP spill_to_hdd +OPTIONS (storage = 'ssd', ssd_to_hdd_spill_timespan = '10d') +--- AST +&ast.CreateLocalityGroup{ + Name: &ast.Ident{ + NamePos: 22, + NameEnd: 34, + Name: "spill_to_hdd", + }, + Options: &ast.Options{ + Options: 35, + Rparen: 94, + Records: []*ast.OptionsDef{ + &ast.OptionsDef{ + Name: &ast.Ident{ + NamePos: 44, + NameEnd: 51, + Name: "storage", + }, + Value: &ast.StringLiteral{ + ValuePos: 54, + ValueEnd: 59, + Value: "ssd", + }, + }, + &ast.OptionsDef{ + Name: &ast.Ident{ + NamePos: 61, + NameEnd: 86, + Name: "ssd_to_hdd_spill_timespan", + }, + Value: &ast.StringLiteral{ + ValuePos: 89, + ValueEnd: 94, + Value: "10d", + }, + }, + }, + }, +} + +--- SQL +CREATE LOCALITY GROUP spill_to_hdd SET OPTIONS (storage = "ssd", ssd_to_hdd_spill_timespan = "10d") diff --git a/testdata/result/statement/create_locality_group_simple.sql.txt b/testdata/result/statement/create_locality_group_simple.sql.txt new file mode 100644 index 00000000..015f86d9 --- /dev/null +++ b/testdata/result/statement/create_locality_group_simple.sql.txt @@ -0,0 +1,13 @@ +--- create_locality_group_simple.sql +CREATE LOCALITY GROUP separate_storage +--- AST +&ast.CreateLocalityGroup{ + Name: &ast.Ident{ + NamePos: 22, + NameEnd: 38, + Name: "separate_storage", + }, +} + +--- SQL +CREATE LOCALITY GROUP separate_storage diff --git a/testdata/result/statement/drop_locality_group.sql.txt b/testdata/result/statement/drop_locality_group.sql.txt new file mode 100644 index 00000000..49e79fd7 --- /dev/null +++ b/testdata/result/statement/drop_locality_group.sql.txt @@ -0,0 +1,13 @@ +--- drop_locality_group.sql +DROP LOCALITY GROUP ssd_only +--- AST +&ast.DropLocalityGroup{ + Name: &ast.Ident{ + NamePos: 20, + NameEnd: 28, + Name: "ssd_only", + }, +} + +--- SQL +DROP LOCALITY GROUP ssd_only From e8cc903c911d669840a099f4d674bbeacaaba226 Mon Sep 17 00:00:00 2001 From: apstndb <803393+apstndb@users.noreply.github.com> Date: Tue, 11 Mar 2025 04:05:10 +0900 Subject: [PATCH 3/4] Fix SQL() of LOCALITY GROUP --- ast/sql.go | 5 +++-- parser.go | 1 + testdata/result/ddl/alter_locality_group.sql.txt | 2 +- testdata/result/ddl/create_locality_group_options.sql.txt | 2 +- testdata/result/statement/alter_locality_group.sql.txt | 2 +- .../result/statement/create_locality_group_options.sql.txt | 2 +- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ast/sql.go b/ast/sql.go index 37e05697..6bd8c822 100644 --- a/ast/sql.go +++ b/ast/sql.go @@ -755,10 +755,11 @@ func (c *CreateDatabase) SQL() string { } func (c *CreateLocalityGroup) SQL() string { - return "CREATE LOCALITY GROUP " + c.Name.SQL() + sqlOpt(" SET ", c.Options, "") + return "CREATE LOCALITY GROUP " + c.Name.SQL() + sqlOpt(" ", c.Options, "") } + func (a *AlterLocalityGroup) SQL() string { - return "ALTER LOCALITY GROUP " + a.Name.SQL() + sqlOpt(" ", a.Options, "") + return "ALTER LOCALITY GROUP " + a.Name.SQL() + " SET " + a.Options.SQL() } func (d *DropLocalityGroup) SQL() string { diff --git a/parser.go b/parser.go index 438c1028..ca0ab927 100644 --- a/parser.go +++ b/parser.go @@ -2996,6 +2996,7 @@ func (p *Parser) parseCreateLocalityGroup(pos token.Pos) *ast.CreateLocalityGrou p.expectKeywordLike("LOCALITY") p.expect("GROUP") name := p.parseIdent() + options := p.tryParseOptions() return &ast.CreateLocalityGroup{ diff --git a/testdata/result/ddl/alter_locality_group.sql.txt b/testdata/result/ddl/alter_locality_group.sql.txt index 7b5fccf8..caf4cf74 100644 --- a/testdata/result/ddl/alter_locality_group.sql.txt +++ b/testdata/result/ddl/alter_locality_group.sql.txt @@ -40,4 +40,4 @@ ALTER LOCALITY GROUP `default` SET OPTIONS (storage = 'ssd', ssd_to_hdd_spill_ti } --- SQL -ALTER LOCALITY GROUP `default` OPTIONS (storage = "ssd", ssd_to_hdd_spill_timespan = "10d") +ALTER LOCALITY GROUP `default` SET OPTIONS (storage = "ssd", ssd_to_hdd_spill_timespan = "10d") diff --git a/testdata/result/ddl/create_locality_group_options.sql.txt b/testdata/result/ddl/create_locality_group_options.sql.txt index d0bf0eac..0768084a 100644 --- a/testdata/result/ddl/create_locality_group_options.sql.txt +++ b/testdata/result/ddl/create_locality_group_options.sql.txt @@ -41,4 +41,4 @@ OPTIONS (storage = 'ssd', ssd_to_hdd_spill_timespan = '10d') } --- SQL -CREATE LOCALITY GROUP spill_to_hdd SET OPTIONS (storage = "ssd", ssd_to_hdd_spill_timespan = "10d") +CREATE LOCALITY GROUP spill_to_hdd OPTIONS (storage = "ssd", ssd_to_hdd_spill_timespan = "10d") diff --git a/testdata/result/statement/alter_locality_group.sql.txt b/testdata/result/statement/alter_locality_group.sql.txt index 7b5fccf8..caf4cf74 100644 --- a/testdata/result/statement/alter_locality_group.sql.txt +++ b/testdata/result/statement/alter_locality_group.sql.txt @@ -40,4 +40,4 @@ ALTER LOCALITY GROUP `default` SET OPTIONS (storage = 'ssd', ssd_to_hdd_spill_ti } --- SQL -ALTER LOCALITY GROUP `default` OPTIONS (storage = "ssd", ssd_to_hdd_spill_timespan = "10d") +ALTER LOCALITY GROUP `default` SET OPTIONS (storage = "ssd", ssd_to_hdd_spill_timespan = "10d") diff --git a/testdata/result/statement/create_locality_group_options.sql.txt b/testdata/result/statement/create_locality_group_options.sql.txt index d0bf0eac..0768084a 100644 --- a/testdata/result/statement/create_locality_group_options.sql.txt +++ b/testdata/result/statement/create_locality_group_options.sql.txt @@ -41,4 +41,4 @@ OPTIONS (storage = 'ssd', ssd_to_hdd_spill_timespan = '10d') } --- SQL -CREATE LOCALITY GROUP spill_to_hdd SET OPTIONS (storage = "ssd", ssd_to_hdd_spill_timespan = "10d") +CREATE LOCALITY GROUP spill_to_hdd OPTIONS (storage = "ssd", ssd_to_hdd_spill_timespan = "10d") From 23174468e65fb7f679675a70d2afbcba5f121249 Mon Sep 17 00:00:00 2001 From: apstndb <803393+apstndb@users.noreply.github.com> Date: Tue, 11 Mar 2025 05:10:46 +0900 Subject: [PATCH 4/4] Update doc comment --- ast/ast.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ast/ast.go b/ast/ast.go index 982fc8ba..d7b02890 100644 --- a/ast/ast.go +++ b/ast/ast.go @@ -2297,7 +2297,7 @@ type CreateLocalityGroup struct { // AlterLocalityGroup is ALTER LOCALITY GROUP statement node. // -// ALTER LOCALITY GROUP {{.Name | sql}} {{if.Options}}SET {{.Options | sql}}{{end}} +// ALTER LOCALITY GROUP {{.Name | sql}} SET {{.Options | sql}} type AlterLocalityGroup struct { // pos = Alter // end = Options.end