Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Bug]: AMS Spark type rendering loses Iceberg timestamp-without-zone semantics

Open
#4,426 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

@hutiefang76 is already working on this.

Since Oct 7, 2026.

  • #4428 by @hutiefang76 — open

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
35/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
java, spark
Domain
backend

Research direction

Start with IcebergTypeToSparkType and the TestIcebergTypeToSparkType tests named in the issue. Reproduce the direct and nested timestamp-without-zone cases, then check that the zone-adjusted case still renders as timestamp. Done means the regressions pass with the expected timestamp_ntz and timestamp catalog strings; an open linked pull request is already addressing this issue.

Written by the indexing model from the issue text.

Description

What happened?

IcebergTypeToSparkType maps both Iceberg timestamp variants to Spark timestamp. The AMS schema display therefore loses the distinction between timestamp without a zone and a zone-adjusted timestamp.

Expected behavior: Map shouldAdjustToUTC=false to Spark TimestampNTZType and keep the zone-adjusted variant as TimestampType. Add direct and nested type rendering regressions.

Affects Versions

master at 061eb724e93592fe87cf44b61af34c1d799f5db6

Table formats / engines

Iceberg; AMS / Spark

How to reproduce

Evaluate TypeUtil.visit(Types.TimestampType.withoutZone(), new IcebergTypeToSparkType()).catalogString(). Expected timestamp_ntz; actual timestamp. The same mismatch occurs inside nested structs. Types.TimestampType.withZone() should remain timestamp.

Relevant log output

JDK 17, default Spark 3.5.8 profile: TestIcebergTypeToSparkType, 3 tests passed; 2 failed against the original implementation. Root ./mvnw -q -Pskip-dashboard-build validate passed. Spark 3.3/3.4 profile tests were not executed.

Are you willing to submit a PR?

  • Yes

Code of Conduct

  • I agree to follow the Apache Code of Conduct.
Dominant language
Java
Stars
1.2k
Forks
397
Avg merge
2d 22h
Merged PRs (30d)
18

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/amoro

All issues in apache/amoro

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.