func()

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()
}