DanielLeens commented on PR #12254:
URL: https://github.com/apache/seatunnel/pull/12254#issuecomment-6594226815

   Addressed the findings from the review on `6f4bf3d8` in 
f287652c4d6779bcd0ac31c3e6e202f160054373:
   
   - **Issue 8 (compile failure):** 
`GaussDBSourceConfigFactory.fromReadonlyConfig` now returns 
`PostgresSourceConfigFactory`, matching the covariant override that #11029 
introduced in the parent. The broad `JdbcSourceConfigFactory` import is removed 
and the shared parent is unchanged. This is the error that failed all four 
unit-test lanes and updated-modules-integration-test-part-4 in Build 
41162692175.
   - **Issue 4 (unbounded buffer):** added `max-buffered-changes` (default 
100000). `MppdbTransactionBuffer` checks the budget before it retains each DML 
row. The count covers all open transactions and all committed transactions 
still blocked behind the head. When the next row would go over the limit, the 
task fails with the limit, the current and oldest transaction ids and the 
buffered counts. No row is dropped and the slot is not acknowledged past the 
last completed checkpoint. Blocking reads would not help, because the COMMIT 
that frees the memory may still be unread. The docs state that a transaction 
larger than the limit fails again on replay, and that the limit must be raised 
together with worker heap. New UTs cover one oversized transaction and a 
backlog blocked behind an open head. A third case checks that released rows 
give their budget back, which fails if the counter is not decremented.
   - **Issue 5 (quoted markers):** TEXT UPDATE parsing now finds `old-key:` / 
`new-tuple:` only outside single-quoted literals and double-quoted identifiers. 
A doubled quote closes the section and reopens it straight away. The new UT 
puts both marker words inside old and new values, plus a `''` escape. Under the 
previous `indexOf` code this record is rejected.
   - **Issue 6 (values in errors):** text and JSON decoder errors now report 
only lengths and offsets. The JSON parse failure no longer carries the Jackson 
cause, because that message echoes the offending token. A sentinel UT walks the 
whole cause chain for a malformed TEXT tuple and for malformed JSON.
   - **Issue 7 (ts_ms, nonblocking):** not changed in code. The en/zh docs now 
say that with `mppdb_decoding`, `ts_ms` is the time the reader released the 
committed transaction, not the database commit time, so lag is understated for 
backlogged changes. Carrying the parsed COMMIT timestamp through to the emitter 
is left as a follow-up.
   
   Only `spotless:apply` was run locally. Compile and test results come from 
the fork CI on the new head.
   


-- 
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]

Reply via email to