Skip to content

No test reaches the grouped batch fold with deletes: a fold that ignored the delete mask passes every suite tried #1675

Closed

Description

@jdatcmd

Found while porting parallel_vector_agg (#1673).

What was measured

A mutant in which the grouped batch fold ignores the delete mask (patch: mut-gnodelete.patch in the port's logs) fails nothing:

The twin was not run under it.

Why

Every grouped query in that suite has a text key or an expression key. Those take the row path, so the batch fold never runs there. Deleted rows are therefore never presented to it.

What is unknown

Whether another suite (for example join_vector_agg, the native agg suites, or native_agg_deletes) reaches the grouped batch fold with deleted rows. That has to be checked by running the same mutant across them before a test is written.

Next step

  1. Run the mutant over every suite that groups on a columnar table, and record which, if any, goes red.
  2. If none does: add an arm that groups on a plain integer key, deletes rows, and compares with core's grouped aggregate (enable_group_vectorization=off). Show it is red under the mutant and green on main, in both twins.

Activity

  1. jdatcmd commented on Oct 22, 2026

    @jdatcmd
    CollaboratorAuthor

    Closing: the gap is covered elsewhere. I ran the same mutant (the grouped batch fold ignores the delete mask, mut-gnodelete.patch) across all 25 suites that group on a columnar table, on PG16 at main. Two catch it:

    • native_groupagg_batch, 5 failed: "deletes: answers match the heap mirror", "toggle-differential: plain", "toggle-differential: filtered", "toggle-differential: two keys", "parallel: and they equal the heap mirror";
    • native_groupagg, 1 failed: "oracle exact: default cap runs the high-cardinality key".

    The other 23 pass under it, parallel_vector_agg among them, which is what #1673 measured. So no suite needs a new arm. parallel_vector_agg simply doesn't reach that fold, and its PR body already says so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions