Skip to content

Commit

Permalink
Remove GlobalSequence, refactor it into standalone functions, and som…
Browse files Browse the repository at this point in the history
…e general cleanup of that code
  • Loading branch information
williammoran committed Apr 25, 2024
1 parent cd14284 commit cb8a532
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 19 deletions.
2 changes: 1 addition & 1 deletion lib/format/pgsql8/diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ func (self *Diff) updatePermissions(stage1 output.OutputFileSegmenter, stage3 ou
oldSeq := oldSchema.TryGetSequenceNamed(newSeq.Name)
for _, newGrant := range newSeq.Grants {
if oldSeq == nil || !ir.HasPermissionsOf(oldSeq, newGrant, ir.SqlFormatPgsql8) {
stage1.WriteSql(GlobalSequence.GetGrantSql(newDoc, newSchema, newSeq, newGrant)...)
stage1.WriteSql(getSequenceGrantSql(newDoc, newSchema, newSeq, newGrant)...)
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions lib/format/pgsql8/diff_sequences.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func (self *DiffSequences) DiffSequences(ofs output.OutputFileSegmenter, oldSche
if oldSchema != nil {
for _, oldSeq := range oldSchema.Sequences {
if newSchema.TryGetSequenceNamed(oldSeq.Name) == nil {
ofs.WriteSql(GlobalSequence.GetDropSql(oldSchema, oldSeq)...)
ofs.WriteSql(getDropSequenceSql(oldSchema, oldSeq)...)
}
}
}
Expand All @@ -27,7 +27,7 @@ func (self *DiffSequences) DiffSequences(ofs output.OutputFileSegmenter, oldSche
for _, newSeq := range newSchema.Sequences {
oldSeq := oldSchema.TryGetSequenceNamed(newSeq.Name)
if oldSeq == nil {
ofs.WriteSql(GlobalSequence.GetCreationSql(newSchema, newSeq)...)
ofs.WriteSql(getCreateSequenceSql(newSchema, newSeq)...)
continue
}

Expand Down
4 changes: 2 additions & 2 deletions lib/format/pgsql8/operations.go
Original file line number Diff line number Diff line change
Expand Up @@ -898,11 +898,11 @@ func buildSchema(doc *ir.Definition, ofs output.OutputFileSegmenter, tableDep []

// sequences contained in the schema
for _, sequence := range schema.Sequences {
ofs.WriteSql(GlobalSequence.GetCreationSql(schema, sequence)...)
ofs.WriteSql(getCreateSequenceSql(schema, sequence)...)

// sequence permission grants
for _, grant := range sequence.Grants {
ofs.WriteSql(GlobalSequence.GetGrantSql(doc, schema, sequence, grant)...)
ofs.WriteSql(getSequenceGrantSql(doc, schema, sequence, grant)...)
}
}

Expand Down
1 change: 0 additions & 1 deletion lib/format/pgsql8/pgsql8.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import "github.com/dbsteward/dbsteward/lib/format"

var GlobalOperations = NewOperations()
var GlobalSchema = NewSchema()
var GlobalSequence = NewSequence()
var GlobalTable = NewTable()
var GlobalTrigger = NewTrigger()
var GlobalDataType = NewDataType()
Expand Down
19 changes: 6 additions & 13 deletions lib/format/pgsql8/sequence.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,15 @@ import (
"github.com/dbsteward/dbsteward/lib/util"
)

type Sequence struct {
}

func NewSequence() *Sequence {
return &Sequence{}
}

func (self *Sequence) GetCreationSql(schema *ir.Schema, sequence *ir.Sequence) []output.ToSql {
func getCreateSequenceSql(schema *ir.Schema, sequence *ir.Sequence) []output.ToSql {
// TODO(go,3) put validation elsewhere

if cache, ok := sequence.Cache.Maybe(); !ok || cache < 1 {
// TODO better formatting for optional value?
lib.GlobalDBSteward.Fatal("Sequence %s.%s must have cache value >= 1, %d was given", schema.Name, sequence.Name, cache)
}

ref := sql.SequenceRef{schema.Name, sequence.Name}
ref := sql.SequenceRef{Schema: schema.Name, Sequence: sequence.Name}
ddl := []output.ToSql{
&sql.SequenceCreate{
Sequence: ref,
Expand Down Expand Up @@ -56,15 +49,15 @@ func (self *Sequence) GetCreationSql(schema *ir.Schema, sequence *ir.Sequence) [
return ddl
}

func (self *Sequence) GetDropSql(schema *ir.Schema, sequence *ir.Sequence) []output.ToSql {
func getDropSequenceSql(schema *ir.Schema, sequence *ir.Sequence) []output.ToSql {
return []output.ToSql{
&sql.SequenceDrop{
Sequence: sql.SequenceRef{schema.Name, sequence.Name},
Sequence: sql.SequenceRef{Schema: schema.Name, Sequence: sequence.Name},
},
}
}

func (self *Sequence) GetGrantSql(doc *ir.Definition, schema *ir.Schema, seq *ir.Sequence, grant *ir.Grant) []output.ToSql {
func getSequenceGrantSql(doc *ir.Definition, schema *ir.Schema, seq *ir.Sequence, grant *ir.Grant) []output.ToSql {
roles := make([]string, len(grant.Roles))
for i, role := range grant.Roles {
roles[i] = lib.GlobalXmlParser.RoleEnum(lib.GlobalDBSteward.NewDatabase, role)
Expand All @@ -79,7 +72,7 @@ func (self *Sequence) GetGrantSql(doc *ir.Definition, schema *ir.Schema, seq *ir
lib.GlobalDBSteward.Fatal("Invalid permissions on sequence grant: %v", invalidPerms)
}

seqRef := sql.SequenceRef{schema.Name, seq.Name}
seqRef := sql.SequenceRef{Schema: schema.Name, Sequence: seq.Name}

ddl := []output.ToSql{
&sql.SequenceGrant{
Expand Down

0 comments on commit cb8a532

Please sign in to comment.