This is an automated email from the ASF dual-hosted git repository.
Fokko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/parquet-testing.git
The following commit(s) were added to refs/heads/master by this push:
new 56653c4 Add file with an FLBA(12) TIMESTAMP column (#123)
56653c4 is described below
commit 56653c437c8092f704a092d0d1d4e600124cd49f
Author: Divjot Arora <[email protected]>
AuthorDate: Tue Sep 15 09:24:18 2026 +0200
Add file with an FLBA(12) TIMESTAMP column (#123)
* Add FLBA(12) TIMESTAMP test file
Co-authored-by: Isaac
* address comments
---
data/README.md | 1 +
data/flba12_timestamp.md | 49 ++++++++++++++++++++++++++++++++++++++++++
data/flba12_timestamp.parquet | Bin 0 -> 1119 bytes
3 files changed, 50 insertions(+)
diff --git a/data/README.md b/data/README.md
index 036ecf6..7aebae5 100644
--- a/data/README.md
+++ b/data/README.md
@@ -67,6 +67,7 @@
| alp_extended.zstd.parquet | FLOAT and DOUBLE columns encoded using Adaptive
Lossless floating-Point (ALP). See [note](#alp-encoding) below |
| json.parquet | A single optional BYTE_ARRAY column annotated with the JSON
logical type (also carries the legacy converted type JSON). Four rows:
`{"a":1}`, `{"a":1,"b":null}` (null field value inside a non-null document),
`[1,null,3]` (null element inside an array), and a NULL row. See
[note](#json-and-bson-logical-types) below. |
| bson.parquet | A single optional BYTE_ARRAY column annotated with the BSON
logical type (also carries the legacy converted type BSON). Three rows: BSON
`{"a":1}`, `{"a":1,"b":null}` (null field value inside a non-null document),
and a NULL row. See [note](#json-and-bson-logical-types) below. |
+| flba12_timestamp.parquet | Three `FIXED_LEN_BYTE_ARRAY(12)` columns
annotated with `TIMESTAMP`. See [flba12_timestamp.md](flba12_timestamp.md) for
details. |
TODO: Document what each file is in the table above.
diff --git a/data/flba12_timestamp.md b/data/flba12_timestamp.md
new file mode 100644
index 0000000..5b08b15
--- /dev/null
+++ b/data/flba12_timestamp.md
@@ -0,0 +1,49 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+# `flba12_timestamp.parquet`
+
+Three columns with physical type `FIXED_LEN_BYTE_ARRAY(12)` and logical type
`TIMESTAMP`.
+
+## Schema
+
+```
+message flba12_timestamp {
+ optional fixed_len_byte_array(12) timestamp_millis (TIMESTAMP(MILLIS,true));
+ optional fixed_len_byte_array(12) timestamp_micros (TIMESTAMP(MICROS,true));
+ optional fixed_len_byte_array(12) timestamp_nanos (TIMESTAMP(NANOS,true));
+}
+```
+
+All columns use `TYPE_DEFINED_ORDER`. For the `timestamp_nanos` column, two
out of the six rows
+require more than 64 bits to represent.
+
+## Values
+
+The same six timestamp values appear in every column, only the unit scale
differs. The values
+below are interpreted as ISO-8601 timestamps in the Proleptic Gregorian
calendar.
+
+| Row | Timestamp (UTC) | Epoch Seconds | Note
|
+|-----|-----------------------|------------------|---------------------------------------------|
+| 0 | 1970-01-01T00:00:00Z | 0 | Epoch (all-zero bytes)
|
+| 1 | 1970-01-01T00:00:01Z | 1 | Small positive
|
+| 2 | 1969-12-31T23:59:59Z | -1 | Small negative (exercises
two's-complement) |
+| 3 | 2262-04-11T23:47:16Z | 9,223,372,036 | Near INT64-nanos max
|
+| 4 | 9999-12-31T23:59:59Z | 253,402,300,799 | Far future — NANOS exceeds
INT64 |
+| 5 | 0001-01-01T00:00:00Z | -62,135,596,800 | Far past — NANOS is below
INT64 minimum |
diff --git a/data/flba12_timestamp.parquet b/data/flba12_timestamp.parquet
new file mode 100644
index 0000000..828d70f
Binary files /dev/null and b/data/flba12_timestamp.parquet differ