setFetchSize(10000) is a no-op on the PostgreSQL JDBC driver while autoCommit is true — the driver loads the entire ResultSet into memory, OOM/GC-thrashing on large source tables (a pg->SQL Server pull pinned the box: 4GB heap, swap full, 0 rows written). PG only uses a server-side cursor when autoCommit is false AND fetchSize > 0. Set the source connection to manual commit ONLY in migration mode: the migration source is read-only so never committing is harmless. Query mode is excluded on purpose — callers (pipekit's run_dest_sql) run committed DDL/DML through query mode, and autoCommit=false would roll those back on close. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| build.gradle | ||