SIGN IN SIGN UP

Support STRING_TYPE_INFO when deserializing types (#65)

Any query result containing a VARCHAR column with an explicit collation
failed to render, replacing the whole result with "unsupported type info:
3". Selecting only non-collated columns worked, so ordinary `SELECT *` on
a schema using case-insensitive text columns was unusable.

readTypeInfo() handled ExtraTypeInfo tags 1, 2, 4, 5, 6, and 9, but not 3
(STRING_TYPE_INFO), which DuckDB attaches to any string type carrying a
collation. The default branch then threw. This is result type metadata, so
it failed even for empty results.

Read tag 3 as a StringTypeInfo, taking the collation from property 200.
DuckDB writes that property with a default, omitting it when the collation
is empty, so read it with a default of '' rather than requiring it.

Nothing downstream needs the collation: duckDBTypeFromTypeIdAndInfo() reads
only the alias for VARCHAR, and value conversion doesn't consult type info
for strings. So a collated column now renders as a plain VARCHAR, matching
what the CLI shows. The collation is kept in the model for fidelity.

Verified against a local UI server on 1.5.5, for the empty and non-empty
cases, for `COLLATE C` and `CAST(name AS VARCHAR)` (neither of which drops
the collation), and for collated VARCHAR nested in LIST and STRUCT.

Fixes duckdb/duckdb-ui#241

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
J
Jeff Raymakers committed
244552d28b2af0d76778f1792bfae71f7092291f
Parent: 26084e6
Committed by GitHub <noreply@github.com> on 7/30/2026, 8:41:06 PM