Skip to content

VTA-118933: fix split bound overflow and range data loss - #27

Merged
SandeepDave2 merged 3 commits into
mainfrom
VTA-118933-fix-split-bound-overflow-and-range-data-loss
Oct 27, 2026
Merged

SandeepDave2 merged 3 commits into
mainfrom
VTA-118933-fix-split-bound-overflow-and-range-data-loss

Conversation

@SandeepDave2

Copy link
Copy Markdown
Collaborator

Fix:
Extreme split-key values could overflow range calculations, while fractional keys could be incorrectly accepted, causing rows to be skipped.
Reject overflowing bounds and retain wide arithmetic until final range endpoints are calculated. Restrict splitting to native integer types.
NUMERIC/DECIMAL and floating-point keys fall back to a single connection, including whole-valued NUMERIC keys.
Updated the README and add regression tests following the existing pattern.

Addresses VTA-118933

Verification:
Manually tested in fenced mode on Vertica 26.4.0 with PostgreSQL 15:

  • Extreme BIGINT loads preserve all 7 rows, with range splitting confirmed.
  • Oversized NUMERIC, fractional NUMERIC and FLOAT loads preserve all values.
  • Whole-valued NUMERIC loads preserve all 5 rows, with fallback confirmed.
  • Normal integer-key loads and rowset controls continue to pass.
  • Comparisons verify complete values, duplicates and NULL handling.

@mkottakota1 mkottakota1 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed all changed files. The range-splitting changes address overflow and fractional-key row loss, and the per-parser column mapping prevents state from leaking between loads. The regression tests cover the main failure cases, and the PR’s build checks are passing. One non-blocking coverage suggestion: explicitly assert that whole-valued DECIMAL keys fall back to a single connection.

@SandeepDave2

Copy link
Copy Markdown
Collaborator Author

Reviewed all changed files. The range-splitting changes address overflow and fractional-key row loss, and the per-parser column mapping prevents state from leaking between loads. The regression tests cover the main failure cases, and the PR’s build checks are passing. One non-blocking coverage suggestion: explicitly assert that whole-valued DECIMAL keys fall back to a single connection.

I’ll add an explicit assertion that whole-valued DECIMAL keys fall back to a single connection in a follow-up PR.

@SandeepDave2
SandeepDave2 merged commit 860b860 into main Oct 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants