Sling v1.5.21 (2026-07-15T13:52:59Z)
New Features
- CSV
skip_linessource option: Newskip_linessource 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
ActiveDirectoryServicePrincipalAccessTokensupport — 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.comnow 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_keydeclared 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/UPDATEstatements in merge, delete-insert, and change-capture templates. - Unsized decimal cast overflow: An explicit
decimalcast (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 AL32UTF8to the sqlldr control template to correctly load multi-byte UTF-8 data. - DuckDB
http_timeout: The raisedhttp_timeoutis now applied on every session (not only when the httpfs extension is registered), with ahttp_timeoutconnection 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:
Authenticateno 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-levelqueues: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.