You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.