dwsmith1983 commented on PR #205:
URL: https://github.com/apache/datafusion-site/pull/205#issuecomment-5842529156

   @andygrove the 1.1.0 post covers the Iceberg residual fix and the memory 
pool fixes. 1.1.0 also closes a long list of other correctness bugs that 1.0.0 
users could hit, including wrong decimal `SUM` results, an ABFS container read 
returning another container's data, and exchange reuse merging plans that 
differ. Here is a proposed "Correctness Fixes" section for after "More Iceberg 
Improvements" or before "Upgrading to 1.1.0". It lists only fixes that affected 
1.0.0 users and leaves the rest to the change log.
   
   ````markdown
   ## Correctness Fixes
   
   1.1.0 fixes a long list of cases where Comet returned different results from 
Spark, failed where Spark
   succeeds, or accepted input that Spark rejects. The Iceberg residual and 
memory pool fixes are described
   above. These are the others most likely to affect 1.0.0 users. The [change 
log] has the full list.
   
   ### Wrong results
   
   - Decimal `SUM` returned NULL, or raised an overflow error under ANSI, when 
an intermediate sum overflowed
     but the final result fit ([#6041], [@dwsmith1983]).
   - After a late shuffle fallback, `avg` could return NULL and `collect_list` 
/ `collect_set` could produce
     mismatched buffers ([#5421], [@sunchao]).
   - Exchange reuse could share one shuffle between plans that differ, such as 
`COUNT(*) + 1` and `COUNT(*) - 1`,
     semi and anti joins, or `explode` and `explode_outer` ([#5470], [@sunchao] 
and [#5828], [@ErikBPF]).
   - Two ABFS containers in the same storage account shared a cached object 
store, so a read could return the
     other container's data ([#5053], [@peterxcli]).
   - Dictionary-encoded values hashed differently from the same values decoded, 
and a null struct hashed its
     fields, which affected joins, aggregates and shuffle partitioning ([#5757] 
and [#5754], [@viirya]).
   - Parquet field names containing non-ASCII characters that differ only in 
case read as NULL ([#5602],
     [@comphead]).
   - `IN`, `InSet`, nested `=`, `arrays_overlap` and `array_position` now treat 
`-0.0` and `0.0`, and every NaN
     encoding, as Spark does ([#6073], [@mizulun], [#5235], [@divyankshah] and 
[#5472], [@sunchao]).
   - Decimal to double and float casts were off by one unit in the last place 
for most `DECIMAL(38,18)` values
     ([#5684], [@peterxcli]).
   - String to timestamp casts now follow Spark's parsing rules for short 
fields, time zones and signed years
     ([#5682] and [#5858], [@peterxcli]).
   
   ### Errors Spark raises that Comet did not
   
   - Casts and expressions routed through codegen dispatch could skip ANSI 
errors raised inside a constant
     subexpression ([#5623], [@andygrove]).
   - Rejected `TIMESTAMP_NTZ` casts returned NULL under ANSI instead of raising 
`CAST_INVALID_INPUT` ([#5752],
     [@peterxcli]).
   - Out-of-range Parquet `TIMESTAMP_MILLIS` values, top-level or nested, 
silently wrapped ([#5177] and [#5740],
     [@peterxcli]).
   - Nested Parquet struct, list and map fields now follow Spark's conversion 
rules instead of returning NULL on
     overflow or accepting values Spark rejects ([#5681], [@peterxcli]).
   
   ### Query failures and crashes
   
   - `collect_list` and `collect_set` over nested arguments failed with "column 
types must match schema types"
     ([#5159], [@andygrove]).
   - Native shuffle failed with a 2 GB task serialization error on jobs with 
very many partitions ([#5392],
     [@parthchandra]).
   - A Scala UDF from a user jar failed with a `ClassCastException` ([#5282], 
[@andygrove]).
   - Queries failed with a `ClassCastException` when `spark.shuffle.manager` 
named Comet's shuffle manager only in
     the session configuration ([#6195], [@andygrove]).
   - `rpad` and `lpad` panicked on a NULL length ([#5680], [@peterxcli]).
   - Structs with duplicate field names failed the task in native shuffle, and 
panicked in the native Parquet
     scan ([#5866], [@dwsmith1983] and [#5786], [@ErikBPF]).
   
   ### Hangs and resource use
   
   - The JVM hung on exit when an application returned from `main` without 
calling `spark.stop()` ([#5748],
     [@zhangfengcdt]).
   - The native scan busy-polled while waiting on S3 or HDFS reads, keeping one 
core per task at 100% ([#6219],
     [@mixermt] and [@andygrove]).
   - One task could force-spill another task's shuffle buffers, and a failed 
shuffle write leaked its memory
     reservation ([#5493] and [#5461], [@peterxcli]).
   
   <!-- New reference links. [@andygrove], [@sunchao], [@ErikBPF], 
[@peterxcli], [@comphead], [@dwsmith1983],
   [@parthchandra] and [@zhangfengcdt] are already defined in the post. -->
   
   [@viirya]: https://github.com/viirya
   [@mizulun]: https://github.com/mizulun
   [@divyankshah]: https://github.com/divyankshah
   [@mixermt]: https://github.com/mixermt
   
   [#6041]: https://github.com/apache/datafusion-comet/pull/6041
   [#5421]: https://github.com/apache/datafusion-comet/pull/5421
   [#5470]: https://github.com/apache/datafusion-comet/pull/5470
   [#5828]: https://github.com/apache/datafusion-comet/pull/5828
   [#5053]: https://github.com/apache/datafusion-comet/pull/5053
   [#5757]: https://github.com/apache/datafusion-comet/pull/5757
   [#5754]: https://github.com/apache/datafusion-comet/pull/5754
   [#5602]: https://github.com/apache/datafusion-comet/pull/5602
   [#6073]: https://github.com/apache/datafusion-comet/pull/6073
   [#5235]: https://github.com/apache/datafusion-comet/pull/5235
   [#5472]: https://github.com/apache/datafusion-comet/pull/5472
   [#5684]: https://github.com/apache/datafusion-comet/pull/5684
   [#5682]: https://github.com/apache/datafusion-comet/pull/5682
   [#5858]: https://github.com/apache/datafusion-comet/pull/5858
   [#5623]: https://github.com/apache/datafusion-comet/pull/5623
   [#5752]: https://github.com/apache/datafusion-comet/pull/5752
   [#5177]: https://github.com/apache/datafusion-comet/pull/5177
   [#5740]: https://github.com/apache/datafusion-comet/pull/5740
   [#5681]: https://github.com/apache/datafusion-comet/pull/5681
   [#5159]: https://github.com/apache/datafusion-comet/pull/5159
   [#5392]: https://github.com/apache/datafusion-comet/pull/5392
   [#5282]: https://github.com/apache/datafusion-comet/pull/5282
   [#6195]: https://github.com/apache/datafusion-comet/pull/6195
   [#5680]: https://github.com/apache/datafusion-comet/pull/5680
   [#5866]: https://github.com/apache/datafusion-comet/pull/5866
   [#5786]: https://github.com/apache/datafusion-comet/pull/5786
   [#5748]: https://github.com/apache/datafusion-comet/pull/5748
   [#6219]: https://github.com/apache/datafusion-comet/pull/6219
   [#5493]: https://github.com/apache/datafusion-comet/pull/5493
   [#5461]: https://github.com/apache/datafusion-comet/pull/5461
   ````
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to