This is an automated email from the ASF dual-hosted git repository.
kevinjqliu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git
The following commit(s) were added to refs/heads/main by this push:
new 2234c549de Spec: Use relative links between spec documents and fix
broken links (#18441)
2234c549de is described below
commit 2234c549de60ae6bb9cf6f319dff0f6f94df76e3
Author: pvary <[email protected]>
AuthorDate: Wed Oct 14 00:43:25 2026 +0200
Spec: Use relative links between spec documents and fix broken links
(#18441)
Spec: Use relative links between spec documents
Replace absolute https://iceberg.apache.org links between the spec
documents in format/ with relative .md links, so they resolve both on
GitHub and on the generated site.
- expressions-spec.md: link to udf-spec.md and spec.md anchors. The
previous `spec/#...` references resolved to /expressions-spec/spec/
on the site and were broken.
- spec.md: link to puffin-spec.md.
- udf-spec.md: link to spec.md anchors.
Also replace the dead orc.apache.org TimestampColumnVector javadoc link
with the javadoc.io page for hive-storage-api 2.8.1.
---
format/expressions-spec.md | 6 +++---
format/spec.md | 4 ++--
format/udf-spec.md | 4 ++--
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/format/expressions-spec.md b/format/expressions-spec.md
index bd01378ac1..924c2c796a 100644
--- a/format/expressions-spec.md
+++ b/format/expressions-spec.md
@@ -36,7 +36,7 @@ This is consistent with Iceberg's conservative approach in
other specs. Expressi
This specification covers the structure of Iceberg expressions and includes
appendices that specify serialization as JSON and a set of portable functions
defined by Iceberg specifications.
-[udf-spec]: https://iceberg.apache.org/udf-spec
+[udf-spec]: udf-spec.md
## Structure
@@ -225,8 +225,8 @@ Note that `year`, `month`, and `hour` transforms produce
ordinal values and not
| `bucket(N, value)` | Hash of value, mod `N` (see [table spec
details][bucket-ref]) | Any primitive except for `geometry`,
`geography`, `boolean`, `float`, or `double` | `int` |
| `truncate(W, value)` | Value truncated to width `W` (see [table spec
details][truncate-ref]) | `int`, `long`, `decimal`, `string`, `binary`
| Source type |
-[bucket-ref]: spec/#bucket-transform-details
-[truncate-ref]: spec/#truncate-transform-details
+[bucket-ref]: spec.md#bucket-transform-details
+[truncate-ref]: spec.md#truncate-transform-details
## Appendix B: JSON serialization
diff --git a/format/spec.md b/format/spec.md
index 508de131be..844c2b2fb6 100644
--- a/format/spec.md
+++ b/format/spec.md
@@ -1388,7 +1388,7 @@ Delete manifests track deletion vectors individually by
the containing file loca
At most one deletion vector is allowed per data file in a snapshot. If a DV is
written for a data file, it must replace all previously written position delete
files so that when a DV is present, readers can safely ignore matching position
delete files.
-[puffin-spec]: https://iceberg.apache.org/puffin-spec/
+[puffin-spec]: puffin-spec.md
#### Position Delete Files
@@ -1603,7 +1603,7 @@ When reading an `unknown` column, any corresponding
column must be ignored and r
Notes:
-1. ORC's
[TimestampColumnVector](https://orc.apache.org/api/hive-storage-api/org/apache/hadoop/hive/ql/exec/vector/TimestampColumnVector.html)
consists of a time field (milliseconds since epoch) and a nanos field
(nanoseconds within the second). Hence the milliseconds within the second are
reported twice; once in the time field and again in the nanos field. The read
adapter should only use milliseconds within the second from one of these
fields. The write adapter should also report milli [...]
+1. ORC's
[TimestampColumnVector](https://javadoc.io/doc/org.apache.hive/hive-storage-api/2.8.1/org/apache/hadoop/hive/ql/exec/vector/TimestampColumnVector.html)
consists of a time field (milliseconds since epoch) and a nanos field
(nanoseconds within the second). Hence the milliseconds within the second are
reported twice; once in the time field and again in the nanos field. The read
adapter should only use milliseconds within the second from one of these
fields. The write adapter should [...]
2. ORC `timestamp` and `timestamp_instant` values store nanosecond precision.
Iceberg ORC writers for Iceberg types `timestamp` and `timestamptz` **must**
truncate nanoseconds to microseconds. `iceberg.timestamp-unit` is assumed to be
`MICROS` if not present.
One of the interesting challenges with this is how to map Iceberg’s schema
evolution (id based) on to ORC’s (name based). In theory, we could use
Iceberg’s column ids as the column and field names, but that would be
inconvenient.
diff --git a/format/udf-spec.md b/format/udf-spec.md
index 70ed53a5db..0202ab80c0 100644
--- a/format/udf-spec.md
+++ b/format/udf-spec.md
@@ -103,8 +103,8 @@ Notes:
3. All types, including parameters and return types, are considered nullable.
#### Types
-[iceberg-type-json]:
https://iceberg.apache.org/spec/#appendix-c-json-serialization
-Types are based on the [Iceberg
Type](https://iceberg.apache.org/spec/#schemas-and-data-types).
+[iceberg-type-json]: spec.md#appendix-c-json-serialization
+Types are based on the [Iceberg Type](spec.md#schemas-and-data-types).
Primitive and semi-structured type strings are encoded based on [Iceberg Type
JSON Representation][iceberg-type-json]
(e.g., `int`, `string`, `timestamp`, `decimal(9, 2)`, `variant`). Type strings
must contain no quote characters.