Repository navigation
chore: sync upstream dev for embedded Sirius - #13
Merged
aunjgr merged 32 commits intoSep 16, 2026
Merged
Conversation
Fix some deprecation warnings for 26.10.
## What changes for users When Sirius rebuilds an spdlog sink after a logging-setting change, a failed rebuild must not leave the reported configuration describing a sink that never became active. This PR now restores the prior flush interval when that rebuild fails, matching its existing rollback behavior for backend and directory changes. Users still choose the supported logging backend, directory, level, and flush interval. Sirius owns validation and the transactional sink replacement. A focused regression forces the deterministic invalid-directory failure and checks that both the previous current_setting value and the exact active sink remain unchanged. The evidence boundary is that deterministic construction failure; this does not claim recovery from arbitrary external filesystem failures after a sink is installed. ## Summary - reject unsupported startup and runtime logging backend/level values before mutation - preserve the active backend, directory, sink, and startup logging tuple when replacement sink construction fails - restore LOG_FLUSH_SECONDS when spdlog sink reconstruction fails - reject negative sirius_log_flush_seconds while preserving 0 as the explicit periodic-flush opt-out - consolidate the adjacent logging validation formerly carried by sirius-db#1516 into the rollback transaction already reviewed here ## Contract Runtime backend changes accept only duckdb, spdlog, or noop; runtime level changes accept only trace, debug, info, warn, error, critical, or off. Rejected names leave visible and effective logging state unchanged. Runtime directory, backend, and flush-interval transitions restore their prior process-global value when sink construction fails, and startup restores the complete backend/directory/level tuple. Flush intervals must be non-negative; 0 disables periodic flushing. ## Why one PR Validation and rollback touch the same startup tuple, setters, and isolated-context regressions. Keeping them together makes the invariant reviewable in one place: validate before mutation, then restore the prior coupled state if the external sink transition fails. This supersedes sirius-db#1516; sirius-db#1517 and sirius-db#1520 were already consolidated into those two predecessor heads. ## Current public identity - prior reviewed public head: 6afa3b3 - replacement head: 2373ed6 - candidate tree: c81c11e - three-path review-repair diff SHA-256: 67a00f054e528488863a4adf60e469336f268d8d1feaeca9e4dc1ba7d5cda1a8 - current Sirius dev observed during repair: de71900; GitHub reports the replacement head mergeable ## Review repair - restores LOG_FLUSH_SECONDS on any install_configured_log_sink throw and rethrows - adds a focused invalid-directory regression that verifies the prior DuckDB-visible value, process-global value, and exact sink identity - changes the three environment pointers to auto const* - uses non-throwing std::filesystem::remove_all overloads in the affected failure-test teardown paths ## Validation - complete replacement diff independently cold-reviewed; no submodule or unrelated-source drift - targeted repository pre-commit hooks pass, including clang-format, codespell, and orphan-test validation - explicit scripts/check_orphan_tests.py, git diff --check, and git show --check pass - native C++ execution was unavailable on the Apple-arm64 author host without the Sirius Pixi/CUDA environment - replacement exact-head hosted CI passes: Check 32994600965, Test 32994601203, Distribution 32994602370, and Validate 32994766298 ### Retained predecessor hosted receipts - rollback head 19e58e4: workflow 31726205775; CUDA 13 runtime job 94536097118 and terminal aggregate job 94545844935 passed - validation head a3dfe9e: workflow 31726952876; CUDA 13 runtime job 94540138947 and terminal aggregate job 94551660464 passed ### Retained failed-head repair receipt - first consolidated head 8429111 omitted the validation predecessor's utils/log_test_utils.hpp include while retaining its scoped_recording_log_sink regression - exact-head workflows 31732638303 and 31732638391 failed compilation at test/cpp/config/test_context.cpp:350 - repaired head deb2902: workflow 31733223327; runtime job 94559525138 and aggregate job 94566061275 passed - the failed predecessor remains separately retained and receives no terminal credit ### Retained pre-review current-dev receipt - head 6afa3b3: hosted lint, GCC, Clang, CUDA 13 build/runtime, TPC-H snapshot, and terminal aggregate passed - Check 32350078769, Test 32350078679, Distribution 32350079434 --------- Co-authored-by: Abel Brown <abelb@nvidia.com>
…roseconds (sirius-db#1634) ## Description GPU parquet scans store `TIMESTAMP_MILLIS` as cuDF `TIMESTAMP_MILLISECONDS`. DuckDB `TIMESTAMP` is microseconds. The result chunk reader only compared physical `INT64` storage, so it memcpy'd millis into a microsecond vector and timestamps appeared ~1000× too close to the Unix epoch (e.g. `1970-01-11` instead of `1997-09-05`). This maps cuDF timestamp types (and `BOOL8`) in `cudf_type_to_duckdb` and casts when **logical** types differ, in both `get_next_chunk` and nested `read_into`. Verified with SpatialBench SF10 `trip.t_pickuptime` on GPU vs CPU (`1997-09-05 03:53:09` for `t_tripkey = 37529225`). ## Checklist - [x] Read CONTRIBUTING.md - [ ] Cover changes with new or existing tests - [x] Document configuration changes in code and summarize in the description above - [ ] Update human and agent documentation (README.md, docs/, skills, CLAUDE.md) ## Test plan - [ ] GPU parquet scan of a `TIMESTAMP_MILLIS` column matches DuckDB CPU values (not epoch-offset) - [ ] Existing `test_host_table_chunk_reader` still passes ## References No existing issue. Related but distinct: sirius-db#146 (result collector widening), sirius-db#1107 (StarRocks timestamp encode). --------- Co-authored-by: Patrick Wilson <611133+patdevinwilson@users.noreply.github.com>
…y support (sirius-db#1364) This is PR 1 from a stack of PRs which together will make Sirius internals be able to handle Concurrent query execution. This PR only targets a part of task_creator. It is purposefully kept small to make it easier to review. ## Summary Refactor task_creator and associated task queues to support concurrent queries: per-query state is now isolated in a keyed map so that cleanup, draining, and teardown target exactly one query without touching any other in-flight query. NOTE: this does not fully address how query teardown works for the task_creator. That will be handled later. Additionally the following constructs were added, but should be removed later and replaced by something better: std::mutex in_flight_mutex; std::condition_variable in_flight_cv; std::size_t in_flight{0}; void enter_in_flight(); void leave_in_flight(); void wait_for_in_flight(); ### Motivation Previously, task_creator held a single global execution context and a single global pipeline-state map. Cleanup on query end called interrupt() + drain() on the whole task-creation queue -- stalling every other query's producers and consumers -- and then cleared all global states in the map. This made it impossible to run more than one query concurrently through the same SiriusContext. ### What changed --- task_creator: per-query state --- - Introduced query_task_global_state: a per-query bundle holding the client context, pipeline global states, lookahead queue, and an in_flight counter (replaces _bounded_pool->wait_all() for per-query join). - set_client_context(query_id, ctx) now registers an entry in a keyed map instead of overwriting a single pointer. - prepare_for_query, schedule_lookahead, and drain_pending_tasks all look up the correct entry by query_id instead of touching shared singletons. - drain_pending_tasks(query_id) drops only that query's queued creation requests (via multi_index_priority_queue::drain(query_index)), leaving every other query's requests in the queue. The queue itself stays open -- no interrupt()/reactivate() pair. - reset(query_id) drains pending tasks, waits for in-flight lambdas to finish, then removes the entry from the map. - reset_all() iterates every registered entry and calls reset() on each; called from SiriusContext::terminate() as a safety net. --- sirius_pipeline: stamped with query id and priority --- - Added set_query_id/get_query_id and set_priority/get_priority to sirius_pipeline so that schedule() can derive queue index keys from the pipeline without taking the task_creator per-query lock on the hot path. - planner::query::build_indices stamps every pipeline with its query_id_t so the key is available before task_creator sees it. --- Shared index_keys_for extractor --- - Moved the key extraction lambda out of task_scheduler's constructor into a free function pipeline::index_keys_for (declared in gpu_pipeline_task.hpp, defined in gpu_pipeline_task.cpp). - Both task_scheduler's queue and every gpu_pipeline_executor's queue now use this single extractor, so a per-query drain(query_index{...}) targets the same tasks in both queues. - The extractor reads query_id from pipe->get_query_id() rather than unpacking the high bits of the scheduling priority; the priority only preserves 31 bits of the query id (sirius::query_priority_bits), so the unpacked value diverges from the real id once bit 31 is set, causing silent drain misses. --- itask_executor: per-query drain --- - Switched the internal queue from inspectable_mpsc to multi_index_priority_queue (using index_keys_for). - Added drain_query_tasks(query_id) which drops only that query's queued tasks without touching others. --- task_scheduler: per-query drain --- - Added drain_query_tasks(query_id) which calls drain_query_tasks on every gpu_pipeline_executor and on the scheduler's own queue. - Called from SiriusContext::run_mandatory_cleanup after task_creator::reset (producer stopped first, then queued work dropped, then query_.reset() destroys the plan). --- SiriusContext cleanup ordering --- - run_mandatory_cleanup now calls task_creator_->reset(query_id) then task_scheduler_->drain_query_tasks(query_id) before query_.reset(), ensuring no queued task or in-flight lambda holds a raw operator pointer into the plan that is about to be destroyed. - The same ordered pair runs in drop_query_runtime_state_best_effort (the noexcept error backstop). - terminate() calls reset_all() as a final safety net before destroying task_creator. --- multi_index_priority_queue --- - push() now returns bool (true = enqueued, false = dropped because interrupted). ### Tests - test_task_creator_query_state.cpp (new): lifecycle correctness for the per-query entry map -- two queries coexist, cleanup targets exactly one, reset of an unknown query is a no-op, double-reset is safe. - test_task_index_keys.cpp (new): index_keys_for derives query_id from the pipeline rather than from the priority's high bits; tasks with bit-31 set in their query id still key correctly; non-pipeline tasks get sentinel keys. - test_multi_index_priority_queue.cpp: added a case verifying that drain(query_index{...}) leaves the queue open for subsequent pushes (unlike interrupt()). - test_task_creator.cpp: updated fixture to pass query_id through set_client_context.
…ks (sirius-db#1682) Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.25.0 to 1.26.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/uuid-rs/uuid/releases">uuid's releases</a>.</em></p> <blockquote> <h2>v1.26.0</h2> <h2>What's Changed</h2> <ul> <li>Add ContextV7::with_additional_precision_bits by <a href="https://github.com/ChrisJr404"><code>@ChrisJr404</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/904">uuid-rs/uuid#904</a></li> <li>Prepare for 1.26.0 release by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/905">uuid-rs/uuid#905</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/uuid-rs/uuid/compare/1.25.0...v1.26.0">https://github.com/uuid-rs/uuid/compare/1.25.0...v1.26.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/uuid-rs/uuid/commit/cdc96a87bddc38d0eb8f894c764e151d2299b4b3"><code>cdc96a8</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/905">#905</a> from uuid-rs/cargo/v1.26.0</li> <li><a href="https://github.com/uuid-rs/uuid/commit/34e4f49c0d50c12f1b3021baf98b8fb91f6407bb"><code>34e4f49</code></a> don't test macros under miri</li> <li><a href="https://github.com/uuid-rs/uuid/commit/d9e7242b37755d844d19fa74559a88e1c46c5206"><code>d9e7242</code></a> update nightly used for miri</li> <li><a href="https://github.com/uuid-rs/uuid/commit/ec16819865b89aa3c52456c8afd0ce9a90f0fcdb"><code>ec16819</code></a> prepare for 1.26.0 release</li> <li><a href="https://github.com/uuid-rs/uuid/commit/162cd208a4521138f1d8ce05b63342ba7ba5c4e6"><code>162cd20</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/904">#904</a> from ChrisJr404/v7-additional-precision-bits</li> <li><a href="https://github.com/uuid-rs/uuid/commit/97eceffa708f87969792af604291d3e4984dfc90"><code>97eceff</code></a> Add ContextV7::with_additional_precision_bits for microsecond clocks</li> <li>See full diff in <a href="https://github.com/uuid-rs/uuid/compare/1.25.0...v1.26.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.25.0 to 1.26.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/uuid-rs/uuid/releases">uuid's releases</a>.</em></p> <blockquote> <h2>v1.26.0</h2> <h2>What's Changed</h2> <ul> <li>Add ContextV7::with_additional_precision_bits by <a href="https://github.com/ChrisJr404"><code>@ChrisJr404</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/904">uuid-rs/uuid#904</a></li> <li>Prepare for 1.26.0 release by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/905">uuid-rs/uuid#905</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/uuid-rs/uuid/compare/1.25.0...v1.26.0">https://github.com/uuid-rs/uuid/compare/1.25.0...v1.26.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/uuid-rs/uuid/commit/cdc96a87bddc38d0eb8f894c764e151d2299b4b3"><code>cdc96a8</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/905">#905</a> from uuid-rs/cargo/v1.26.0</li> <li><a href="https://github.com/uuid-rs/uuid/commit/34e4f49c0d50c12f1b3021baf98b8fb91f6407bb"><code>34e4f49</code></a> don't test macros under miri</li> <li><a href="https://github.com/uuid-rs/uuid/commit/d9e7242b37755d844d19fa74559a88e1c46c5206"><code>d9e7242</code></a> update nightly used for miri</li> <li><a href="https://github.com/uuid-rs/uuid/commit/ec16819865b89aa3c52456c8afd0ce9a90f0fcdb"><code>ec16819</code></a> prepare for 1.26.0 release</li> <li><a href="https://github.com/uuid-rs/uuid/commit/162cd208a4521138f1d8ce05b63342ba7ba5c4e6"><code>162cd20</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/904">#904</a> from ChrisJr404/v7-additional-precision-bits</li> <li><a href="https://github.com/uuid-rs/uuid/commit/97eceffa708f87969792af604291d3e4984dfc90"><code>97eceff</code></a> Add ContextV7::with_additional_precision_bits for microsecond clocks</li> <li>See full diff in <a href="https://github.com/uuid-rs/uuid/compare/1.25.0...v1.26.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…e-side compaction (sirius-db#1556) # perf(scan): cache MVCC keep-masks by version, compose them into decode-side compaction **Rebased onto `dev`; one commit, no stacking.** This PR was originally stacked on sirius-db#1409, which @joosthooz reimplemented as sirius-db#1474 (decompression pushdown) and sirius-db#1524 (late materialization). It also carried a per-chunk MVCC gating commit that has since landed independently as sirius-db#1555. Both bases are now in `dev`, so what remains here is a single commit re-derived against the current architecture. ## Problem A table with committed deletes paid for its visibility keep-mask twice: 1. **The mask set was rebuilt on every query** — visibility-plan capture, `GetSelVector` fill, pinned carve — even when nothing had changed since the last build. The visible state of a table only changes at commits, so this is repeated work at an unchanged version. 2. **Every masked chunk gave up decode-side compaction**, falling back to a full-width decode plus filter-by-copy. sirius-db#1555 fixed the *over*-gating (an entry with any MVCC state disabled the pushdown for all its chunks, including unmasked ones), but a genuinely masked chunk still lost compaction outright. ## Change ### Part 1 — per-entry keep-mask version cache (`mvcc_mask_cache.hpp`) `prepare_for_query` probes and publishes a single-version cache on the pinned entry, keyed by `{DuckTransactionManager::GetLastCommit, the querying transaction's start_time, ChangesMade}`. - **Reuse** requires an unchanged `last_commit`, a covering snapshot, and a writer-free query. - **Publishing** additionally requires the builder's snapshot to cover every existing commit — a writer sees its own uncommitted deletes, so its masks encode visibility private to it. This is exact because DuckDB assigns start times and commit ids from one counter under the lock that publishes `last_commit`: a concurrent commit receives an id above the builder's snapshot and increments `last_commit` before any transaction that could observe it begins. `prepare_mvcc_mask_tasks` skips `masks_ready` requests; a (re-)pin resets the cache. Disable with `SIRIUS_MVCC_MASK_CACHE=0`. ### Part 2 — compose the keep-mask into decode-side compaction Extends the per-chunk gate from **exclusion** to **composition**: rather than stripping row selection from a masked chunk, attach the mask and let the decode AND it into the same selection. - `decode_visibility_mask` attaches to both compressed representations; the cached provider attaches it per masked chunk (device and host tiers) alongside the pushdown scan. - `decompress_chunk` takes the mask as a parameter — it is per chunk, while `decompression_pushdown_scan` is per scan — and hands the host words to the wave orchestrator. - `scan_filter_request` carries the words; the orchestrator uploads them on s0 and ANDs them in as one additional combine source, appended last so source 0's zero tail survives. `scan_filter_result::keep_mask_applied` echoes it, and only when `status == applied`. - `pushdown_outcome::visibility_mask_applied` carries the consumption signal. `prepare_for_processing` clears the split's mask on it, re-enabling the zero-copy steal; the backstop still throws on a compacted batch with an unconsumed mask. - The `mvcc_chunk_mask` padding contract tightens from don't-care to zero. The job already zeroed its carves; the selection tail-zero invariant now depends on it. A mask is never a filter source on its own: with no real filter the survivor rate is just the visible-row fraction, so compaction costs more than it saves and such a request is refused. Every non-applied outcome — refusal, selectivity bail, failure, feature off — keeps the full-width decode and the scan-side positional mask. ## Notes on the rebase sirius-db#1524 rewrote the APIs this work sits on, so the port was not mechanical: - `decode_pushdown.hpp` is gone; `decode_visibility_mask` now lives in `compressed_scan.hpp`. - The three applied-batch carrier classes collapsed in `dev` into one value-carrying `pushdown_outcome`, so the consumption signal is a field on that outcome rather than the original `visibility_applied_gpu_table_representation` plus two per-class flags. The invariant still holds: `try_decompress_fused` is the only place that sets `applied = true`, and it sets `keep_mask_applied` in the same statement. - `set_range_pushdown`/`set_membership_pushdown` became `set_pushdown_scan`. ## Testing - Clean build. - `[scan_manager] [cached_serving] [decode] [scan] [dynamic_filter]`: 581/581. - Full C++ unit suite: 3025/3025. - Full pre-commit hook set passes. - Tests added: `test_mvcc_mask_job.cpp` covers the cache-key truth table and the `masks_ready` skip; `test_cached_serving_hardening.cpp` covers per-chunk composition (a masked slot gets the pushdown **and** its visibility mask, sharing the slot's words; a default slot gets the pushdown alone). ## Not yet measured⚠️ Earlier revisions of this description quoted SF1000 deltas for the recovered mask-serving overhead. Those were measured against the original sirius-db#1409 stack, before sirius-db#1474/sirius-db#1524 rewrote the decode path and before sirius-db#1555 landed, so they no longer describe this change. They have been removed rather than restated, and the change should be re-measured before merge. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
## Motivation PR sirius-db#1660 added a repository-local Claude skill for producing navigable learning digests of pull requests. Codex users should have the equivalent workflow available from the repository, with Codex-native discovery and sandbox handling. Reviewers also benefit from seeing the behavioral change and system flow before implementation detail. The improvements developed for the Codex version are also applied back to the Claude skill so both agents produce the same digest structure, writing style, diagrams, Markdown source, and HTML preview. Only their sandbox instructions, renderer path, and preview wording differ. Codex opens Markdown files as source, so viewer-selected syntax highlighting does not reliably show additions in green and removals in red. The skill now generates a companion HTML preview to make that presentation deterministic while preserving Markdown as the canonical, portable artifact. ## What changed - add the `pr-digest` skill under `.agents/skills/` for repository-wide Codex discovery - bring `.claude/skills/pr-digest/` to feature and writing-style parity with the Codex skill - keep the renderer, worked example, and plain-language guide byte-identical between both packages - translate the Claude-specific sandbox bypass into Codex elevated `gh` execution - require a grounded before/after example and compact Mermaid flowchart before the key-change deep dive - connect diagram concepts to line-accurate source anchors - write for engineers who are new to the subsystem: define acronyms and unavoidable terms, use behavior-focused headings, and explain each mechanism as actor, action, and consequence - add a PR-specific plain-language guide with concrete jargon rewrites and a final readability check - preserve standard fenced `diff` blocks with `+` and `-` markers in the Markdown source - require both `PR_digest_<N>.md` and a generated, self-contained `PR_digest_<N>.html` preview - add a standard-library renderer that converts diff rows to explicit green/red styling and simple Mermaid flowcharts to accessible inline SVG - keep the HTML free of remote scripts, styles, and images, and reject executable link schemes - include an updated PR sirius-db#1277 worked example and Codex UI metadata - exclude the illustrative reference digest from repository `rumdl` link validation because its links target the historical PR checkout ## Verification - Codex `quick_validate.py`: `Skill is valid!` - Claude `quick_validate.py`: `Skill is valid!` - `rumdl` 0.2.44: no issues in the updated skill instructions - Black 25.1.0: renderer is formatted - repository pre-commit hooks applicable to the changed files pass; the unavailable `pixi` wrapper was replaced by the equivalent direct `rumdl` invocation - renderer exercised against the PR sirius-db#1277 worked example: 9 diff blocks, 181 additions, 14 removals, and 1 inline flowchart - revised format exercised against PR sirius-db#1556 at commit `96ad7c54385691389b06b73767149f77417569ae`: 6 diff blocks, 86 additions, 4 removals, and 1 inline flowchart - both agent-local renderers produce the same counts for the PR sirius-db#1277 and PR sirius-db#1556 fixtures - revised the PR sirius-db#1556 digest's title, summary, before/after table, diagram, change headings, and detailed prose using the new plain-language guide - verified every internal HTML navigation target resolves and neither preview contains remote executable assets - validated all 41 unique PR sirius-db#1556 local source-line links against that checkout - `git diff --check` ## Scope This is a documentation and agent-workflow change only. No Sirius build or C++ tests were run. Generated files under `PR_digests/` remain ignored local review artifacts. The skill explains what a PR changes and where it lives; adversarial code review remains a separate pass.
…starrocks (sirius-db#1722) Bumps [mysql_async](https://github.com/blackbeam/mysql_async) from 0.37.0 to 0.37.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/blackbeam/mysql_async/releases">mysql_async's releases</a>.</em></p> <blockquote> <h2>v0.37.1</h2> <p>Fix data race in statement cache (see <a href="https://redirect.github.com/blackbeam/mysql_async/issues/406">#406</a>)</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/blackbeam/mysql_async/compare/v0.37.0...v0.37.1">https://github.com/blackbeam/mysql_async/compare/v0.37.0...v0.37.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/blackbeam/mysql_async/commit/ce4b27698c50fb945d8c9ff8c40a2a646be50b12"><code>ce4b276</code></a> bump micro version</li> <li><a href="https://github.com/blackbeam/mysql_async/commit/8b82d368d36d97897e546ed1cb6dcba9285e114b"><code>8b82d36</code></a> Fix UB by replacing incorrectly implemented <code>ColumnsArcPtr</code> by <code>arc_swap</code> (fi...</li> <li>See full diff in <a href="https://github.com/blackbeam/mysql_async/compare/v0.37.0...v0.37.1">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…-db#1680) Bumps [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi) from 0.10.1 to 0.10.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/prefix-dev/setup-pixi/releases">prefix-dev/setup-pixi's releases</a>.</em></p> <blockquote> <h2>v0.10.2</h2> <h2>What's Changed</h2> <h3>✨ New features</h3> <ul> <li>feat: Add support for linux-riscv64 by <a href="https://github.com/pavelzw"><code>@pavelzw</code></a> in <a href="https://redirect.github.com/prefix-dev/setup-pixi/pull/282">prefix-dev/setup-pixi#282</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/prefix-dev/setup-pixi/compare/v0.10.1...v0.10.2">https://github.com/prefix-dev/setup-pixi/compare/v0.10.1...v0.10.2</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/prefix-dev/setup-pixi/commit/d3f436a425481402e6a95a1d1fc10331c708cd9e"><code>d3f436a</code></a> feat: Add support for linux-riscv64 (<a href="https://redirect.github.com/prefix-dev/setup-pixi/issues/282">#282</a>)</li> <li>See full diff in <a href="https://github.com/prefix-dev/setup-pixi/compare/f00437f565399d418b0acc85936d12c1fb668347...d3f436a425481402e6a95a1d1fc10331c708cd9e">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…irius-db#1727) `MAX_INDICES = 1 << 28` was a stale sanity bound predating the HyperLogLog cardinality gate that now guards the real hazard (cudf::dictionary::encode's illegal access on huge high-cardinality inputs) by distinct fraction rather than row count. The row cap only silently forced narrow, high-row-count pins (e.g. TPC-H q12's 5-column lineitem pin at ~276M rows/chunk, orders pins at ~600-900M) to an uncompressed fallback. Dictionary codes index the key set, not rows, so any column a cudf column_view can represent already encodes; replace the cap with size_type max. Add a per-pin "N/M chunk(s) compressed" INFO line in both the host and device materialize paths. A per-chunk encode failure only WARNs today and silently pins that chunk raw — this class of degradation should never be silent. Extracted from Felipe's sirius-db#1391 (exp/fused-scan-filter), where these were bundled with unrelated explorer and scan-manager diagnostic changes. ## Description ## Checklist - [x] Read CONTRIBUTING.md and ensure PR meets "reviewability" checklist - [x] Cover changes with new or existing tests - [x] Document configuration changes in code and summarize in the description above - [ ] Update human and agent documentation (README.md, docs/, skills, CLAUDE.md) ## References --------- Co-authored-by: Felipe Aramburu <faramburu@nvidia.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
## Summary - add a per-call `compression` named parameter to `CALL pin_table(...)` - make explicit `compression=true/false` override the existing `pin_table_compression` setting - keep `pin_table_compression` as the compatibility default when the argument is omitted - update Super Sirius docs and add regression coverage for both override directions and the empty-plan-dir fallback ## Configuration/API surface `CALL pin_table(..., compression => true/false)` is now the preferred way to request or suppress Simpatico compression for a specific pin. Existing `pin_table_compression` YAML/SET behavior remains as the default for calls that omit the new argument. Backward compatibility is covered by the existing compression tests as well: many existing cases set `pin_table_compression = true` and then call `pin_table` without a `compression` argument. The full `[compression][pin_table]` suite passing below exercises that omitted-argument fallback alongside the new explicit-argument override test. Closes sirius-db#1358 ## Validation - `git diff --check` - Remote GPU validation at `efda095a`, GPU `NVIDIA GeForce RTX 5060 Ti`, driver `595.84`: - `CUDAARCHS=120 CMAKE_BUILD_PARALLEL_LEVEL=2 pixi run make` — passed. The initial high-parallel build failed silently during CUDA compilation, and the testcontainers Go bridge needed an existing local Go module cache because external Go module downloads timed out on the node; after lowering parallelism and reusing the cache, the release build and `sirius_unittest` linked successfully. - `pixi run build/release/extension/sirius/test/cpp/sirius_unittest "[compression][pin_table]"` — passed, 1224 assertions / 29 test cases. This includes `pin_table compression - compression parameter overrides session setting` and `pin_table compression - empty plan dir pins uncompressed`. - `pixi run build/release/extension/sirius/test/cpp/sirius_unittest "[config]"` — passed, 688 assertions / 66 test cases. - Additional remote GPU checks at `03d26110`, GPU `NVIDIA RTX PRO 4500 Blackwell`, driver `580.159.04`: - `CUDAARCHS=120 CMAKE_BUILD_PARALLEL_LEVEL=48 pixi run make` — passed. - `pixi run build/release/extension/sirius/test/cpp/sirius_unittest "[compression][plan_register]"` — passed, 16 assertions / 6 test cases. - `pixi run build/release/extension/sirius/test/cpp/sirius_unittest "Sirius configuration rejects invalid compression retention fractions"` — passed, 3 assertions / 1 test case. - `pixi run build/release/extension/sirius/test/cpp/sirius_unittest "Sirius configuration accepts intentional compression retention fraction boundaries"` — passed, 4 assertions / 1 test case. - SQL smoke with a single-GPU `scan_manager.use_sirius_datasource=false` config: created a parquet input and matching Simpatico plan files, then verified `compression=true` overrides `pin_table_compression=false` and `compression=false` overrides `pin_table_compression=true`. The command succeeded and Sirius logs showed compression only for `t_param_on`, not for `t_param_off`. - Pod limitation: full C++ `[compression][pin_table]` and broad `[config]` aborted there when test-generated/default YAMLs initialized Sirius' local `io_uring` datasource: `uring_reactor: ring init: Operation not permitted`. The pod reported `kernel.io_uring_disabled = 0`, so this appeared to be a container syscall/capability restriction. The successful remote GPU validation at `efda095a` above covers those previously blocked suites. - Not run locally: `pixi run ...` build/tests/pre-commit, because this local machine is macOS ARM while the repo declares Linux CUDA pixi platforms. --------- Co-authored-by: Aaron Wu <Aaron.Wu@dell.com> Co-authored-by: Yu <ranyuan_jin@outlook.com>
…rius-db#1439) ## Summary - Captures Sirius, libcudf, and CCCL NVTX events in both supported deployments without a sidecar injection DSO: - **Vanilla DuckDB + `LOAD`** exports Quent's initializer from the Sirius extension and points NVTX at that DSO before the first NVTX call. - **Statically linked Sirius** exports the same initializer from DuckDB and maps a Sirius-private NVTX injection token to the running executable, while forwarding every other `dlopen` unchanged. - Honors `SIRIUS_DISABLE` and `enable_quent: false` by skipping automatic injection; otherwise preserves configuration precedence: `NVTX_INJECTION64_PATH`, then `sirius.telemetry.nvtx_injection_lib`, then automatic discovery. - Mounts Quent's NVTX catalog/viewport routes and pins Quent to `381e1be0`, which includes [quent#544](rapidsai/quent#544) and the `nvtx-sys` build fix from [quent#697](rapidsai/quent#697). Generalized schema work remains tracked by [quent#618](rapidsai/quent#618). ## Verification - `pixi run make` - `pixi run make test` — 3,080 test cases and 32,833,137 assertions passed - `pixi run pre-commit run -a` - TPC-H SF10 Q1 produced the exact same NVTX range/count signature in both modes: 812 complete ranges across Sirius/default, libcudf, and CCCL, with zero incomplete ranges or reconstruction anomalies. --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
I noticed the nightly build is failing with this build error ([CI logs](https://github.com/sirius-db/sirius/actions/runs/34493208048/job/102924945721)): ``` /home/runner/actions-runner/_work/sirius/sirius/src/expression_evaluator/specializations/function.cpp: In member function 'sirius::evaluate_result sirius::expression_evaluator::evaluate(const sirius::ast::function_call&, evaluation_mode)': /home/runner/actions-runner/_work/sirius/sirius/src/expression_evaluator/specializations/function.cpp:189:35: error: call of overloaded 'slice_strings(const cudf::strings_column_view&, const int&, const int&, int, rmm::_RMM_26_12::cuda_stream_view&, rmm::_RMM_26_12::device_async_resource_ref&)' is ambiguous 189 | cudf::strings::slice_strings(input_strings, start_val, stop_val, 1, _stream, _mr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/runner/actions-runner/_work/sirius/sirius/src/expression_evaluator/specializations/function.cpp:189:35: note: there are 2 candidates In file included from /home/runner/actions-runner/_work/sirius/sirius/src/expression_evaluator/specializations/function.cpp:44: /home/runner/actions-runner/_work/sirius/sirius/envs/nightly/.pixi/envs/default/include/cudf/strings/slice.hpp:64:1: note: candidate 1: 'std::unique_ptr<cudf::column> cudf::strings::slice_strings(const cudf::strings_column_view&, const cudf::numeric_scalar<int>&, const cudf::numeric_scalar<int>&, const cudf::numeric_scalar<int>&, cuda::__4::stream_ref, rmm::_RMM_26_12::device_async_resource_ref)' 64 | slice_strings(strings_column_view const& input, | ^~~~~~~~~~~~~ /home/runner/actions-runner/_work/sirius/sirius/envs/nightly/.pixi/envs/default/include/cudf/strings/slice.hpp:100:25: note: candidate 2: 'std::unique_ptr<cudf::column> cudf::strings::slice_strings(const cudf::strings_column_view&, std::optional<int>, std::optional<int>, std::optional<int>, cuda::__4::stream_ref, rmm::_RMM_26_12::device_async_resource_ref)' 100 | std::unique_ptr<column> slice_strings( | ^~~~~~~~~~~~~ ``` cuDF nightly added new `std::optional` overloads for `slice_strings`. Passing integer bounds made overload resolution ambiguous and broke nightly CI builds. This PR explicitly wraps the bounds in `std::optional<cudf::size_type>` for newer cuDF. --------- Signed-off-by: James Bourbeau <jbourbeau@nvidia.com>
…irius-db#1725) ## Description When a `count(*)` query reaches Sirius's parquet scan without requesting data columns, the scan currently reads and decodes every column just to obtain the row count. Queries that DuckDB already answers from metadata are unaffected. This PR reads one **row-count carrier** instead: the narrowest fixed-width, non-partition column in the bind schema, ties resolved to the lowest schema position. The same choice applies to scans requesting only partition or virtual columns. cuDF cannot preserve a row count in a zero-column table, so at least one column must remain. The carrier is read as a data column with no output entry, the same shape as a pure-filter column, so output assembly and partition injection are unchanged. Selection uses decoded type width, not compressed size. Files that lack the carrier column, or have no row groups to resolve it against, fall back to full-width reads. Fallback estimates use bind-type widths for matching fixed-width, non-partition top-level columns, and parquet metadata for the rest. The coalescer keeps projected and full-width files in separate splits. Schemas without an eligible fixed-width column keep the existing behavior. Footer-only counting is outside this change. No configuration changes; `docs/super-sirius/scan.md` is updated. **Validation.** Tests cover carrier selection, unchanged real projections and nested reads, missing-column fallback and memory sizing, partition-named file columns, and coalescing across reader-option changes. GPU results are checked against DuckDB CPU for flat, filtered, partitioned and multi-file counts, including empty files, all-VARCHAR schemas, schema evolution and an entirely NULL carrier. All gates passed: - `[carrier]`: 19 cases / 885 assertions. - `[scan][parquet]`: 68 cases / 40,871 assertions. - `make test`: 3,098 cases / 32,795,381 assertions. - `make s3-test`: 92 cases. - Pre-commit clean. **Timing.** Local-file `SELECT count(*) FROM read_parquet(...)` on an RTX 3060. Both GPU runs disable `statistics_propagation` to keep the scan in the plan. Each binary gets one warm-up and three timed runs in the same session; results below are medians. The dev binary is `5201d9c3`, which differs from this branch's base only by sirius-db#1719. | File | dev | This PR | DuckDB CPU (metadata only) | | --- | --- | --- | --- | | TPC-H SF1 lineitem, 6.0M rows / 49 row groups | 0.452 s | 0.031 s | 0.004 s | | TPC-H SF10 lineitem, 60.0M rows / 489 row groups | 4.249 s | 0.238 s | 0.014 s | These numbers compare the local scan path, not cold S3 throughput. The CPU timings are a metadata-only reference. ## Checklist - [x] Read CONTRIBUTING.md and ensure PR meets "reviewability" checklist - [x] Cover changes with new or existing tests - [x] Document configuration changes in code and summarize in the description above (none) - [x] Update human and agent documentation (README.md, docs/, skills, CLAUDE.md): `docs/super-sirius/scan.md` ## References Closes sirius-db#1723
…db#1759) Bumps [arrow-array](https://github.com/apache/arrow-rs) from 59.2.0 to 59.3.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/apache/arrow-rs/releases">arrow-array's releases</a>.</em></p> <blockquote> <h2>arrow 59.3.0</h2> <h1>Changelog</h1> <h2><a href="https://github.com/apache/arrow-rs/tree/59.3.0">59.3.0</a> - (2026-08-25)</h2> <p><a href="https://github.com/apache/arrow-rs/compare/59.2.0...59.3.0">Full Changelog</a></p> <h3>Security fixes</h3> <ul> <li>[59_maintenance] Backport <code>cargo audit</code> fix by updating <code>h2</code> dependency by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10834">#10834</a></li> </ul> <h3>Bug fixes</h3> <ul> <li>[59_maintenance] Backport fix for concat_run_arrays with all-empty run arrays by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10828">#10828</a></li> <li>[59_maintenance] Backport fix for DELTA_BYTE_ARRAY dedup with values larger than the page size limit by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10826">#10826</a></li> <li>[59_maintenance] Backport fix for cached Mask reads crossing unloaded sparse pages by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10766">#10766</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/apache/arrow-rs/blob/main/CHANGELOG.md">arrow-array's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/apache/arrow-rs/tree/59.3.0">59.3.0</a> - (2026-08-25)</h2> <p><a href="https://github.com/apache/arrow-rs/compare/59.2.0...59.3.0">Full Changelog</a></p> <h3>Security fixes</h3> <ul> <li>[59_maintenance] Backport <code>cargo audit</code> fix by updating <code>h2</code> dependency by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10834">#10834</a></li> </ul> <h3>Bug fixes</h3> <ul> <li>[59_maintenance] Backport fix for concat_run_arrays with all-empty run arrays by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10828">#10828</a></li> <li>[59_maintenance] Backport fix for DELTA_BYTE_ARRAY dedup with values larger than the page size limit by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10826">#10826</a></li> <li>[59_maintenance] Backport fix for cached Mask reads crossing unloaded sparse pages by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10766">#10766</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/apache/arrow-rs/commit/f90e061326bd821a7af09281d9e92de6f3b603d9"><code>f90e061</code></a> [59_maintenance] Backport parquet-testing revision update for ALP tests (<a href="https://redirect.github.com/apache/arrow-rs/issues/10871">#10871</a>)</li> <li><a href="https://github.com/apache/arrow-rs/commit/8061c9cb7a35cd9df2262ffa4b424174837b048d"><code>8061c9c</code></a> [59_maintenance] chore: Update versions to <code>59.3.0</code> and add CHANGELOG (<a href="https://redirect.github.com/apache/arrow-rs/issues/10827">#10827</a>)</li> <li><a href="https://github.com/apache/arrow-rs/commit/23673b8206bb5893e64c6fed4fd574c1a5bca615"><code>23673b8</code></a> [59_maintenance] Backport <code>cargo audit</code> fix by updating <code>h2</code> dependency (<a href="https://redirect.github.com/apache/arrow-rs/issues/10834">#10834</a>)</li> <li><a href="https://github.com/apache/arrow-rs/commit/e4e1237feb74ac8af3ee42f0026d0a55daf90dad"><code>e4e1237</code></a> [59_maintenance] Backport fix for concat_run_arrays with all-empty run arrays...</li> <li><a href="https://github.com/apache/arrow-rs/commit/556186a5e5a9b3c399ab4841db7f03fdfca0ff4c"><code>556186a</code></a> [59_maintenance] Backport fix for DELTA_BYTE_ARRAY dedup with values larger t...</li> <li><a href="https://github.com/apache/arrow-rs/commit/a878590477cc62964ea65c3da09cb289868675d5"><code>a878590</code></a> [59_maintenance] Backport fix for cached Mask reads crossing unloaded sparse ...</li> <li>See full diff in <a href="https://github.com/apache/arrow-rs/compare/59.2.0...59.3.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [cxx](https://github.com/dtolnay/cxx) from 1.0.199 to 1.0.200. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dtolnay/cxx/releases">cxx's releases</a>.</em></p> <blockquote> <h2>1.0.200</h2> <ul> <li>Do not classify references as guaranteed POD (<a href="https://redirect.github.com/dtolnay/cxx/issues/1754">#1754</a>, thanks <a href="https://github.com/anforowicz"><code>@anforowicz</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/dtolnay/cxx/commit/30ac7296e557ca0d5cd34d959b8e9848c10f4af4"><code>30ac729</code></a> Release 1.0.200</li> <li><a href="https://github.com/dtolnay/cxx/commit/6d6f6d3d064162b92a2ce2366f7983949fea0a0c"><code>6d6f6d3</code></a> Resolve doc_markdown pedantic clippy lint in test</li> <li><a href="https://github.com/dtolnay/cxx/commit/ae8b4ad74bf7285a9d2916abe35eee404193208f"><code>ae8b4ad</code></a> Format PR 1754 with rustfmt</li> <li><a href="https://github.com/dtolnay/cxx/commit/17ba0ccf297b519bade8a4685f40ceee9f59e1e6"><code>17ba0cc</code></a> Merge pull request 1754 from anforowicz/return-type-c-linkage</li> <li><a href="https://github.com/dtolnay/cxx/commit/1dbe319cce02aa41a846f360045bc47eaf7ac33d"><code>1dbe319</code></a> Do not classify references as guaranteed POD</li> <li><a href="https://github.com/dtolnay/cxx/commit/ba7f83a3829919c5b011e8f4e2336fb9a3452aef"><code>ba7f83a</code></a> Bump Bazel build to rustc 1.98.1</li> <li><a href="https://github.com/dtolnay/cxx/commit/4d9bee0ed5525094499c32e0c08f4648dcbec487"><code>4d9bee0</code></a> Bazel rules_rust 0.74.0</li> <li><a href="https://github.com/dtolnay/cxx/commit/8ec18748a7a79af1618c5e863cfb96cdfc28e9f7"><code>8ec1874</code></a> Use C++17 nested namespace syntax in book</li> <li><a href="https://github.com/dtolnay/cxx/commit/7c6d4981fa00df9b157a1cc8674f890845959f8b"><code>7c6d498</code></a> Update wasi-sdk to 34.0</li> <li><a href="https://github.com/dtolnay/cxx/commit/524707cfe7d6b62a838766175f76b02a73e03010"><code>524707c</code></a> Merge pull request <a href="https://redirect.github.com/dtolnay/cxx/issues/1750">#1750</a> from dtolnay/go</li> <li>Additional commits viewable in <a href="https://github.com/dtolnay/cxx/compare/1.0.199...1.0.200">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
) Bumps [parquet](https://github.com/apache/arrow-rs) from 59.2.0 to 59.3.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/apache/arrow-rs/releases">parquet's releases</a>.</em></p> <blockquote> <h2>arrow 59.3.0</h2> <h1>Changelog</h1> <h2><a href="https://github.com/apache/arrow-rs/tree/59.3.0">59.3.0</a> - (2026-08-25)</h2> <p><a href="https://github.com/apache/arrow-rs/compare/59.2.0...59.3.0">Full Changelog</a></p> <h3>Security fixes</h3> <ul> <li>[59_maintenance] Backport <code>cargo audit</code> fix by updating <code>h2</code> dependency by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10834">#10834</a></li> </ul> <h3>Bug fixes</h3> <ul> <li>[59_maintenance] Backport fix for concat_run_arrays with all-empty run arrays by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10828">#10828</a></li> <li>[59_maintenance] Backport fix for DELTA_BYTE_ARRAY dedup with values larger than the page size limit by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10826">#10826</a></li> <li>[59_maintenance] Backport fix for cached Mask reads crossing unloaded sparse pages by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10766">#10766</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/apache/arrow-rs/blob/main/CHANGELOG.md">parquet's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/apache/arrow-rs/tree/59.3.0">59.3.0</a> - (2026-08-25)</h2> <p><a href="https://github.com/apache/arrow-rs/compare/59.2.0...59.3.0">Full Changelog</a></p> <h3>Security fixes</h3> <ul> <li>[59_maintenance] Backport <code>cargo audit</code> fix by updating <code>h2</code> dependency by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10834">#10834</a></li> </ul> <h3>Bug fixes</h3> <ul> <li>[59_maintenance] Backport fix for concat_run_arrays with all-empty run arrays by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10828">#10828</a></li> <li>[59_maintenance] Backport fix for DELTA_BYTE_ARRAY dedup with values larger than the page size limit by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10826">#10826</a></li> <li>[59_maintenance] Backport fix for cached Mask reads crossing unloaded sparse pages by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10766">#10766</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/apache/arrow-rs/commit/f90e061326bd821a7af09281d9e92de6f3b603d9"><code>f90e061</code></a> [59_maintenance] Backport parquet-testing revision update for ALP tests (<a href="https://redirect.github.com/apache/arrow-rs/issues/10871">#10871</a>)</li> <li><a href="https://github.com/apache/arrow-rs/commit/8061c9cb7a35cd9df2262ffa4b424174837b048d"><code>8061c9c</code></a> [59_maintenance] chore: Update versions to <code>59.3.0</code> and add CHANGELOG (<a href="https://redirect.github.com/apache/arrow-rs/issues/10827">#10827</a>)</li> <li><a href="https://github.com/apache/arrow-rs/commit/23673b8206bb5893e64c6fed4fd574c1a5bca615"><code>23673b8</code></a> [59_maintenance] Backport <code>cargo audit</code> fix by updating <code>h2</code> dependency (<a href="https://redirect.github.com/apache/arrow-rs/issues/10834">#10834</a>)</li> <li><a href="https://github.com/apache/arrow-rs/commit/e4e1237feb74ac8af3ee42f0026d0a55daf90dad"><code>e4e1237</code></a> [59_maintenance] Backport fix for concat_run_arrays with all-empty run arrays...</li> <li><a href="https://github.com/apache/arrow-rs/commit/556186a5e5a9b3c399ab4841db7f03fdfca0ff4c"><code>556186a</code></a> [59_maintenance] Backport fix for DELTA_BYTE_ARRAY dedup with values larger t...</li> <li><a href="https://github.com/apache/arrow-rs/commit/a878590477cc62964ea65c3da09cb289868675d5"><code>a878590</code></a> [59_maintenance] Backport fix for cached Mask reads crossing unloaded sparse ...</li> <li>See full diff in <a href="https://github.com/apache/arrow-rs/compare/59.2.0...59.3.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…cks (sirius-db#1756) Bumps [cxx](https://github.com/dtolnay/cxx) from 1.0.199 to 1.0.200. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dtolnay/cxx/releases">cxx's releases</a>.</em></p> <blockquote> <h2>1.0.200</h2> <ul> <li>Do not classify references as guaranteed POD (<a href="https://redirect.github.com/dtolnay/cxx/issues/1754">#1754</a>, thanks <a href="https://github.com/anforowicz"><code>@anforowicz</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/dtolnay/cxx/commit/30ac7296e557ca0d5cd34d959b8e9848c10f4af4"><code>30ac729</code></a> Release 1.0.200</li> <li><a href="https://github.com/dtolnay/cxx/commit/6d6f6d3d064162b92a2ce2366f7983949fea0a0c"><code>6d6f6d3</code></a> Resolve doc_markdown pedantic clippy lint in test</li> <li><a href="https://github.com/dtolnay/cxx/commit/ae8b4ad74bf7285a9d2916abe35eee404193208f"><code>ae8b4ad</code></a> Format PR 1754 with rustfmt</li> <li><a href="https://github.com/dtolnay/cxx/commit/17ba0ccf297b519bade8a4685f40ceee9f59e1e6"><code>17ba0cc</code></a> Merge pull request 1754 from anforowicz/return-type-c-linkage</li> <li><a href="https://github.com/dtolnay/cxx/commit/1dbe319cce02aa41a846f360045bc47eaf7ac33d"><code>1dbe319</code></a> Do not classify references as guaranteed POD</li> <li><a href="https://github.com/dtolnay/cxx/commit/ba7f83a3829919c5b011e8f4e2336fb9a3452aef"><code>ba7f83a</code></a> Bump Bazel build to rustc 1.98.1</li> <li><a href="https://github.com/dtolnay/cxx/commit/4d9bee0ed5525094499c32e0c08f4648dcbec487"><code>4d9bee0</code></a> Bazel rules_rust 0.74.0</li> <li><a href="https://github.com/dtolnay/cxx/commit/8ec18748a7a79af1618c5e863cfb96cdfc28e9f7"><code>8ec1874</code></a> Use C++17 nested namespace syntax in book</li> <li><a href="https://github.com/dtolnay/cxx/commit/7c6d4981fa00df9b157a1cc8674f890845959f8b"><code>7c6d498</code></a> Update wasi-sdk to 34.0</li> <li><a href="https://github.com/dtolnay/cxx/commit/524707cfe7d6b62a838766175f76b02a73e03010"><code>524707c</code></a> Merge pull request <a href="https://redirect.github.com/dtolnay/cxx/issues/1750">#1750</a> from dtolnay/go</li> <li>Additional commits viewable in <a href="https://github.com/dtolnay/cxx/compare/1.0.199...1.0.200">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…starrocks (sirius-db#1755) Bumps [arrow-array](https://github.com/apache/arrow-rs) from 59.2.0 to 59.3.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/apache/arrow-rs/releases">arrow-array's releases</a>.</em></p> <blockquote> <h2>arrow 59.3.0</h2> <h1>Changelog</h1> <h2><a href="https://github.com/apache/arrow-rs/tree/59.3.0">59.3.0</a> - (2026-08-25)</h2> <p><a href="https://github.com/apache/arrow-rs/compare/59.2.0...59.3.0">Full Changelog</a></p> <h3>Security fixes</h3> <ul> <li>[59_maintenance] Backport <code>cargo audit</code> fix by updating <code>h2</code> dependency by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10834">#10834</a></li> </ul> <h3>Bug fixes</h3> <ul> <li>[59_maintenance] Backport fix for concat_run_arrays with all-empty run arrays by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10828">#10828</a></li> <li>[59_maintenance] Backport fix for DELTA_BYTE_ARRAY dedup with values larger than the page size limit by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10826">#10826</a></li> <li>[59_maintenance] Backport fix for cached Mask reads crossing unloaded sparse pages by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10766">#10766</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/apache/arrow-rs/blob/main/CHANGELOG.md">arrow-array's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/apache/arrow-rs/tree/59.3.0">59.3.0</a> - (2026-08-25)</h2> <p><a href="https://github.com/apache/arrow-rs/compare/59.2.0...59.3.0">Full Changelog</a></p> <h3>Security fixes</h3> <ul> <li>[59_maintenance] Backport <code>cargo audit</code> fix by updating <code>h2</code> dependency by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10834">#10834</a></li> </ul> <h3>Bug fixes</h3> <ul> <li>[59_maintenance] Backport fix for concat_run_arrays with all-empty run arrays by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10828">#10828</a></li> <li>[59_maintenance] Backport fix for DELTA_BYTE_ARRAY dedup with values larger than the page size limit by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10826">#10826</a></li> <li>[59_maintenance] Backport fix for cached Mask reads crossing unloaded sparse pages by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10766">#10766</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/apache/arrow-rs/commit/f90e061326bd821a7af09281d9e92de6f3b603d9"><code>f90e061</code></a> [59_maintenance] Backport parquet-testing revision update for ALP tests (<a href="https://redirect.github.com/apache/arrow-rs/issues/10871">#10871</a>)</li> <li><a href="https://github.com/apache/arrow-rs/commit/8061c9cb7a35cd9df2262ffa4b424174837b048d"><code>8061c9c</code></a> [59_maintenance] chore: Update versions to <code>59.3.0</code> and add CHANGELOG (<a href="https://redirect.github.com/apache/arrow-rs/issues/10827">#10827</a>)</li> <li><a href="https://github.com/apache/arrow-rs/commit/23673b8206bb5893e64c6fed4fd574c1a5bca615"><code>23673b8</code></a> [59_maintenance] Backport <code>cargo audit</code> fix by updating <code>h2</code> dependency (<a href="https://redirect.github.com/apache/arrow-rs/issues/10834">#10834</a>)</li> <li><a href="https://github.com/apache/arrow-rs/commit/e4e1237feb74ac8af3ee42f0026d0a55daf90dad"><code>e4e1237</code></a> [59_maintenance] Backport fix for concat_run_arrays with all-empty run arrays...</li> <li><a href="https://github.com/apache/arrow-rs/commit/556186a5e5a9b3c399ab4841db7f03fdfca0ff4c"><code>556186a</code></a> [59_maintenance] Backport fix for DELTA_BYTE_ARRAY dedup with values larger t...</li> <li><a href="https://github.com/apache/arrow-rs/commit/a878590477cc62964ea65c3da09cb289868675d5"><code>a878590</code></a> [59_maintenance] Backport fix for cached Mask reads crossing unloaded sparse ...</li> <li>See full diff in <a href="https://github.com/apache/arrow-rs/compare/59.2.0...59.3.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…rocks (sirius-db#1754) Bumps [parquet](https://github.com/apache/arrow-rs) from 59.2.0 to 59.3.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/apache/arrow-rs/releases">parquet's releases</a>.</em></p> <blockquote> <h2>arrow 59.3.0</h2> <h1>Changelog</h1> <h2><a href="https://github.com/apache/arrow-rs/tree/59.3.0">59.3.0</a> - (2026-08-25)</h2> <p><a href="https://github.com/apache/arrow-rs/compare/59.2.0...59.3.0">Full Changelog</a></p> <h3>Security fixes</h3> <ul> <li>[59_maintenance] Backport <code>cargo audit</code> fix by updating <code>h2</code> dependency by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10834">#10834</a></li> </ul> <h3>Bug fixes</h3> <ul> <li>[59_maintenance] Backport fix for concat_run_arrays with all-empty run arrays by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10828">#10828</a></li> <li>[59_maintenance] Backport fix for DELTA_BYTE_ARRAY dedup with values larger than the page size limit by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10826">#10826</a></li> <li>[59_maintenance] Backport fix for cached Mask reads crossing unloaded sparse pages by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10766">#10766</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/apache/arrow-rs/blob/main/CHANGELOG.md">parquet's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/apache/arrow-rs/tree/59.3.0">59.3.0</a> - (2026-08-25)</h2> <p><a href="https://github.com/apache/arrow-rs/compare/59.2.0...59.3.0">Full Changelog</a></p> <h3>Security fixes</h3> <ul> <li>[59_maintenance] Backport <code>cargo audit</code> fix by updating <code>h2</code> dependency by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10834">#10834</a></li> </ul> <h3>Bug fixes</h3> <ul> <li>[59_maintenance] Backport fix for concat_run_arrays with all-empty run arrays by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10828">#10828</a></li> <li>[59_maintenance] Backport fix for DELTA_BYTE_ARRAY dedup with values larger than the page size limit by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10826">#10826</a></li> <li>[59_maintenance] Backport fix for cached Mask reads crossing unloaded sparse pages by <a href="https://github.com/alamb"><code>@alamb</code></a> in <a href="https://redirect.github.com/apache/arrow-rs/pull/10766">#10766</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/apache/arrow-rs/commit/f90e061326bd821a7af09281d9e92de6f3b603d9"><code>f90e061</code></a> [59_maintenance] Backport parquet-testing revision update for ALP tests (<a href="https://redirect.github.com/apache/arrow-rs/issues/10871">#10871</a>)</li> <li><a href="https://github.com/apache/arrow-rs/commit/8061c9cb7a35cd9df2262ffa4b424174837b048d"><code>8061c9c</code></a> [59_maintenance] chore: Update versions to <code>59.3.0</code> and add CHANGELOG (<a href="https://redirect.github.com/apache/arrow-rs/issues/10827">#10827</a>)</li> <li><a href="https://github.com/apache/arrow-rs/commit/23673b8206bb5893e64c6fed4fd574c1a5bca615"><code>23673b8</code></a> [59_maintenance] Backport <code>cargo audit</code> fix by updating <code>h2</code> dependency (<a href="https://redirect.github.com/apache/arrow-rs/issues/10834">#10834</a>)</li> <li><a href="https://github.com/apache/arrow-rs/commit/e4e1237feb74ac8af3ee42f0026d0a55daf90dad"><code>e4e1237</code></a> [59_maintenance] Backport fix for concat_run_arrays with all-empty run arrays...</li> <li><a href="https://github.com/apache/arrow-rs/commit/556186a5e5a9b3c399ab4841db7f03fdfca0ff4c"><code>556186a</code></a> [59_maintenance] Backport fix for DELTA_BYTE_ARRAY dedup with values larger t...</li> <li><a href="https://github.com/apache/arrow-rs/commit/a878590477cc62964ea65c3da09cb289868675d5"><code>a878590</code></a> [59_maintenance] Backport fix for cached Mask reads crossing unloaded sparse ...</li> <li>See full diff in <a href="https://github.com/apache/arrow-rs/compare/59.2.0...59.3.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…irius-db#1761) Bumps [syn](https://github.com/dtolnay/syn) from 3.0.4 to 3.0.5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dtolnay/syn/releases">syn's releases</a>.</em></p> <blockquote> <h2>3.0.5</h2> <ul> <li>Report correct span for lex errors from <code>LitStr::parse_with</code> (<a href="https://redirect.github.com/dtolnay/syn/issues/2080">#2080</a>, thanks <a href="https://github.com/sunshowers"><code>@sunshowers</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/dtolnay/syn/commit/e0ad92d68b588c964e82bb74c3bd3e1e99f97ceb"><code>e0ad92d</code></a> Release 3.0.5</li> <li><a href="https://github.com/dtolnay/syn/commit/74e7d75f263942576a25d5ed4bf11d0d1e80e698"><code>74e7d75</code></a> Merge pull request <a href="https://redirect.github.com/dtolnay/syn/issues/2080">#2080</a> from sunshowers/lit-str-span</li> <li><a href="https://github.com/dtolnay/syn/commit/4c264f3db3f0d567fb6a6ddfe1e129bbe5c2acbe"><code>4c264f3</code></a> In LitStr::parse_with, report correct span for lex errors</li> <li><a href="https://github.com/dtolnay/syn/commit/7e2b27bc9331ba59c8e3a25a8eba2f5c647317bc"><code>7e2b27b</code></a> Update test suite to nightly-2026-08-26</li> <li>See full diff in <a href="https://github.com/dtolnay/syn/compare/3.0.4...3.0.5">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This fixes a crash when casting scalar values, such as `CAST(1 AS HUGEINT)` generated by DuckDB's `sum_rewriter` for `SUM(ResolutionWidth + 1)` in Clickbench [Q30](https://github.com/ClickHouse/ClickBench/blob/f44b1d0331c8feb3fa375497f1e34ad42542c95c/gendb/generated/q30.cpp#L1).
… task_scheduler to sirius_engine; Removed SiriusContext::query_ (sirius-db#1365) This is PR 2 from a stack of PRs (it goes on top of sirius-db#1364) which together will make Sirius internals be able to handle Concurrent query execution. There is more to come. ## Summary This PR addresses: - the `completion_handler`, creating one per query - sets `active_gpu_ids` and `full_gpu_count` as part of the `_query_task_global_states`, instead of just being set globally for `task_creator`. - deletes `SiriusContext::query_`, modifying code as needed - deletes `_no_pref_rr_counter` (DEAD CODE) This PR does not fully address everything including full query winddown. ### 1. Per-query completion handler (main change) Previously, task_scheduler owned a single completion_handler and pushed a raw pointer to it into every gpu_pipeline_executor. The handler is now a shared_ptr<completion_handler> created in sirius_engine::execute() and propagated down to every pipeline's `gpu_pipeline_task_global_state` via task_creator::prepare_for_query(). Each executor site reads the handler from the task it is currently executing, so error reports and completion signals are always scoped to the right query. The shared_ptr lifetime is load-bearing: sirius_engine is destroyed in sirius_interface::cleanup_internal() before run_mandatory_cleanup() drains the task queues. A task still unwinding after report without touching freed memory. Because shared_ptr reference through its global state, the handler stays alive until the last task releases it. Changed interfaces: - task_scheduler: prepare_for_query() + start_query() -> start_query(query) (no return value; caller holds the future - task_scheduler: terminate_query(error) -> terminate_query(handler, error) - task_scheduler: drain_after_error() -> drain_after_error(query_id) - task_scheduler: wait_for_completion() -> - gpu_pipeline_executor: set_completion_handler() removed - SiriusContext::create_query() now returns the query (ownership to caller) - SiriusContext::get_query() removed - task_creator::prepare_for_query() now takr - task_creator::schedule_lookahead() no longer takes a query_id ### 2. Remove SiriusContext::query_ The query object (sirius::planner::query) was stored as SiriusContext::query_. It is an index over the plan that sirius_engine owns, so storing it in a shared context while the plan lived in the engine created an ownership mismatch. The query is now owned by sirius_engine alongside the plan it indexes. The corresponding get_query() accessors on SiriusContext are removed; the one call site in sirius_engine::execute() now reads from the engine's own query_ field. ### 3. Remove _no_pref_rr_counter (DEAD CODE) The round-robin counter (_no_pref_rr_counter and its reset in prepare_for_query, plus set_no_pref_rr_counter_for_testing()) has been removed. It was dead code. ## Files changed src/sirius_engine.{hpp,cpp} -- owns query_ and completion_handler_ src/include/sirius_context.hpp -- removed query_, get_query() src/sirius_context.cpp -- cre src/include/pipeline/task_scheduler.hpp src/pipeline/task_scheduler.cpp -- collapsed prepare+start, removed counter src/include/pipeline/gpu_pipeline_executor.hpp src/pipeline/gpu_pipeline_executor.cpp -- rield src/include/pipeline/sirius_pipeline_task_states.hpp src/include/pipeline/gpu_pipeline_task.hpp -- get_completion_handler() src/include/creator/task_creator.hpp src/creator/task_creator.cpp -- takes handler in prepare_for_query docs/super-sirius/pipeline-execution.md -- updated for pull-signal dispatch test/cpp/pipeline/test_per_query_completion test/cpp/pipeline/test_oom_reschedule.cpp -r test/cpp/operator/test_mgpu_stress.cpp -- removes counter injection ## New tests (test_per_query_completion_handl - completing one query leaves another query's future unset - one query's failure does not poison another's handler - the handler outlives the engine-side refe - every pipeline of one query shares its handler - a global state built without a query carries no handler (null-guard) --------- Co-authored-by: Akhil Nair <akhiljnair.188@gmail.com>
) ## Description Restores the iceberg scan path removed in sirius-db#1147, re-ported onto the current `gpu_ingestible` scan architecture. The original targeted the pre-redesign io framework, which is why it went dead end-to-end rather than being migrated. Refs sirius-db#655. On the GPU: V1 append-only tables, V2 positional deletes, and V3 deletion vectors (Puffin + Roaring). `iceberg_gpu_ingestible` extends `parquet_gpu_ingestible` — iceberg data files are parquet and bind into the same `MultiFileBindData` — and adds two behaviours: it stamps `disable_filter_pushdown` on splits that carry deletes, and applies a delete pipeline to each decoded batch. Suppressing pushdown is load-bearing rather than conservative. Positional deletes and deletion vectors are keyed on a row's position within its data file, so if cuDF drops rows during decode the decoded positions no longer identify file positions and the mapping is unrecoverable. The predicate therefore runs after deletes, which is also Iceberg's required order. Delete-read failures throw. The earlier version caught everything and returned empty delete data described as "treating as V1", which turned *"the deletes could not be read"* into *"there are none"* and returned rows the table had logically removed. Manifest parsing is delegated to DuckDB's `iceberg` and `avro` extensions rather than hand-rolled; `iceberg_metadata()` covers discovery, and a `read_avro` query supplies the three V3 deletion-vector fields it does not expose. That removes 949 lines of varint/deflate/schema parsing which reimplemented an extension `iceberg` already depends on. The V3 deletion-vector fixture was not a valid Puffin file — a bare blob with no container magic or footer, which both readers accepted because ours checked only the blob's own magic and CRC and DuckDB's did not check the container until 1.5.5. It is rebuilt as a spec-valid container by a committed generator, and `read_deletion_vector` now validates the container framing, the footer's blob descriptor, and the decoded position count before anything reaches the scan. ## What this path refuses, and why Review converged on one principle: **anything the scan cannot PROVE is declined at plan time**, because a runtime fallback on this path poisons the connection and a silent mis-read is worse than a CPU query. Every decline returns the specific reason it hit, and DuckDB answers the query correctly. | Declined | Why the GPU path cannot answer it | |---|---| | Unpinned `iceberg_scan(path)` (no `snapshot_from_id`) | The bound snapshot id is not recoverable from Sirius, so delete discovery would resolve "current" independently and could pair one snapshot's data files with another's deletes. See *The double-planning problem*. | | Renamed / added / dropped-and-re-added columns | Columns are resolved by NAME while Iceberg is field-ID keyed. | | Data files with no Parquet field ids (`add_files` migrations, name mapping) | Nothing proves the file carries the table's current schema; name resolution can read a different column. | | Promoted column types (int → long) | Promotion keeps both name and field id, so the file matches on identity while storing the narrower physical type. | | Data files whose fields are in a different physical ORDER | A valid Iceberg layout. For a full `SELECT *` the GPU path installs no reader projection, so cuDF emits the file's order while the plan expects the snapshot's — castable types come back swapped and converted, with nothing thrown. | | `snapshot_from_timestamp` / `version` selectors | The delete path resolves only `snapshot_from_id`. | | `allow_moved_paths = true` | duckdb-iceberg rewrites bound data-file paths; delete discovery keeps the manifests' original paths, so the two no longer refer to the same files. | | Equality deletes | Match on key VALUES, so the scan must force-project key columns even when unselected. Not wired — see Known limitations. | | Deletion vectors with no `record_count`, or above the retention ceiling | `record_count` is the only thing the decoded position count can be checked against, and every decoded vector is retained through execution, so an absent or oversized one would size a plan-time allocation from what the table wrote. Both a per-vector and a statement-wide ceiling apply. | Over-declining costs performance. Under-declining returns wrong rows with no error, which is why the bias runs this way. ### New dependency: croaring Deletion vectors are portable-Roaring blobs inside Puffin files. This PR decodes them with CRoaring's own bounds-checked entry points (`roaring_bitmap_portable_deserialize_size` + `roaring::Roaring::readSafe`), which is what duckdb-iceberg does with the same blob in `src/core/deletes/iceberg_deletion_vector.cpp`. `croaring` is added to `pixi.toml` and `roaring` to `vcpkg.json` — the same package duckdb-iceberg takes, present at our pinned vcpkg baseline. Host-side only, no CUDA involvement; the loadable extension gains `libroaring` as a runtime dependency alongside the existing libspdlog / libyaml-cpp. ### Verified against Apache's implementation, not only our own fixtures `test/cpp/integration/data/iceberg_conformance/` carries pyiceberg-written tables with expectations taken from pyiceberg's own scan, plus a generator and a process-isolated runner wired into CI. This matters because the hand-built fixtures were green through three real bugs — hand-built fixtures encode the implementation's own assumptions. The corpus is what found them. The corpus cannot cover delete files: pyiceberg 0.11.1 declines to write merge-on-read deletes, so every delete fixture is still hand-built by a committed generator, and a green delete test is weaker evidence than a green conformance test. ### Why an unpinned scan is declined `iceberg_scan` installs `IcebergScanSerialize` / `IcebergScanDeserialize` on every overload and both throw, so any plan holding an `iceberg_scan` `LogicalGet` fails `plan.Copy()` during *serialization*. Sirius's optimizer hook copies the plan, so it falls back to re-planning from SQL text — once in `OnFinalizePrepare` and again when the GPU operator executes. Each of those binds resolves "current" independently, and Sirius's delete discovery is a further resolution, so nothing makes them agree and a commit landing mid-plan could pair one snapshot's data files with another's deletes. Requiring `snapshot_from_id` closes that: every bind and every metadata query then names the same id. The real fix is upstream and cannot be stacked here. The snapshot a bind resolved is not reachable from outside the extension — `MultiFileBindData` has no snapshot field, `OpenFileInfo::extended_info` carries only file_size / etag / last_modified / first_row_id / sequence_number (and the sequence number does not move on a delete-only commit), and both the bind data and the file list are extension-private types. `IcebergBindInfo` *is* installed as `get_bind_info` and holds the resolved `IcebergMultiFileList` when it runs, but publishes only the catalog entry, while `BindInfo` carries an `options` map that goes unused. Three `InsertOption` calls upstream (`snapshot_id`, `table_uuid`, `schema_id`) would expose it and let this decline go away. Deriving it instead is not viable: highest sequence number is not the current snapshot under rollback, branches or staged WAP commits, and comparing data-file sets cannot separate two snapshots that differ only in deletes. **Note the cost of the current decline**, since it is not only usability: `snapshot_from_id` is also Iceberg's time-travel selector, so it selects the snapshot's SCHEMA. On the conformance `drop_readd` table, checked against DuckDB's own reader — `iceberg_scan(path)` returns `y` NULL, NULL; `iceberg_scan(path, snapshot_from_id => <current>)` returns `y` 111, 222. Telling a user to pin in order to reach the GPU can quietly give them a *different table*, not the same one faster. That case is left unpinned in the suite with the reason in-file. ### A per-extension-build fact this corpus depends on The pyiceberg corpus has no `version-hint.text`, so reading it needs `unsafe_enable_version_guessing`, and **the runtime value of that flag is not predictable from either the extension version or its source**: ``` iceberg 75726455 (DuckDB v1.5.4) -> false iceberg 45163a28 (DuckDB v1.5.5) -> true <- kVerifiedIcebergVersion ``` duckdb-iceberg registers it `Value::BOOLEAN(false)` at `45163a28` *and* on `main`, so the core-repository binary reporting that version is not built from the tree it names. Measured in fresh processes (`-init /dev/null`, `SIRIUS_DISABLE=1`, no `~/.duckdbrc`): the setting does not exist before `LOAD iceberg` and reads back `true` after. Sirius does not force the flag — its metadata connection mirrors the outer session's effective value in both directions — so the fixture now `SET`s it explicitly rather than inheriting an ambient default, and reports `extension_version` and `current_setting(...)` together when the precondition fails. ### Known limitations - **Schema evolution declines rather than running on the GPU.** Every case in the table above is refused at plan time rather than resolved. Resolving by field ID is the complete fix and is a follow-up. `MultiFileColumnMapper` is not reusable for it — it is constructed from `MultiFileReaderData` / `MultiFileReader` / `MultiFileList` and produces a mapping into DuckDB's own reader path, with no callable seam. cuDF's `SchemaElement` carries `field_id` directly, and Sirius already parses the footer into `FileMetaData`, so resolution by field id is a local change to `parquet_schema_mapping`. The gate reads every data file's Parquet footer on the planning thread; the scan needs the same footers later, so they belong in one cache rather than two passes (performance follow-up). - **Equality deletes ship but are unreachable.** The filter, the GPU anti-join mask and the plan-time materialization are built and unit-tested directly, but the route is gated behind `kEqualityDeleteRouteImplementedToSpec` (compile-time false) and `read_iceberg_delete_data` refuses a live equality entry. The refusal names both remaining spec defects: keys are every column of the delete file rather than the entry's `equality_ids`, and the stored sequence numbers are the MANIFEST's rather than per-entry data sequence numbers (the inheritance rule). Both must be fixed before the route is enabled. - **No nested-struct-child reorder fixture.** The physical-order comparison covers nested fields by construction — the same recursive walk on the table side, the same footer preorder on the file side — but that is an argument, not a test. ## Checklist - [x] Read CONTRIBUTING.md - [x] Cover changes with new or existing tests - [x] Document configuration changes in code and summarize in the description above (no configuration changes) - [x] Update human and agent documentation (`docs/super-sirius/scan.md`) ## Testing Built and run against DuckDB 1.5.5, on an A100 (sm_80) and re-verified on an RTX A5000 (sm_86). - `pixi run make release` - `sirius_unittest "[iceberg]"` — **64 cases / 1225 assertions** - Full `sirius_unittest` — **3135 cases / 32,790,073 assertions** (run under `pixi run`; `test_dense_count_join_detection.cpp` forks `python`, which exists only inside the pixi env) - pyiceberg conformance runner — **4/4** (`append_only`, `drop_readd`, `rename_col`, `add_column`), wired into CI - V3 deletion-vector fixtures validated by two readers we did not write: pyiceberg's `PuffinFile`, and DuckDB's iceberg extension with Sirius disabled Note for reviewers: `iceberg` is a **core** extension (`INSTALL iceberg;`, not `FROM community`) and is rebuilt per DuckDB release. The suite warns when the loaded build differs from the one the fixtures were verified against — see the version-guessing note above for why that pin matters more than it looks. ## References Refs sirius-db#655 --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…db#1762) ## Description Refresh the README to describe Sirius as a GPU-Native Composable Analytics Engine and show the supplied architecture and AWS TPC-H figures. Replace the old DGX performance claim with the hot-run comparison context: all 22 queries, the best Sirius g7e size versus DuckDB on m9g.16xlarge, cost per run, logarithmic scales, and lower-left results being better. Add a short Python quick start based on the TPC-H benchmark, including the matching DuckDB Python build, extension loading, a Parquet query, and result fetching. Document how to enable Simpatico compression with both required settings before pinning, using the bundled TPC-H plans, with GPU/host support, plan requirements, fallback behavior, and Python usage. ## Validation - Checked README local links, Python syntax, compression setting names and ordering, and the bundled plan path. - Cross-checked the Python example against `test/tpch_performance/performance_test.py` and compression behavior against the extension implementation and compressed pinning guide. - Confirmed both replacement image files exactly match the supplied attachments. - `git diff --check` passes. - GPU execution and the full Pixi pre-commit suite were not run: this host is macOS and Pixi is unavailable. ## Checklist - [x] Read CONTRIBUTING.md and checked PR reviewability. - [x] Validated the documentation and examples with the checks above; no runtime code changes. - [x] Documented existing Simpatico options; no configuration behavior changes. - [x] Updated the README and referenced supporting documentation.
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.26.0 to 1.26.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/uuid-rs/uuid/releases">uuid's releases</a>.</em></p> <blockquote> <h2>v1.26.1</h2> <h2>What's Changed</h2> <ul> <li>Seat the v7 counter below the version nibble by <a href="https://github.com/lenamonj"><code>@lenamonj</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/907">uuid-rs/uuid#907</a></li> <li>Don't panic in overflowing Timestamp to SystemTime conversion by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/909">uuid-rs/uuid#909</a></li> <li>Prepare for 1.26.1 release by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/910">uuid-rs/uuid#910</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/lenamonj"><code>@lenamonj</code></a> made their first contribution in <a href="https://redirect.github.com/uuid-rs/uuid/pull/907">uuid-rs/uuid#907</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/uuid-rs/uuid/compare/v1.26.0...v1.26.1">https://github.com/uuid-rs/uuid/compare/v1.26.0...v1.26.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/uuid-rs/uuid/commit/9f927126c89892ddfed6cd2f92df16852f3f9aa6"><code>9f92712</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/910">#910</a> from uuid-rs/cargo/v1.26.1</li> <li><a href="https://github.com/uuid-rs/uuid/commit/d4df8f0cd9f461b4ef493254420052ffa5ce6277"><code>d4df8f0</code></a> prepare for 1.26.1 release</li> <li><a href="https://github.com/uuid-rs/uuid/commit/5613f2357c1fc06afc5fffd98e96da2ccf25a608"><code>5613f23</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/909">#909</a> from uuid-rs/fix/ts-conversion-overflow</li> <li><a href="https://github.com/uuid-rs/uuid/commit/fda00eba938383d242bad33143c8af73227f2a2c"><code>fda00eb</code></a> don't panic in overflowing Timestamp to SystemTime conversion</li> <li><a href="https://github.com/uuid-rs/uuid/commit/c82e88ca184e4ab83ce6b4ac0be33d32a0b9c3c4"><code>c82e88c</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/907">#907</a> from lenamonj/v7-counter-placement</li> <li><a href="https://github.com/uuid-rs/uuid/commit/ac065a6c17389a67dc6e98ef5f9a2e1d7ad4a670"><code>ac065a6</code></a> Align the counter diagram</li> <li><a href="https://github.com/uuid-rs/uuid/commit/34ec10208d813672928c299146dfe4c18cedcec7"><code>34ec102</code></a> Seat the v7 counter below the version nibble</li> <li>See full diff in <a href="https://github.com/uuid-rs/uuid/compare/v1.26.0...v1.26.1">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ks (sirius-db#1768) Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.26.0 to 1.26.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/uuid-rs/uuid/releases">uuid's releases</a>.</em></p> <blockquote> <h2>v1.26.1</h2> <h2>What's Changed</h2> <ul> <li>Seat the v7 counter below the version nibble by <a href="https://github.com/lenamonj"><code>@lenamonj</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/907">uuid-rs/uuid#907</a></li> <li>Don't panic in overflowing Timestamp to SystemTime conversion by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/909">uuid-rs/uuid#909</a></li> <li>Prepare for 1.26.1 release by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/910">uuid-rs/uuid#910</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/lenamonj"><code>@lenamonj</code></a> made their first contribution in <a href="https://redirect.github.com/uuid-rs/uuid/pull/907">uuid-rs/uuid#907</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/uuid-rs/uuid/compare/v1.26.0...v1.26.1">https://github.com/uuid-rs/uuid/compare/v1.26.0...v1.26.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/uuid-rs/uuid/commit/9f927126c89892ddfed6cd2f92df16852f3f9aa6"><code>9f92712</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/910">#910</a> from uuid-rs/cargo/v1.26.1</li> <li><a href="https://github.com/uuid-rs/uuid/commit/d4df8f0cd9f461b4ef493254420052ffa5ce6277"><code>d4df8f0</code></a> prepare for 1.26.1 release</li> <li><a href="https://github.com/uuid-rs/uuid/commit/5613f2357c1fc06afc5fffd98e96da2ccf25a608"><code>5613f23</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/909">#909</a> from uuid-rs/fix/ts-conversion-overflow</li> <li><a href="https://github.com/uuid-rs/uuid/commit/fda00eba938383d242bad33143c8af73227f2a2c"><code>fda00eb</code></a> don't panic in overflowing Timestamp to SystemTime conversion</li> <li><a href="https://github.com/uuid-rs/uuid/commit/c82e88ca184e4ab83ce6b4ac0be33d32a0b9c3c4"><code>c82e88c</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/907">#907</a> from lenamonj/v7-counter-placement</li> <li><a href="https://github.com/uuid-rs/uuid/commit/ac065a6c17389a67dc6e98ef5f9a2e1d7ad4a670"><code>ac065a6</code></a> Align the counter diagram</li> <li><a href="https://github.com/uuid-rs/uuid/commit/34ec10208d813672928c299146dfe4c18cedcec7"><code>34ec102</code></a> Seat the v7 counter below the version nibble</li> <li>See full diff in <a href="https://github.com/uuid-rs/uuid/compare/v1.26.0...v1.26.1">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Summary - Add opaque white backgrounds to the architecture, performance, and contributor-logo PNGs so they render consistently in GitHub dark mode. - Rename `combined-logos-light.png` to `combined-logos-light-transparent.png` and update its README references to make the remaining transparency explicit. ## Testing - Verified the flattened PNGs are opaque and retain their upstream dimensions. - Verified the renamed transparent logo remains referenced correctly. _Written by Codex._ # Before: <img width="866" height="1138" alt="image" src="https://github.com/user-attachments/assets/4cfd5b59-ad89-4f5b-930a-af4ead8dab35" /> # After: <img width="866" height="1138" alt="image" src="https://github.com/user-attachments/assets/b8a69ea0-054a-4711-a759-52fabc95257b" />
) ## Description Use `uint32_t` for chunk-local bit-position arithmetic in the generated bit-unpack helper. Global offsets and 64-bit value reconstruction remain unchanged. Adds a compile-time bounds check and regression coverage for INT64 widths 0–64, chunk boundaries, and partial tails. Decode latency on GB300 for **32 GiB output tables** (eight columns, four streams): | Plan | Before | After | Reduction | |---|---:|---:|---:| | 10-bit bitpack | 15.93 ms | 11.85 ms | 25.6% | | 28-bit bitpack | 19.53 ms | 13.85 ms | 29.1% | | Delta-bitpack | 13.87 ms | 11.44 ms | 17.5% | | Identity control | 10.91 ms | 10.91 ms | Unchanged | Synthetic GPU-resident inputs; completed decode calls include output allocation. Results are medians of three independent runs with 15 timed samples each, excluding compression and validation—not TPC-H query timings. Nsight Compute confirms the 4 GiB-column bitpack kernel improves from 1.90 to 1.39 ms, with DRAM utilization increasing from 41% to 56%. Copies and synchronization are unchanged. Validation: all five targeted tests passed; benchmark warmup and final outputs were fully verified. ## Checklist - [x] Read CONTRIBUTING.md and ensure PR meets "reviewability" checklist - [x] Cover changes with new or existing tests - [x] Document configuration changes in code and summarize in the description above (no configuration changes) - [x] Update human and agent documentation (README.md, docs/, skills, CLAUDE.md) (no docs to update)
…irius-db#1775) ## Description The hybrid-scan multi-file reader requires the RAPIDS 26.08 APIs, while CCCL has moved the stream reference API out of the deprecated `<cuda/stream_ref>` header. This updates libcudf, libcuvs, and libkvikio to 26.08.01, migrates the affected dynamic-filter kernels and cuco allocator to `<cuda/stream>`, and removes kvikIO's `cuda_std_17` interface feature where it would otherwise break CMake generation for the C/C++-only DuckDB target. ## Validation - `pixi run pre-commit run -a` passes at this commit. - The final stacked tree passes the complete release build. ## Checklist - [x] Read `CONTRIBUTING.md` and meet the PR reviewability requirements. - [x] Use existing build coverage for dependency and header migration. - [x] No user-facing configuration change. ## Stack Layer 1 of 6. Based on `dev`; followed by sirius-db#1772. --------- Co-authored-by: Matthijs Brobbel <m1brobbel@gmail.com>
18 of 24 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Refs matrixorigin/matrixone#28966, migration PR 1 of 10.
Synchronize
upstream-dev-mergewithsirius-db/sirius:devat05148c78756fa743aea7e0bd94ae7b688cda8411, retaining the TAE GPU ingestible,query-scoped execution evidence and GPU task-owner quiescence changes already
on the integration branch. This is the foundation for embedding Sirius in MO;
it does not introduce the C ABI or port Flight/mo_scan onto the new engine.
Merge resolution and compatibility
only six LZ4 package entries beyond upstream instead of unrelated dependency churn.
completion handler (the executor-global member was removed upstream).
ingestible_table_info::display_name()contract for TAEwithout exposing manifest/object paths. Add a metadata regression and its
narrowly scoped scanner-header test include.
Validation
Native Pixi build, no container rebuilds, local RTX 3070 (sm86):
duckdbandsirius_unittestbuild passed.142 assertions in 3 cases passed. The TAE fixture checks actual GPU
execution counters and disables DuckDB fallback.
sirius_execution_evidence_unittest:40 assertions in 6 cases passed. The first combined selection correctly
reported that this tag is not in the GPU test binary; this separate target
supplies the evidence rather than counting an empty selection as a pass.
OOM retry/history, sink publication, materialization and failure lifetime.
two-input join/group/order query) matched CPU CSV output with exactly two GPU
pipeline workers and fallback disabled; execution logs contain the GPU_SCAN
pipelines. Both outputs contain 23 rows.
The approved migration design is in matrixorigin/matrixone#28973; full numeric
compatibility remains tracked separately by matrixorigin/matrixone#28968.