AODBcRewriter: fix paste-join children after row reorder/dedup#2360
Open
sawenzel wants to merge 1 commit into
Open
AODBcRewriter: fix paste-join children after row reorder/dedup#2360sawenzel wants to merge 1 commit into
sawenzel wants to merge 1 commit into
Conversation
Paste-joined ("implicit-join") tables — row N of the child matches row
N of the parent — must keep equal row counts and have embedded index
columns remapped when the parent is reordered or deduped.
Two bugs fixed:
1. O2mccollisionlabel was routed through Stage 2 because it carries
fIndexMcCollisions; Stage 2 then sorted and dropped rows whose MC
collision was dedup'd, breaking the 1:1 join with O2collision and
crashing downstream consumers on the misaligned tables.
2. The SOA SLICE_INDEX_COLUMN fIndexSliceBCs[2]/I — present only on
O2ambiguous{track,mfttr,fwdtr}, which Stage 1 does not touch —
was never remapped after BC dedup, so slice endpoints pointed past
the compacted BC table.
Stage 2 now defers paste-join children to the paste-join handler,
which preserves the parent's row order and applies value-wise remaps
for fIndexMcCollisions / fIndexCollisions / fIndexSliceBCs /
fIndexBCs / fIndexBC via the existing ExtraRemap path. bcPerm is
passed as an explicit argument to avoid an unordered_map iteration-
order side effect that broke O2mccalolabel -> O2calo prefix lookup.
kPasteJoins extended to all pairs documented in AnalysisDataModel.h
(adds O2bcflag/O2bc, O2mccalolabel/O2calo, O2trackcov_iu/O2track_iu,
O2trackextra/O2track_iu, O2fwdtrackcov/O2fwdtrack).
AODBcRewriterValidate gains paste-join row-count parity checks and a
generic fIndex* range check (kIndexBranchToTable) that handles scalar,
fixed-size, and VLA branches uniformly. CLAUDE.md updated.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
REQUEST FOR PRODUCTION RELEASES: This will add The following labels are available |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixing a bug in AODBcRewriter: The previous code did not consider tables which are paste-joinable by convention rather via an explicit index. This is now the case. Fixes https://its.cern.ch/jira/browse/O2-6937