Skip to content

go/writer: add nanosecond timestamp and variant parquet types#4468

Closed
jacobmarble wants to merge 2 commits into
mainfrom
jgm-parquet-types
Closed

go/writer: add nanosecond timestamp and variant parquet types#4468
jacobmarble wants to merge 2 commits into
mainfrom
jgm-parquet-types

Conversation

@jacobmarble
Copy link
Copy Markdown
Contributor

@jacobmarble jacobmarble commented May 13, 2026

Description:

Adds two new parquet logical types to go/writer and matching opt-in ProjectionToParquetSchemaElement options:

  • LogicalTypeTimestampNanos / WithParquetTimestampAsNanoseconds
  • LogicalTypeVariant / WithParquetSchemaObjectAsVariant, WithParquetSchemaArrayAsVariant (callers pass pre-encoded VariantValue{Value, Metadata []byte}; variant-binary encoding is the caller's responsibility)

No caller invokes the new behavior yet. Existing connectors are unchanged until they explicitly pass the new options.

Helps #4462, #4466.

Workflow steps:

No connector behavior change; callers opt in via the new schema options.

Documentation links affected:

None.

Notes for reviewers:

flushBuffer now advances NextColumn() twice for variant elements (group with value + metadata children). transferColumnValues works unchanged since it iterates by leaf-column count.

@jacobmarble jacobmarble deleted the jgm-parquet-types branch May 14, 2026 16:52
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.

1 participant