andygrove opened a new issue, #6169:
URL: https://github.com/apache/datafusion-comet/issues/6169

   The 1.1.0 user guide review in #6168 left these items open. Some depend on 
other PRs, some need a decision, and some need a code change or a test rather 
than a doc edit.
   
   ### Before the 1.1.0 branch cut
   
   - [ ] #5783: a Parquet struct with byte-identical child names silently 
multiplies rows. This is a regression from #5602, which is new in 1.1.0. #5786 
(approved, closes #5783) rejects the ambiguous reads with a clear error. If it 
doesn't land before the cut, add #5783 to the incorrect-results list in 
`compatibility/scans.md`.
   - [ ] Iceberg transform residuals: a residual such as `bucket(4, id) = 2 AND 
x` is pushed to iceberg-rust as `id = 2`, which drops rows. This is also true 
in 1.0.0, and the fix is #6154. Once it lands, the transform-residual bullet 
under "Current limitations" in `iceberg.md` should say that a single transform 
predicate falls back, while a combined one stays native without pushing the 
residual. If it misses 1.1.0, document it as a known wrong-results issue 
instead.
   - [ ] #6066 removes three keys that shipped in 1.0.0: 
`spark.comet.memoryOverhead`, `spark.comet.exec.onHeap.memoryPool` and 
`spark.comet.shuffle.jvm.memoryFactor`. They're in the Testing category, but 
the versioning policy only allows removing a key in a major release and doesn't 
exempt testing keys. Either keep them as deprecated no-ops or clarify the 
policy.
   - [ ] Check that the scheduled CI runs have been healthy over the release 
window, the other release preparation step.
   
   ### Docs decisions
   
   - [ ] Spark 4.2 has no expression-compatibility page. `SPARK_PROFILES` in 
`docs/build.sh` and `dev/generate-release-docs.sh` stops at 4.1, while 
`compatibility/expressions/index.md` tells readers to pick their version's 
page. The registrations match 4.1, but `aggregates.scala` has `isSpark42Plus` 
branches for `collect_list` / `collect_set` and `mode`, so a 4.2 page would 
differ.
   - [ ] The links in `expressions.md` to 
`compatibility/expressions/<category>.md` (array, cast, datetime, map) don't 
resolve on the published site, because those pages only exist under 
`spark-<ver>/` at build time. 1.0.0 has the same problem. Should they point at 
the Spark 4.1 pages, or at the index? The `reverse` row also links `array.md`, 
while its generated notes land in `string.md`.
   - [ ] In `understanding-comet-plans.md`, the `from_unixtime` 
extended-explain example no longer falls back, since `CometFromUnixTime` routes 
the incompatible case through the codegen dispatcher. Replace it with real 
output from an expression that does fall back. The compatibility guide URL 
quoted in it is also stale.
   - [ ] `tuning.md` "Remote Shuffle with Celeborn" describes the native push 
path in detail. However, `CelebornReflectionCompatibilitySuite` asserts that 
released Celeborn clients are refused native push, so today users only get 
ordinary Celeborn shuffle underneath Comet operators. Say so up front, or move 
the detail to the contributor guide.
   
   ### Stale text generated from code
   
   - [ ] The `spark.comet.exec.scalaUDF.codegen.enabled` description says the 
regex family routes through the dispatcher by default. In-subset `rlike` 
literals have run natively since #5415, and the description also understates 
that the flag gates every dispatch path.
   - [ ] The `spark.comet.memoryOverhead` description still talks about 
additional memory allocated per executor. After #6054 it only sizes the native 
pool in on-heap mode.
   - [ ] The `TruncTimestamp` non-UTC incompatibility reason in 
`serde/datetime.scala` cites #2649, which was closed on 2026-06-30. Check 
whether the incompatibility still holds, then update or drop the reason. It 
renders on the generated datetime compatibility page.
   - [ ] The Iceberg write toggles, 
`spark.comet.write.iceberg.splitOperator.enabled` and 
`spark.comet.iceberg.write.enabled`, are in the Testing category. So 
`configs.md` lists them as testing settings, even though `iceberg-writes.md` 
documents them for users.
   - [ ] GenerateDocs Implementation column:
     - Builder-registered functions publish as "—". Examples are `hour`, 
`minute`, `second`, `make_timestamp`, `mode`, `to_char` and `to_varchar`.
     - `regexp_extract` and `regexp_extract_all` show Native, although they 
dispatch by default.
     - Each profile's pass rewrites `expressions.md`, so the last pass wins.
   - [ ] Other GenerateDocs gaps:
     - The cast tables use `Cast.canCast`, so casts that Spark rejects under 
ANSI show U rather than N/A.
     - There is no hash, predicate or json category, so some notes are never 
published. For example, `hash`, `xxhash64` and `sha*` fall back for decimal 
precision above 18 and for TIME.
   
   ### Needs a test or a check before changing the docs
   
   - [ ] `compatibility/scans.md` says decimals encoded in binary format fall 
back. There is no plan-time check for this, and arrow-rs reads BYTE_ARRAY 
decimals as Decimal128, so the claim is likely stale.
   - [ ] `iceberg.md` says REST-vended credentials aren't consumed 
automatically. But the scan forwards `FileIO.properties()`, so static vended 
`s3.*` keys probably do reach the reader. It may be only refresh, or 
credentials delivered through `storage-credentials`, that are unsupported.
   - [ ] `expressions.md` "Not currently planned": since #5692, several of 
these should route through the codegen dispatcher rather than fall back. That 
covers `is_valid_utf8`, `make_valid_utf8`, `validate_utf8`, 
`try_validate_utf8`, `quote`, `sentences` and the scalar `bitmap_*` functions. 
Add a fixture before changing the text.
   - [ ] These are probably supported but untested:
     - `current_time`, `time_diff` and `time_trunc`
     - the two-argument TIME forms of `make_timestamp_ltz` / 
`make_timestamp_ntz`
     - the datetime form of `try_add`
   - [ ] Reported by the review, not yet confirmed: `iceberg.md` "Current 
limitations" may also be missing two fallbacks, equality deletes on struct or 
variant columns and `fixed` partition columns.
   - [ ] `datasources.md` doesn't cover native Parquet scans of `gs://`, 
including which settings are honoured. It also doesn't explain 
`fs.comet.libhdfs.schemes` routing.
   
   ### Other gaps that predate 1.1.0
   
   - [ ] #5071 was auto-closed by #5162, but two of its items remain:
     - Byte / Short `Add`, `Subtract` and `Multiply` overflow raises 
`ARITHMETIC_OVERFLOW` instead of `BINARY_ARITHMETIC_OVERFLOW`.
     - Integral overflow messages omit Spark's `try_` suggestion.
   
     Reopen it or file a follow-up, so the compatibility guide entry can link 
to it.
   - [ ] `iceberg.md` "Current limitations" doesn't mention several fallbacks:
     - Iceberg metadata tables
     - metadata columns other than `_file`, `_pos`, `_spec_id` and `_partition`
     - `FileIO` implementations outside the supported list
   - [ ] `mode` is marked ✅, although every input falls back unless 
`spark.comet.expression.Mode.allowIncompatible=true` is set. That stretches the 
status legend.
   


-- 
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