bamaer commented on PR #8801:
URL: https://github.com/apache/hop/pull/8801#issuecomment-6066842862
Nice addition. A few things to tighten:
**Should fix**
1. **The Oracle `CONCAT` NULL claim is wrong.** Oracle treats NULL as an
empty string, so `CONCAT('a', NULL)` returns `'a'`. Only a row where both
values are NULL gives NULL, and only that row is left unread. Suggest:
"`CONCAT` returns `NULL` only when both values are `NULL`, and that row is left
unread."
2. **"Each copy is a thread with its own database connection"** isn't always
true. If the local run configuration is *transactional*, or the pipeline
inherits a connection group from a transactional parent, every copy shares one
connection (`DatabaseCreatedXp` / `Database.connect()`). The read then doesn't
run in parallel, and some drivers fail on concurrent open result sets. MySQL's
streaming result sets are one example. Suggest adding: "Don't use a
transactional run configuration; it makes all copies share one connection."
3. **Copies don't share a snapshot.** Each copy runs its own query at a
slightly different moment. On a table that's being written to, a row inserted
or changed between those queries can be missed or read twice. That cuts against
"every row lands in exactly one copy." Suggest one sentence: "Each copy reads
its own snapshot; for a consistent result, read from a table that isn't being
changed during the run."
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]