You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit b482b93
Browse filesBrowse the repository at this point in the historyBrowse files
Paimon Java accepts TIME columns in Lance data files and writes them as
time32[ms], but Paimon C++ rejected TIME in Lance schema validation,
both at top level and nested in ARRAY or ROW. Accept TIME there, and
create empty integer statistics for a TIME column in LanceStatsExtractor
so that finalizing a Lance data file with one does not fail.
Document TIME in the data types guide, which still listed it as not
supported: its time32[ms] mapping, how the declared precision is kept,
and which file formats read or write it.
Copy file name to clipboardExpand all lines: docs/source/user_guide/data_types.rst
+12-1Lines changed: 12 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -146,13 +146,24 @@ and `Arrow DataTypes <https://arrow.apache.org/docs/format/Columnar.html#data-ty
146
146
* - ``TIME``
147
147
148
148
``TIME(p)``
149
-
- Not Supported
149
+
- Time32
150
150
- Data type of a time without time zone consisting of hour:minute:second[.fractional] with up to nanosecond precision and values ranging from 00:00:00.000000000 to 23:59:59.999999999.
151
151
152
152
The type can be declared using ``TIME(p)`` where p is the number of digits of
153
153
fractional seconds (precision). p must have a value between 0 and 9
154
154
(both inclusive). If no precision is specified, p is equal to 0.
155
155
156
+
Paimon C++ maps every ``TIME(p)`` to an Arrow ``Time32`` in milliseconds
157
+
(``time32[ms]``) and accepts no other Arrow time type. The declared
158
+
precision p is kept in the ``paimon.time.precision`` field metadata; a
159
+
``Time32`` field without it is ``TIME(0)``. As in Paimon Java, values are
160
+
stored as milliseconds of the day whatever p is, so ``TIME(6)`` and
161
+
``TIME(9)`` values keep only millisecond precision.
162
+
163
+
Paimon C++ reads TIME columns from Parquet, Lance and Vortex data files
164
+
and writes them to Lance and Vortex data files. ORC and Avro data files
165
+
do not support TIME, and a TIME column cannot be a partition key.
0 commit comments