Skip to content

Releases: singlestore-labs/singlestoredb-python

SingleStoreDB v1.17.0

Choose a tag to compare

@kesmit13 kesmit13 released this 18 Jun 17:56
  • Add changes for compatibility with WASM components (#121)
  • Stabilize fusion workspace-group drop test (#128)
  • Run async UDFs on a dedicated event-loop thread (#124)

Event Loop Release

Event Loop Release Pre-release
Pre-release

Choose a tag to compare

v1.16.11-asaini

v1.16.11-asaini

v1.16.11-test1

v1.16.11-test1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Jun 20:36
Fix four correctness and robustness issues

- connection.py: coerce scalar rows to 1-tuple in _iquery() numpy path
  so single-column structured ndarrays don't break zip(names, row).

- json.py: use integer arithmetic (days/seconds/microseconds) instead
  of float total_seconds() for timedelta serialization to avoid
  precision loss on large durations.

- registry.py: guard numpy import in _normalize_vector_output() behind
  try/except ImportError so non-numpy environments (WASM) can still
  use vector formats like 'list'.

- server.py: use pre-allocated bytearray in _read_pipe_message() to
  avoid quadratic copying, and enforce a 16 MiB size cap to prevent
  unbounded memory growth from malformed length prefixes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

v1.16.11-rc9

v1.16.11-rc9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 May 14:05
Add PEP 440 pre-release version patching to publish workflow

Parses git tag suffixes (-test, -alpha, -beta, -rc) and patches
pyproject.toml with the corresponding PEP 440 version before building
wheels. Full releases (no suffix) are unaffected.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

v1.16.10-rc8

v1.16.10-rc8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 May 09:44
v1.16.10-rc8: Disable keep-alive on httpx

v1.16.11-rc7

v1.16.11-rc7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 May 21:33
Fix event loop closed error and add comprehensive UDF dispatch tests

Replace asyncio.run() with _run_with_graceful_shutdown() that drains
pending callbacks before closing the loop, preventing RuntimeError from
httpx/anyio TLS cleanup in async UDFs calling OpenAI/LangChain APIs.

Add 17 unit tests covering graceful shutdown, cancellation timing,
exception propagation, context variable isolation, and concurrent safety.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

v1.16.11-rc6

v1.16.11-rc6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 May 15:39
Add cancellable wrapper for responsive async UDF cancellation

Wraps the inner coroutine in _cancellable_run which polls cancel_event
and raises CancelledError at the next await (~100ms), ensuring vector
UDFs respect disconnect/timeout signals without waiting for completion.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

v1.16.11-rc5

v1.16.11-rc5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 May 15:10
Use thread-per-request for async UDFs instead of shared event loop

The dedicated shared event loop still caused starvation under concurrent
async UDF calls. Switch to the same model used by sync UDFs: each request
gets its own thread with asyncio.run(), eliminating loop contention.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

v1.16.10-wasm-test-2

v1.16.10-wasm-test-2 Pre-release
Pre-release

Choose a tag to compare

Guard Unix-only headers and functions against _WIN32

The accel C extension uses poll.h, sys/mman.h, sys/socket.h, and
unistd.h which are unavailable on Windows. Extend the existing
__wasi__ guards to also exclude _WIN32.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

v1.16.11-rc4

v1.16.11-rc4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 May 19:19
Add checkout to publish job for gh release create

gh release create requires a git repo to determine the repository
context even without --generate-notes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>