Skip to content

Write geometry stats#56

Closed
Tmonster wants to merge 66 commits into
v1.5-variegatafrom
write_geometry_stats
Closed

Write geometry stats#56
Tmonster wants to merge 66 commits into
v1.5-variegatafrom
write_geometry_stats

Conversation

@Tmonster

@Tmonster Tmonster commented Jun 2, 2026

Copy link
Copy Markdown
Owner

No description provided.

Tmonster added 30 commits May 15, 2026 13:43
Tmonster and others added 29 commits June 1, 2026 10:19
[BugFix] Equality delete columns must always be referenced
Iceberg schema fields carry an optional `doc` attribute ("a comment
describing the field" per the spec). It was parsed but then discarded,
so `duckdb_columns().comment` was always NULL.

- IcebergColumnDefinition::ParseType now stores the parsed `doc` (it was
  received as a parameter but never assigned), and Copy() preserves it.
- GetColumnDefinition() maps a non-empty `doc` to the DuckDB column
  comment via ColumnDefinition::SetComment().
- IcebergTableSet::Scan returns the already-resolved table entry (which
  now carries the comments) instead of the lazy placeholder, so the
  comment surfaces in catalog listings once a table has been resolved
  (e.g. via DESCRIBE or a scan). Untouched tables stay lazy, preserving
  the behaviour from duckdb#515.

Fixes duckdb#1025
The upper bound for a string longer than the bound length was built by
truncating to 16 bytes and incrementing the last byte. That splits
multi-byte UTF-8 characters and usually yields invalid UTF-8, so writing
e.g. full-width Japanese or Turkish titles failed the whole insert with
"Could not write upper bounds for string column". Truncate on a code
point boundary and increment the last code point instead (skip the
surrogate range; if a code point is already the maximum, drop it and
carry). Adds a regression test.
- Spark data generator `column_doc_comment` creates a table whose columns
  carry COMMENT clauses (mapped to Iceberg field `doc`).
- SQL test attaches the catalog, resolves the table, and asserts that
  `duckdb_columns().comment` returns the documentation (NULL where a field
  has no `doc`).

Verified locally against the apache/iceberg-rest-fixture catalog.
…mment

Surface Iceberg field `doc` as DuckDB column comment
…d-non-ascii

Compute string upper bounds on code point boundaries
@Tmonster Tmonster closed this Jun 9, 2026
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.

5 participants