Skip to content

oracledb_cdc: switch from buffering records to streaming#4243

Merged
josephwoodward merged 1 commit intomainfrom
jw/oraclestream
Apr 10, 2026
Merged

oracledb_cdc: switch from buffering records to streaming#4243
josephwoodward merged 1 commit intomainfrom
jw/oraclestream

Conversation

@josephwoodward
Copy link
Copy Markdown
Contributor

@josephwoodward josephwoodward commented Apr 10, 2026

This change switches from buffering LogMiner results to streaming them, reducing memory allocations.

Before is left, after is right:

image image

Comment thread internal/impl/oracledb/logminer/logminer.go
@claude
Copy link
Copy Markdown

claude bot commented Apr 10, 2026

Commits
LGTM

Review
Clean refactor that switches queryLogMinerContents from buffering all redo events into a slice to streaming them via a callback — good for memory efficiency on large SCN ranges.

  1. Error context loss for processing failuresprocessRedoEvent errors now bubble up through queryLogMinerContents without wrapping and get attributed to "querying logminer contents" at the call site, losing the previous "process redo event" context. Comment

@claude
Copy link
Copy Markdown

claude bot commented Apr 10, 2026

Commits
LGTM

Review
Clean refactoring of queryLogMinerContents from buffering all redo events into a slice to streaming them through a callback. The change eliminates intermediate memory allocation while preserving identical behavior. Error wrapping, context propagation, deferred rows.Close(), CSF fragment handling, and rows.Err() checking are all correct.

LGTM

@josephwoodward josephwoodward merged commit 9fb6b97 into main Apr 10, 2026
7 checks passed
@josephwoodward josephwoodward deleted the jw/oraclestream branch April 10, 2026 17:19
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.

2 participants