diff --git a/pkg/pull/model_table.go b/pkg/pull/model_table.go index 78f31cde..e9628369 100755 --- a/pkg/pull/model_table.go +++ b/pkg/pull/model_table.go @@ -44,6 +44,8 @@ func (t *Table) initTemplate() { t.template.WithTimestamp(key) case "no": t.template.WithHidden(key) + case "presence": + t.template.WithBoolean(key) default: t.template.WithAuto(key) } @@ -80,7 +82,7 @@ func (t *Table) export(row Row) ExportedRow { switch t.ExportMode { case ExportModeAll: for k := range row { - if result.GetOrNil(k) == nil { + if _, present := result.Get(k); !present { keys = append(keys, k) } } @@ -93,6 +95,17 @@ func (t *Table) export(row Row) ExportedRow { result.Set(k, row[k]) } + // check export=presence flags + if len(t.Columns) > 0 { + for _, col := range t.Columns { + if col.Export == "presence" { + if val, present := result.Get(col.Name); present && val != nil { + result.Set(col.Name, true) + } + } + } + } + return result }