Skip to content

v1.5.21

Choose a tag to compare

@flarco flarco released this 15 Jul 13:55
· 71 commits to main since this release
eb70c13

Sling v1.5.21 (2026-07-15T13:52:59Z)

New Features

  • CSV skip_lines source option: New skip_lines source option to skip a fixed number of leading lines (e.g. preamble rows) before the header is parsed.
  • Runtime variables in stream SQL: Stream sql: queries are now re-rendered after start-hooks run, so {store.*}, {state.*}, and {execution.*} variables resolve at query time (also exposed in the format map).
  • SQL Server pre-fetched access-token auth: Added ActiveDirectoryServicePrincipalAccessToken support — connect and BCP-import using a pre-fetched Azure AD access token (delivered via the security-token protocol, not the DSN).
  • Redshift Serverless auto-detection: Connections to redshift-serverless.amazonaws.com now automatically use the Redshift connector.
  • Composite table-key form: Primary/unique/partition keys now accept the wrapped/composite list form (e.g. primary: [[user_id, brand_id]]), flattened to behave identically to the flat form.
  • API composite primary-key dedup: A composite primary_key declared on an API spec now deduplicates records at the extraction layer (first-seen wins), preventing duplicate-key violations on merge.

Bug Fixes

  • StarRocks multi-chunk stream load: Probe the FE with an empty body to discover the CN/BE URL up front and reuse the redirect host across chunks — avoids re-uploading each chunk's full body and the resulting timeouts on large loads.
  • Redshift merge/CDC SQL: Removed unsupported table aliases from DELETE/UPDATE statements in merge, delete-insert, and change-capture templates.
  • Unsized decimal cast overflow: An explicit decimal cast (type only, no precision) no longer locks the sample-inferred precision, which could silently saturate/overflow later rows on strict engines like StarRocks.
  • Explicitly-typed columns preserved during casting: Columns pinned via columns: are no longer reverted to string/decimal mid-stream when a value fails to cast.
  • Oracle sqlldr UTF-8: Added CHARACTERSET AL32UTF8 to the sqlldr control template to correctly load multi-byte UTF-8 data.
  • DuckDB http_timeout: The raised http_timeout is now applied on every session (not only when the httpfs extension is registered), with a http_timeout connection property to override it.
  • DuckDB describe errors: A failing Describe (e.g. a missing table) now surfaces the real underlying error instead of returning an empty result.
  • Snowflake private-key validation: Key-pair auth now returns actionable errors for wrong-format keys (PKCS#1, OpenSSH) and mismatched passphrase cases, with conversion instructions.
  • API authenticator errors: Authenticate no longer dereferences a nil authenticator, and unsupported authentication types now return a clear error.
  • Spurious API state warning: The "use SLING_STATE for incremental mode" warning is no longer shown for non-incremental API syncs.
  • Deprecated queues: warning: Downgraded the deprecated top-level queues: spec-field warning to debug (queues are auto-detected).
  • API rule messages: Retry/rule messages now render request-scoped variables so their interpolated suffixes resolve correctly.