Skip to content

Commit

Permalink
copy string tokens to prevent overwriting ptr
Browse files Browse the repository at this point in the history
fixes: #5970
  • Loading branch information
gecko655 committed May 2, 2022
1 parent dd8973b commit 36ac1fc
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 2 deletions.
4 changes: 2 additions & 2 deletions spanner/spansql/parser.go
Expand Up @@ -1728,7 +1728,7 @@ func (p *parser) parseDatabaseOptions() (DatabaseOptions, *parseError) {
if err != nil {
return DatabaseOptions{}, p.errorf("invalid optimizer_version value: %v", tok.value)
}
optimizerVersion = &version
*optimizerVersion = version
}
opts.OptimizerVersion = optimizerVersion
} else if p.eat("version_retention_period", "=") {
Expand All @@ -1743,7 +1743,7 @@ func (p *parser) parseDatabaseOptions() (DatabaseOptions, *parseError) {
if tok.typ != stringToken {
return DatabaseOptions{}, p.errorf("invalid version_retention_period: %v", tok.value)
}
retentionPeriod = &tok.string
*retentionPeriod = tok.string
}
opts.VersionRetentionPeriod = retentionPeriod
} else {
Expand Down
23 changes: 23 additions & 0 deletions spanner/spansql/parser_test.go
Expand Up @@ -912,6 +912,29 @@ func TestParseDDL(t *testing.T) {
},
},
}},
{`ALTER DATABASE dbname SET OPTIONS (optimizer_version=2, version_retention_period='7d', enable_key_visualizer=true); CREATE TABLE users (UserId STRING(MAX) NOT NULL,) PRIMARY KEY (UserId);`,
&DDL{Filename: "filename", List: []DDLStmt{
&AlterDatabase{
Name: "dbname",
Alteration: SetDatabaseOptions{
Options: DatabaseOptions{
OptimizerVersion: func(i int) *int { return &i }(2),
VersionRetentionPeriod: func(s string) *string { return &s }("7d"),
EnableKeyVisualizer: func(b bool) *bool { return &b }(true),
},
},
Position: line(1),
},
&CreateTable{Name: "users", Columns: []ColumnDef{
{Name: "UserId", Type: Type{Base: String, Len: MaxLen}, NotNull: true, Position: line(1)},
},
PrimaryKey: []KeyPart{
{Column: "UserId"},
},
Position: line(1),
},
},
}},
{`ALTER DATABASE dbname SET OPTIONS (optimizer_version=null, version_retention_period=null, enable_key_visualizer=null)`,
&DDL{Filename: "filename", List: []DDLStmt{
&AlterDatabase{
Expand Down

0 comments on commit 36ac1fc

Please sign in to comment.