in cmd/iceberg/output.go [63:111]
func (t textOutput) DescribeTable(tbl *table.Table) {
propData := pterm.TableData{{"key", "value"}}
for k, v := range tbl.Metadata().Properties() {
propData = append(propData, []string{k, v})
}
propTable := pterm.DefaultTable.
WithHasHeader(true).
WithHeaderRowSeparator("-").
WithData(propData)
snapshotList := pterm.LeveledList{}
for _, s := range tbl.Metadata().Snapshots() {
var manifest string
if s.ManifestList != "" {
manifest = ": " + s.ManifestList
}
snapshotList = append(snapshotList, pterm.LeveledListItem{
Level: 0, Text: fmt.Sprintf("Snapshot %d, schema %d%s",
s.SnapshotID, *s.SchemaID, manifest),
})
}
snapshotTreeNode := putils.TreeFromLeveledList(snapshotList)
snapshotTreeNode.Text = "Snapshots"
pterm.DefaultTable.
WithData(pterm.TableData{
{"Table format version", strconv.Itoa(tbl.Metadata().Version())},
{"Metadata location", tbl.MetadataLocation()},
{"Table UUID", tbl.Metadata().TableUUID().String()},
{"Last updated", strconv.Itoa(int(tbl.Metadata().LastUpdatedMillis()))},
{"Sort Order", tbl.SortOrder().String()},
{"Partition Spec", tbl.Spec().String()},
}).Render()
t.Schema(tbl.Schema())
snap := ""
if tbl.CurrentSnapshot() != nil {
snap = tbl.CurrentSnapshot().String()
}
pterm.DefaultTable.
WithData(pterm.TableData{
{"Current Snapshot", snap},
}).Render()
pterm.DefaultTree.WithRoot(snapshotTreeNode).Render()
pterm.Println("Properties")
propTable.Render()
}