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.

Reply via email to