Skip to content

v0.18.0

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Feb 13:39
dbdfbca

What's Changed

This release introduces comprehensive DB2 database support and resolves critical cross-database compatibility issues for MongoDB, SQLite, and SQL Server integrations.

🚀 Major Enhancements

  • DB2 Database Support: Added full DB2 integration with dedicated managers and comprehensive test coverage
  • Cross-Database DB2 Integration: Enabled DB2 replication with SQL Server, SQLite, MongoDB, and CSV sources
  • Enhanced Type Mapping: Improved cross-database type resolution and parameter binding for heterogeneous database pairs
  • JDBC Specification Compliance: Implemented strict JDBC spec adherence for DB2 driver compatibility

🐛 Bug Fixes

  • Fixed DB2 JDBC compatibility by properly implementing JDBC spec for wasNull() calls after getXXX() operations
  • Fixed DB2-MongoDB integration test failures with proper ISO 8601 timestamp parsing
  • Fixed SQLite to DB2 column mapping issues by using sink metadata for parameter binding
  • Fixed MongoDB merge key field casing normalization for case-sensitive field matching
  • Fixed DB2 batch exception logging to include detailed error information
  • Fixed SQL Server staging table operations in cross-database scenarios
  • Resolved BigDecimal to BLOB conversion errors by using standard SQL types in setNull() calls
  • Fixed DB2 binary handling and string type case sensitivity
  • Fixed DB2 unicode handling and SQL Server staging compatibility
  • Fixed MongoDB incremental merge with proper column label handling

🔧 Improvements

  • Use sink metadata for DB2 parameter binding instead of source metadata to avoid type mismatches
  • Normalize schema/table names to uppercase for DB2 metadata lookup
  • Use column labels (getColumnLabel()) when deriving sink columns for better alias support
  • Map DB2 sink types using insert column order for deterministic type resolution
  • Improved transaction handling in DB2-to-DB2 test tearDown
  • Excluded row number columns from DB2 parallel read operations
  • Set explicit column lists in DB2 tests for consistent mapping
  • Refactored Binary COPY limitation logs from ERROR to WARN level for graceful fallback handling

🧪 CI/CD & Testing

  • Added comprehensive DB2 integration tests with multiple source databases
  • Added DB2-to-SQL Server integration tests
  • Added DB2-to-MongoDB integration tests
  • Stabilized MongoDB row count assertions to match actual test data
  • Excluded flaky Oracle cross-version LOB tests from CI pipeline
  • Reduced CI log output for cleaner build reports
  • Improved test reliability by restricting test scope during debugging phases

📚 Infrastructure & Documentation

  • Reorganized GitHub instructions and documentation structure
  • Disabled Oracle LOB workflow to improve CI reliability
  • Updated CI workflow configurations for targeted test execution
  • Fixed CI test selectors for improved test isolation

Performance Impact

DB2 integration maintains ReplicaDB's high-performance bulk transfer capabilities:

  • Parallel execution support with configurable job count
  • Optimized batch insert operations for DB2 sinks
  • Efficient memory management for large dataset transfers
  • Cross-database type mapping with minimal overhead

Technical Improvements

JDBC Compliance: Strict adherence to JDBC specification for DB2 driver compatibility, especially around null value handling with wasNull() calls

Type Safety: Enhanced cross-database type resolution using sink metadata to prevent type mismatch errors during parameter binding

Column Mapping: Improved column name resolution using getColumnLabel() with fallback to getColumnName() for better alias support across databases

Error Handling: Better exception logging and transaction rollback handling for DB2 operations

Commits

  • c433e61: refactor: change Binary COPY limitation logs from ERROR to WARN (Oscar Salvador Magallanes)
  • a29d697: fix: resolve DB2-MongoDB integration test failures (Oscar Salvador Magallanes)
  • 09feb69: Update CT_Push.yml (Oscar Salvador Magallanes)
  • 4bc073f: chore: disable oracle lob workflow (Oscar Salvador Magallanes)
  • 5012825: chore: reduce ci log output (Oscar Salvador Magallanes)
  • c43934a: fix(db2): expand csv boolean column (Oscar Salvador Magallanes)
  • a9b28ac: test: stabilize mongo and row counts (Oscar Salvador Magallanes)
  • 0ff577c: fix(db2): expand csv boolean column (Oscar Salvador Magallanes)
  • f59ad43: chore: exclude oracle cross-version tests (Oscar Salvador Magallanes)
  • feef9aa: Update pom.xml (Oscar Salvador Magallanes)
  • bd2cecf: fix: initialize mongo merge keys (Oscar Salvador Magallanes)
  • 2ff34a8: fix: align DB2 fixtures and defaults (Oscar Salvador Magallanes)
  • 6e06a64: fix: truncate SQLite string fields for DB2 (Oscar Salvador Magallanes)
  • 5667911: chore: run all tests except Oracle cross-version (Oscar Salvador Magallanes)
  • 5399942: fix: scale SQLite numeric columns for DB2 (Oscar Salvador Magallanes)
  • 537793d: fix: log DB2 batch exceptions with details (Oscar Salvador Magallanes)
  • 7de3094: fix: align SQLite->DB2 columns and metadata lookup (Oscar Salvador Magallanes)
  • 9333eda: chore: restrict CT push to Sqlite2DB2 test (Oscar Salvador Magallanes)
  • 53ad541: fix: use column labels when deriving sink columns (Oscar Salvador Magallanes)
  • 6bad0fb: fix: normalize MongoDB merge key field casing (Oscar Salvador Magallanes)
  • 519a010: fix: map DB2 sink types using insert column order (Oscar Salvador Magallanes)
  • a1c07fa: fix: use sink metadata for DB2 parameter binding (Oscar Salvador Magallanes)
  • 8856f2b: fix: Use standard SQL types instead of source types in setNull() calls (Oscar Salvador Magallanes)
  • 542a8a7: fix: Add JDBC spec compliance for wasNull() in Db2Manager (Oscar Salvador Magallanes)
  • e247844: fix: resolve DB2 and MariaDB test failures (Oscar Salvador Magallanes)
  • a0b067f: Reorganize GitHub instructions and docs (Oscar Salvador Magallanes)
  • 686a5ac: fix: correct MongoDB incremental merge with column label handling (Oscar Salvador Magallanes)
  • c639dbd: Adjust DB2 LOB binding (Oscar Salvador Magallanes)
  • 5bf59f0: Fix DB2 batch and SQLite staging (Oscar Salvador Magallanes)
  • f6f6dca: Rollback source connection on close (Oscar Salvador Magallanes)
  • d4dbf38: Add DB2 integration tests (Oscar Salvador Magallanes)
  • b002be0: Update CT_Push.yml (Oscar Salvador Magallanes)
  • d7e33d2: Fix DB2 binary handling (Oscar Salvador Magallanes)
  • e5d6d8f: Fix DB2 string type cases (Oscar Salvador Magallanes)
  • ed5efb5: Fix DB2 unicode handling and SQL Server staging (Oscar Salvador Magallanes)
  • 68ae269: Add DB2<->SQL Server integration tests (Oscar Salvador Magallanes)
  • 6eabdbc: Exclude RN from DB2 parallel reads (Oscar Salvador Magallanes)
  • 28d2736: Set explicit DB2 column list in tests (Oscar Salvador Magallanes)
  • 826783b: Fix CI test selectors (Oscar Salvador Magallanes)
  • 2328189: Add DB2 managers and update tests (Oscar Salvador Magallanes)

Full Changelog: v0.17.0...v0.18.0