Skip to content

v1.5.19

Choose a tag to compare

@flarco flarco released this 25 May 11:48
· 143 commits to main since this release
05d5f53

Sling v1.5.19 (2026-05-25T11:50:17Z)

New Features

  • Column reordering and renames in select: The select clause now supports reordering and renaming columns inline. Combined with stricter handling of select exclusions and excluded PKs, this gives finer control over output schemas without needing downstream transforms.

  • Oracle LOB / binary fidelity to Snowflake: End-to-end row-level fidelity for Oracle LONG, LONG RAW, and large BLOB columns when replicating to Snowflake. Snowflake COPY VIA STAGE now casts hex-encoded binary to BINARY with explicit sizing up to 64MB, Snowflake parquet file formats set binary_as_text = false, DuckDB staging decodes hex-encoded binary to BLOB for parquet, DuckDB read_csv max_line_size is raised for large hex blobs, and BinaryToHex conversion is optimized from O(n²) to O(n). Type inference is refined to preserve native binary types and apply explicit lengths.

  • null_if function: New function for normalizing values to null when they match a target — useful for cleaning sentinel values out of API responses and CSV inputs.

  • JSON-RPC error detection in endpoints: API endpoints now recognize JSON-RPC error envelopes and surface them through the standard rule/retry pipeline instead of treating them as successful payloads.

  • Idle DB-connection reaping in sling lsp: The language server now reaps idle database connections instead of holding them open for the lifetime of the editor session.

  • FileType.Exts method: New helper returns all valid extensions for a FileType, enabling correct detection of multi-extension formats (e.g. .xlsm now recognized as Excel file).

Bug Fixes

  • Inline iterate.over preserved on dynamic API endpoints: Inner iterate.over is now preserved across dynamic endpoint expansion, and the over field's JSON tag is corrected so YAML/JSON specs round-trip correctly.

  • BigQuery errors masked by context.Canceled: BigQuery job-wait logic is consolidated into waitForJob, which re-fetches job status with a detached context if job.Wait returns context.Canceled. Real BigQuery API errors now surface from LoadFromReader, CopyFromGCS, and CopyToGCS instead of being hidden behind a generic cancellation error.

  • GCS path format in importViaGoogleStorage: Corrected the GCS URI format used when importing via Google Storage, fixing failures on BigQuery loads that route through GCS.

  • Auth-sequence responses skipped default rules: Default retry/fail rules are now applied to authentication-sequence responses in dbio/api. Previously these responses bypassed the rule pipeline, producing unclear errors on auth failures. Rule application is also guarded for idempotency to prevent stacking on re-compilation.

  • Endpoint rule stacking on re-compilation: Added an idempotency guard to checkResponse so endpoint rules aren't duplicated when specs are re-compiled, and ensured mutations to setup/teardown call requests/responses persist by indexing directly into slices.

  • CDC metadata column validation: Added support for retrieving and validating CDC metadata columns after the initial snapshot, with additional debug logging on CDC operations to make troubleshooting easier.

  • Temp-table double-drop: Skip dropping a temp table that has already been marked as dropped, and make the temp-table cleanup key unique to avoid collisions between concurrent tasks.