Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Doc: insert executor and incremental consolidation leave sorted runs, not globally sorted heads

Open Beginner friendly
#2,133 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
Under an hour
Newbie friendliness
83/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Active
Tech stack
c
Domain
documentation

Research direction

Read the comments for wl_columnar_eval_tdd_insert_stratum() in wirelog/columnar/internal.h and col_op_consolidate_incremental_delta in wirelog/columnar/merge.c. Compare their claims with the described run_count/run_ends metadata and sorted-run behavior. Update both comments to state the acceptance criterion: rows are unique and stored in sorted runs, or fully sorted when run_count == 0.

Written by the indexing model from the issue text.

Description

Summary

Two comments promise that a head relation ends in globally sorted order. It does not: incremental consolidation keeps the relation's rows as up to COL_MAX_RUNS independently sorted, unique runs (run_count / run_ends, #369). The rows are unique, but their stored order is sorted only within each run.

  • wirelog/columnar/internal.h, doc of wl_columnar_eval_tdd_insert_stratum() (#2114): "Each head ends sorted and unique".
  • wirelog/columnar/merge.c, header of col_op_consolidate_incremental_delta: POSTCONDITIONS "rel->data[0..rel->nrows) is sorted and unique (new invariant)". The same header's ALGORITHM section describes the binary-search path that maintains "tiered sorted runs".

How it shows

While writing tests/test_tdd_insert_oracle.c (#2120), a check that each admitted head's rows are in non-decreasing stored order failed after wl_columnar_eval_tdd_insert_stratum(). The failures were on andersen pointsTo, csda nullNode, galen outP, tc tc and polonius subset. In each, a sorted prefix was followed by rows that sort before it, for example tc on bench/data/graph_100.csv: ... (98 100) (99 100) (1 97) (2 97) .... In every case the rows were unique and equal to a full evaluation. The test now checks uniqueness on a sorted copy instead.

Proposed change

Reword both comments to the actual invariant: unique, stored as sorted runs that run_count/run_ends describe (or fully sorted when run_count == 0). No code change. If any caller relies on global stored order rather than on the run metadata, that is a separate defect; none was found in this investigation.

Acceptance

  • Both comments state the run invariant instead of global order.
Dominant language
C
Stars
18
Forks
2
Avg merge
6h 50m
Merged PRs (30d)
243

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from semantic-reasoning/wirelog

All issues in semantic-reasoning/wirelog

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.