OLake Go (v0.5.0 - v0.5.2)
March 6, 2026 β March 20, 2026
π― What's Newβ
Sourcesβ
- Oracle chunking strategy options -
Added new chunking strategies for the Oracle driver so users can choose an approach that works with the permissions available, especially on read replicas and Active Data Guard standby databases.
Destinationsβ
- 2-phase commit for Iceberg sync -
Added a 2-phase commit mechanism for the Iceberg destination for full refresh, incremental, and CDC (MongoDB, PostgreSQL, MySQL, MSSQL), so per-chunk commit status is tracked via destination state making sure the syncs avoid inconsistencies and duplicate writes.
π§ Bug Fixes & Stabilityβ
-
MSSQL CDC backfill duplicate prevention -
Before recording the initial CDC cursor, wait for the CDC capture agent to catch up by pollingsys.dm_cdc_log_scan_sessionsuntil a non-throttled scan completes, ensuringsys.fn_cdc_get_max_lsn()includes all committed transactions and avoiding backfillβCDC duplicates, with a permission-aware fallback when DMV access is not allowed. -
MySQL signedness bitmap parsing fix -
Fixed signedness bitmap parsing for MySQL numeric columns by treatingYEARconsistently with MySQL server behavior, preventing bit-offset errors that could misdecode numeric columns appearing after aYEARcolumn during CDC. -
Parquet S3 path connection check fix -
Fixed the Parquet destination connection check to use the configureds3_pathprefix when writing the test file, instead of always writing to a hardcoded root-level path. -
Upgrade gRPC -
Upgraded gRPC tov1.79.3. -
Fix blank CDC sync loops across drivers -
Fixed blank CDC syncs getting stuck or triggering wrong recovery by keeping state and metadata aligned when no records are committed, and by applying recovery only when metadata is ahead of state. -
Skip MongoDB system collections -
Skips MongoDB system collections during discovery and sync/CDC processing so internalsystem.*namespaces are not included in user pipelines. -
Sync invalid MySQL ENUM values as empty string -
Invalid MySQLENUMvalues are now synced as empty string instead of failing, matching MySQLβs behavior where invalidENUMinputs are stored as the special empty-string error value.