Repository navigation
chore: Update to arrow/parquet 60.1.0 - #26867
Conversation
|
|
||
| fn value_offsets(&self, row: usize) -> (i64, i64) { | ||
| let start = self.value_offset(row) as i64; | ||
| let start = self.value_offset_at(row) as i64; |
There was a problem hiding this comment.
| // while spill_file_count remains 1 (since we're writing to the same file) | ||
| in_progress_file.append_batch(&batch1)?; | ||
| verify_metrics(&in_progress_file, 1, 440, 3)?; | ||
| verify_metrics(&in_progress_file, 1, 424, 3)?; |
There was a problem hiding this comment.
| .map(|row| (input * rows_per_input + row) % dictionary_len), | ||
| ); | ||
| take(&dictionary, &indices, None) | ||
| let taken = take(&dictionary, &indices, None)?; |
There was a problem hiding this comment.
ce310c5 to
5a12062
Compare
Co-Authored-By: Claude Fable 5.1 <[email protected]>
| ## all. Every route into a named zone -- a column cast, `AT TIME ZONE`, a | ||
| ## string literal, or `::timestamptz` under a session zone -- fails with an | ||
| ## error, where PostgreSQL resolves the value. | ||
| ## Casting a naive timestamp into a named zone resolves an ambiguous or |
There was a problem hiding this comment.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
| 01)ProjectionExec: expr=[count(Int64(1))@0 as count(*)], metrics=[<slt:ignore>] | ||
| 02)--AggregateExec: mode=Single, gby=[], aggr=[count(Int64(1))], metrics=[<slt:ignore>] | ||
| 03)----NestedLoopJoinExec: join_type=RightSemi, filter=threshold@0 > k@1, projection=[], metrics=[output_rows=128, <slt:ignore> spill_count=2, <slt:ignore> input_batches=8, input_rows=516, <slt:ignore>] | ||
| 03)----NestedLoopJoinExec: join_type=RightSemi, filter=threshold@0 > k@1, projection=[], metrics=[output_rows=128, <slt:ignore> spill_count=2, <slt:ignore> input_batches=6, input_rows=387, <slt:ignore>] |
There was a problem hiding this comment.
Due to
The right side is replayed once per left chunk. Spilled batches are now read back without validity buffers for null-free columns, so they take less memory and the build side fits in three chunks instead of four.
| SELECT approx_distinct(c14) AS a, approx_distinct(c15) AS b, approx_distinct(arrow_cast(c15, 'Date64')), approx_distinct(arrow_cast(c15, 'Time32(Second)')) as c, approx_distinct(arrow_cast(c15, 'Time64(Nanosecond)')) AS d FROM aggregate_test_100 | ||
| ---- | ||
| 18 60 60 60 60 | ||
| 18 60 7 60 60 |
There was a problem hiding this comment.
Due to
Casting a Timestamp to Date64 now truncates to whole days (previously it kept the time of day), so only 7 distinct dates remain.
| FROM (VALUES (arrow_cast(9223372036854775807, 'Timestamp(Second, None)')), (NULL)) AS t(ts) | ||
| ---- | ||
| NULL NULL NULL NULL | ||
| 7 NULL NULL NULL |
There was a problem hiding this comment.
Due to
second is now computed directly from the stored value for timestamps without a timezone,
i64::MAX seconds yields 7 (i64::MAX % 60) instead of overflowing to NULL.
The sub-second parts still go through chrono and remain NULL. The nullability reproducer further down now uses millisecond so it still produces a NULL from a non-null input.
| /// Arrays that each hold views into one shared dictionary buffer, as the | ||
| /// Parquet reader produces for a dictionary-encoded column, combined the | ||
| /// way a sort combines its input batches. Each output row cycles through | ||
| /// way a sort combines its input batches: the combined array lists the |
There was a problem hiding this comment.
note this is test code
| /// Parquet reader produces for a dictionary-encoded column, combined the | ||
| /// way a sort combines its input batches. Each output row cycles through | ||
| /// Parquet reader produces for a dictionary-encoded column, combined with | ||
| /// `concat` as a sort combines its buffered batches. The rows cycle through |
There was a problem hiding this comment.
interleave no longer duplicates the buffers
|
Ok,let's get this in |
Which issue does this PR close?
60.1.0(October 2026) arrow-rs#10525Rationale for this change
Update to the latest arrow/parquet release,
60.1.0. See the upstream CHANGELOG for details.What changes are included in this PR?
60.1.0What is the testing strategy for this PR?
Existing CI. This release candidate was also tested in #26543.
Are there any user-facing changes?
New dependency versions.