OLake (v0.3.5 - v0.3.6)
November 29 β December 19, 2025
π― What's Newβ
Sourcesβ
-
Filter parsing for special-character column names (Only for CLI)-
Enhanced filter parsing to support quoted column names with double quotes and backticks, including names containing hyphens, spaces, dots, and other special characters. -
Oracle source integration tests -
Added comprehensive integration tests for Oracle 23c as source, covering full-load and incremental syncs plus primary/secondary cursor field validation for all drivers. -
MariaDB CDC binlog support -
Added MariaDB CDC source support by fixing binlog position detection: correctly identifies MariaDB flavor for MySQL, usesSHOW MASTER STATUSquery with 4-column scanning, and resolves syntax/column count errors that prevented CDC from MariaDB 10.11+ -
SSH tunnel support for MongoDB/Oracle -
Extended SSH tunnel connectivity to MongoDB and Oracle drivers. -
Incremental sync and partitioning integration tests -
Added integration tests covering full load and incremental sync workflows combined with partitioning validation for comprehensive end-to-end testing.
Catalogsβ
- Custom catalog name support -
Replaced hardcodedolake_icebergcatalog name with configurable catalog name from destination settings, allowing users to specify and sync under their preferred catalog name.
Destinationsβ
-
Parquet writer integration tests -
Added comprehensive integration tests for Parquet writer from PostgreSQL, MySQL, and MongoDB sources, covering schema evolution for both Parquet and Iceberg destinations plus edge cases for robust validation. -
Arrow-based Iceberg writer support -
Added an Apache Arrowβbased Iceberg writer that writes data and delete files to object storage and registers them via the Iceberg Java API, supporting both full-refresh and CDC via equality deletes.
π§ Bug Fixes & Stabilityβ
- MongoDB cursor ObjectId fix -
Fixed MongoDB cursor saving ObjectId values as ObjectId(number) strings, which caused id <= string comparisons to fail and skip all records. Now saves ObjectId cursors as hex strings for proper comparison, and resolved timestamp parsing by supporting MongoDB's native timestamp format to prevent epoch-start defaults.