Skip to content

Conversation

@majiayu000
Copy link

Fixes #4023

Changes

  • Add --- separator between tables when record type changes
  • Add test for multiple types in table output

When table output contains records with different schemas, headers
are now separated by a '---' line to clearly distinguish between
different tables.

Signed-off-by: majiayu000 <[email protected]>
@philrz
Copy link
Contributor

philrz commented Jan 2, 2026

@majiayu000: Thanks for your contribution and interest in the project!

While it's true that table output is still present in super at the moment, per #6402, due to problems with the feature beyond the one you're addressing here, our current plan is to drop support for it as an output format and instead encourage the use of other formats, such as tsv combined with the use of the fuse operator if needed to deal with multiple record types. Could you help us understand if there's something about your use case for super that would make the table output in its current format still preferable to tsv+fuse?

@majiayu000
Copy link
Author

Thanks for the context. If table output is planned for removal, I’m happy to close this PR. If it helps users, I can instead add docs or a hint that suggests when multiple record types are present. Let me know what you prefer.

@majiayu000 majiayu000 closed this Jan 3, 2026
@majiayu000 majiayu000 deleted the fix-4023-repeated-headers-can-make-tabl-0102-0358 branch January 3, 2026 11:04
@philrz
Copy link
Contributor

philrz commented Jan 4, 2026

@majiayu000: FWIW, there's actually a hint present in the tools already. For instance, because of the multiple record types, if I try to print the input data from your PR in CSV or TSV format we see partial output, then the hint once the second record type is encountered:

$ echo '{s:"foo",val:1} {s:"bar"}' | super -f tsv -
s	val
foo	1
CSV output requires uniform records but multiple types encountered (consider 'fuse')

If a new user is seeing this, we're hopeful this will inspire them to look at the fuse operator docs at which point it should be clear they can do:

$ echo '{s:"foo",val:1} {s:"bar"}' | super -f tsv -c "fuse" -
s	val
foo	1
bar	

I do suspect that at some point we may add a proper table/box style output format (e.g., something like duckbox) since most other SQL tools have that and so I suspect users may start asking about it. But the format we've been calling table has had too many problems to be fixable in its prior form, so we figure taking it out of the tools entirely will help us establish demand and get user input for a design of a better replacement.

Let us know if you have any questions, and thanks again for your interest in the project!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Repeated headers can make table output confusing

2 participants