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
Labels have already been applied and requires-triage removed from each issue listed under "Bugs" and "Enhancements". A reviewer should spot-check the calls and close this issue when satisfied. To correct a label, edit the affected issue directly.
Bugs
priority:critical
array_filter: array_compact fast path misfires when IsNotNull operand is not the lambda variable (#4830)
Area labels: area:expressions
Rationale: CometArrayFilter.convert silently rewrites filter(arr, x -> captured_col IS NOT NULL) as array_compact(arr), producing wrong results whenever arr has null elements or captured_col is null — decision-tree step 1 (silent wrong results).
Distinct-aggregate rewrite can split an incompatible-buffer aggregate across Comet and Spark, causing crash or wrong results (#4813)
Area labels: area:aggregation
Rationale: incompatible partial buffers cross the Comet/Spark boundary in the 4-stage distinct rewrite; hard crash for percentile_approx but the reporter notes silent wrong results are likely for collect_set, collect_list, exact percentile, avg, decimal sum, and variance — escalated to critical under decision-tree step 1.
bug: flatten drops nulls and returns wrong results when a sub-array is null (#4788)
Area labels: area:expressions
Rationale: reporter demonstrates Comet returns a non-null misaligned array where Spark returns null; silent data corruption over a plain Parquet scan — decision-tree step 1.
bug: null IN () returns false instead of null under legacy null-in-empty behavior (#4786)
Area labels: area:expressions
Rationale: Comet ignores spark.sql.legacy.nullInEmptyListBehavior=true and silently returns false where Spark returns null — decision-tree step 1.
[EPIC] Consistent handling of invalid UTF-8 in native StringType (ingress policy) (#4764)
Area labels: none (existing correctness, area:shuffle, area:scan, area:ffi preserved by the reporter)
Rationale: reporter documents a latent-UB / silent-wrong-result hazard (arrow-rs StringArray::value on FFI-imported non-UTF-8 bytes is unchecked) plus the scan gap that Spark accepts and Comet rejects — decision-tree step 1 for the UB hazard; kept as an EPIC bug.
priority:high
bug: array/map kernels crash on non-null child field via CometLocalTableScanExec (#4789)
Area labels: area:expressions, area:scan
Rationale: native assertion failure / InvalidArgumentError panic on slice, map_entries, and array_insert when the local scan carries non-nullable child fields; visible crash rather than wrong results — decision-tree step 2.
bug: scalar subquery in RepartitionByExpression crashes with "Subquery N not found" (#4787)
Area labels: area:expressions
Rationale: CometNativeException: Subquery 75 not found for plan 12 when a scalar subquery appears in DISTRIBUTE BY; reproduces over plain Parquet — decision-tree step 2 (native crash).
Enhancements
Support WindowGroupLimitExec (window-based limit pushdown) (#4837)
Area labels: area:expressions
Rationale: request for a new native operator so plans containing WindowGroupLimitExec no longer fall back to Spark.
Rationale: adds a currently unsupported window frame type; the existing behavior is a documented, clean fallback to Spark, not a defect.
Support FIRST_VALUE/LAST_VALUE on a RANGE window frame with a literal offset (#4835)
Area labels: area:expressions
Rationale: extends native RANGE-frame coverage; today Comet correctly falls back to Spark, so this is a coverage gap.
Support RANGE window frames with an explicit offset on DATE or DECIMAL ORDER BY (#4834)
Area labels: area:expressions
Rationale: documented current limitation with clean Spark fallback; request to broaden native RANGE-frame ORDER BY type support.
Partial project fallback: keep a projection/filter native by evaluating an unsupported subexpression in the JVM (#4825)
Area labels: area:expressions
Rationale: proposes a new splitter hook so unsupported subexpressions no longer collapse the whole native island — a new feature behind an opt-in config.
[Enhancement] Enable mixed partial/final execution for approx_count_distinct (HyperLogLogPlusPlus) (#4820)
Area labels: area:aggregation
Rationale: request to broaden native coverage by flipping supportsMixedPartialFinal for approx_count_distinct now that the buffer format matches Spark; not a defect.
Support grouping() and grouping_id() indicator functions (#4814)
Area labels: area:expressions
Rationale: queries already run natively; the ask is to add test coverage and mark the functions as supported in the docs — a coverage/documentation enhancement.
feat: IO-level dynamic filter pushdown into the native Delta scan (delta-kernel-rs predicate reuse) (#4809)
feat: Refactor shuffle partition writing behind a writer interface (#4780)
Area labels: area:shuffle
Rationale: refactor to introduce a PartitionWriter abstraction so alternative shuffle backends can be added later; behavior-preserving.
Move CometCollationSuite into the spark-4.1+ test shim to avoid per-version duplication (#4770)
Area labels: area:ci
Rationale: test/build-system cleanup to add ${shims.minorPlusVerSrc} to add-test-source and move the suite; no behavior change.
Report unsupported metadata column names in fallback reasons (#4757)
Area labels: area:scan
Rationale: improves fallback message to include the metadata column name; user-experience enhancement.
Math expressions: revisit interval / input-type gating and add regression tests once interval support lands (#4756)
Area labels: area:expressions
Rationale: reporter explicitly states "no live defect today"; deferred work to add regression tests and revisit gating once native interval support lands.
Rationale: investigation into swapping the chrono dependency for Jiff since chrono-tz is being deprecated; enhancement / exploration.
Escalations to consider
Distinct-aggregate rewrite can split an incompatible-buffer aggregate across Comet and Spark, causing crash or wrong results (#4813)
Reporter observed a hard crash for percentile_approx but explicitly warns that other affected aggregates (collect_set, collect_list, exact percentile, decimal sum, avg, variance) risk silent wrong results — matches the guide's "priority:high crash also produces wrong results" escalation trigger; escalated to priority:critical.
Triage pass over the open
requires-triagequeue, per the project Bug Triage Guide.priority:critical5,priority:high2Labels have already been applied and
requires-triageremoved from each issue listed under "Bugs" and "Enhancements". A reviewer should spot-check the calls and close this issue when satisfied. To correct a label, edit the affected issue directly.Bugs
priority:critical
area:expressionsCometArrayFilter.convertsilently rewritesfilter(arr, x -> captured_col IS NOT NULL)asarray_compact(arr), producing wrong results wheneverarrhas null elements orcaptured_colis null — decision-tree step 1 (silent wrong results).area:aggregationpercentile_approxbut the reporter notes silent wrong results are likely forcollect_set,collect_list, exactpercentile,avg, decimalsum, and variance — escalated to critical under decision-tree step 1.flattendrops nulls and returns wrong results when a sub-array is null (#4788)area:expressionsnull; silent data corruption over a plain Parquet scan — decision-tree step 1.null IN ()returns false instead of null under legacy null-in-empty behavior (#4786)area:expressionsspark.sql.legacy.nullInEmptyListBehavior=trueand silently returnsfalsewhere Spark returnsnull— decision-tree step 1.correctness,area:shuffle,area:scan,area:ffipreserved by the reporter)StringArray::valueon FFI-imported non-UTF-8 bytes is unchecked) plus the scan gap that Spark accepts and Comet rejects — decision-tree step 1 for the UB hazard; kept as an EPIC bug.priority:high
area:expressions,area:scanInvalidArgumentErrorpanic onslice,map_entries, andarray_insertwhen the local scan carries non-nullable child fields; visible crash rather than wrong results — decision-tree step 2.area:expressionsCometNativeException: Subquery 75 not found for plan 12when a scalar subquery appears inDISTRIBUTE BY; reproduces over plain Parquet — decision-tree step 2 (native crash).Enhancements
area:expressionsWindowGroupLimitExecno longer fall back to Spark.area:expressionsarea:expressionsarea:expressionsarea:expressionsarea:aggregationsupportsMixedPartialFinalforapprox_count_distinctnow that the buffer format matches Spark; not a defect.area:expressionsarea:scanarea:scanarea:aggregationarea:scanarea:shufflePartitionWriterabstraction so alternative shuffle backends can be added later; behavior-preserving.area:ci${shims.minorPlusVerSrc}toadd-test-sourceand move the suite; no behavior change.area:scanarea:expressionsarea:expressionsEscalations to consider
percentile_approxbut explicitly warns that other affected aggregates (collect_set,collect_list, exactpercentile, decimalsum,avg, variance) risk silent wrong results — matches the guide's "priority:high crash also produces wrong results" escalation trigger; escalated topriority:critical.Skipped — needs more info
requires-triage); meta, awaiting human review and closure, not a bug.