Skip to content

Commit

Permalink
patched column duplication
Browse files Browse the repository at this point in the history
  • Loading branch information
adranwit committed Jul 25, 2024
1 parent e78662c commit 9c9d163
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 4 deletions.
8 changes: 4 additions & 4 deletions internal/translator/discovery.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,18 +177,18 @@ func (s *Service) detectColumns(resource *Resource, columnDiscovery discover.Col
return nil
}
if columns := viewlet.Spec.Columns; len(columns) > 0 {
viewlet.Columns = view.NewColumns(columns)
viewlet.Columns = view.NewColumns(columns).Dedupe()
isValid := s.ensureValidColumns(viewlet)
if isValid && !viewlet.IsSummary {
columnDiscovery.Items[viewlet.Name] = viewlet.Columns
columnDiscovery.Items[viewlet.Name] = viewlet.Columns.Dedupe()
}
summary := viewlet.Summary
if summary != nil && len(summary.Spec.Columns) > 0 {
if len(summary.Columns) == 0 {
summary.Columns = view.NewColumns(summary.Spec.Columns)
summary.Columns = view.NewColumns(summary.Spec.Columns).Dedupe()
}
key := view.SummaryViewKey(viewlet.View.Name, summary.View.Name)
columnDiscovery.Items[key] = summary.Columns
columnDiscovery.Items[key] = summary.Columns.Dedupe()
}
}
s.updateViewOutputType(viewlet, true, resource.Rule.Doc.Columns)
Expand Down
4 changes: 4 additions & 0 deletions view/column.go
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,10 @@ type (
NamedColumnConfig map[string]*ColumnConfig
)

func (c *ColumnConfig) IgnoreColumn() bool {
return c.Tag != nil && strings.Contains(*c.Tag, `sqlx:"-"`)
}

func (c ColumnConfigs) Index() NamedColumnConfig {
var result = make(map[string]*ColumnConfig)
for _, item := range c {
Expand Down
13 changes: 13 additions & 0 deletions view/columns.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,19 @@ func (c Columns) Index(formatCase text.CaseFormat) NamedColumns {
return result
}

func (c Columns) Dedupe() Columns {
var unique = make(map[string]*Column)
var result Columns
for i := range c {
if _, ok := unique[c[i].Name]; ok {
continue
}
unique[c[i].Name] = c[i]
result = append(result, c[i])
}
return result
}

// NamedColumns represents *Column registry.
type NamedColumns map[string]*Column

Expand Down

0 comments on commit 9c9d163

Please sign in to comment.