Skip to content

V1.5.7#706

Open
flarco wants to merge 30 commits intomainfrom
v1.5.7
Open

V1.5.7#706
flarco wants to merge 30 commits intomainfrom
v1.5.7

Conversation

@flarco
Copy link
Collaborator

@flarco flarco commented Feb 14, 2026

Sling v1.5.7

Schema Migration

  • Preserve foreign keys, indexes, column comments, default values, and auto-increment attributes when replicating between databases
  • Supported for Oracle, PostgreSQL, Redshift, Snowflake, SQL Server, BigQuery, MySQL, DuckDB, ClickHouse, Databricks, SQLite
  • Streams automatically ordered by foreign key dependencies
  • Default value translation mappings between database engines

Merge Strategies

  • Support for insert, update, update_insert, and delete_insert merge strategies

jq Expressions

  • New jq source option for JSON-based data streams
  • jq() transform function for column-level transformations
  • Works with API sources and database JSON columns
  • Compiled expressions cached for performance

Template & Expression Engine

  • Nested template expression support for recursive resolution within nested braces (e.g., GraphQL queries)
  • Safe rendering methods that keep missing expressions intact instead of erroring

Fixes & Improvements

  • File-based logging setup for persistent log output
  • Wildcard schema support in Discover method
  • Duplicate step ID validation in pipeline configs
  • DuckDB HTTP server shutdown fix after batch processing
  • Total rows and bytes tracked in pipeline state
  • Metadata queries updated to use current_database() for catalog filtering
  • Zip file response handling for API sources

flarco added 30 commits February 2, 2026 09:28
- Added support for all four merge strategies (insert, update, update_insert, delete_insert) in D1, Databricks, Exasol, Oracle, Postgres, Snowflake, SQL Server, and SQLite templates.
- Implemented specific merge strategies for DuckDB, MariaDB, MySQL, Redshift, and StarRocks, noting limitations where applicable.
- Updated task_run_write.go to allow dynamic selection of merge strategies based on configuration.
…ring

- enhance template evaluator to recursively find template expressions within nested braces
- enables rendering of complex structures like graphql queries where outer braces are not expressions
- introduce `evaluatorSafe` in `APIConnection` to keep missing expressions intact during rendering
- add `renderStringSafe` and `renderAnySafe` methods to `APIConnection`, `Endpoint`, and `Iteration`
- add comprehensive test cases for nested expression parsing and safe rendering behavior
- Added foreign key DDL templates and column/table comment templates for Oracle, PostgreSQL, Redshift, Snowflake, and SQL Server.
- Implemented extended column attributes and foreign key relationships queries for Oracle, PostgreSQL, Redshift, Snowflake, and SQL Server.
- Introduced default value translation mappings for schema migration in Oracle, PostgreSQL, Redshift, Snowflake, and SQLite.
- Updated SQLite template to handle foreign key relationships and extended column attributes.
- Refactored the ReplicationConfig to include schema migration capabilities, including ordering streams by foreign key dependencies.
- Enhanced task functions to apply schema attributes (foreign keys, indexes) during data writes.
- Adjusted test script timeout for CLI tests.
…SON SQLite test

refactor(datastream): clean up SetConfig method by removing unused column assignment
- introduce `jq` as a source option for JSON-based data streams
- enable `jq` for API source configuration and data extraction
- implement `jq` processing within `JSONStream` for various database sources
- add `JqCompile` and `JqRun` utilities with caching for efficient `jq` expression execution
- include comprehensive test cases for `jq` source option and `jq()` transform function
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant