date: 2025-11-19
title: 'Spice v1.9.0 (Nov 19, 2025)'
type: blog
authors: [phillipleblanc]
tags: [release, cayenne, acceleration, distributed-query, ballista, datafusion, dynamodb, duckdb, full-text-search, vector-search, hybrid-search, data-connector, performance, sql, vortex]
Announcing the release of Spice v1.9.0-stable! :hot_pepper:
v1.9.0-stable introduces Spice Cayenne, a new high-performance data accelerator built on the Vortex columnar format that delivers better than DuckDB performance without single-file scaling limitations, and a preview of Multi-Node Distributed Query based on Apache Ballista. v1.9.0 also upgrades to DataFusion v50, DuckDB v1.4.2, and Delta-Kernel v0.16 for even higher query performance, expands search capabilities with full-text search on views and multi-column embeddings, and delivers many additional features and improvements.
What's New in v1.9.0
Cayenne Data Accelerator (Beta)
Introducing Cayenne: SQL as an Acceleration Format: A new high-performance Data Accelerator (opens in a new tab) that simplifies multi-file data acceleration by using an embedded database (SQLite) for metadata while storing data in the Vortex columnar format (opens in a new tab), a Linux Foundation project. Cayenne delivers query and ingestion performance better than DuckDB's file-based acceleration without DuckDB's memory overhead and the scaling challenges of single DuckDB files.
Cayenne uses SQLite to manage acceleration metadata (schemas, snapshots, statistics, file tracking) through simple SQL transactions, while storing data in Vortex's compressed columnar format. This architecture provides:
Key Features:
- SQLite + Vortex Architecture: All metadata is stored in SQLite tables with standard SQL transactions, while data lives in Vortex's compressed, chunked columnar format designed for zero-copy access and efficient scanning.
- Simplified Operations: No complex file hierarchies, no JSON/Avro metadata files, no separate catalog servers—just SQL tables and Vortex data files. The entire metadata schema is intentionally simple for maximum reliability.
- Fast Metadata Access: Single SQL query retrieves all metadata needed for query planning—no multiple round trips to storage, no S3 throttling, no reconstruction of metadata state from scattered files.
- Efficient Small Changes: Dramatically reduces small file proliferation. Snapshots are just rows in SQLite tables, not new files on disk. Supports millions of snapshots without performance degradation.
- High Concurrency: Changes consist of two steps: stage Vortex files (if any), then run a single SQL transaction. Much faster conflict resolution and support for many more concurrent updates than file-based formats.
- Advanced Data Lifecycle: Full ACID transactions, delete support, and retention SQL execution on refresh commit.
Example Spicepod.yml configuration:
datasets:
- from: s3:my_table
name: accelerated_data_30d
acceleration:
enabled: true
engine: cayenne
mode: file
refresh_mode: append
retention_sql: DELETE FROM accelerated_data WHERE created_at < NOW() - INTERVAL '30 days'
datasets:
- from: s3:my_table
name: accelerated_data_30d
acceleration:
enabled: true
engine: cayenne
mode: file
refresh_mode: append
retention_sql: DELETE FROM accelerated_data WHERE created_at < NOW() - INTERVAL '30 days'
Note, the Cayenne Data Accelerator is in Beta (opens in a new tab) with limitations.
For more details, refer to the Cayenne Documentation (opens in a new tab), the Vortex project (opens in a new tab), and the DuckLake announcement (opens in a new tab) that partly inspired this design.
Multi-Node Distributed Query (Preview)
Apache Ballista Integration: Spice now supports distributed query execution based on Apache Ballista (opens in a new tab), enabling distributed queries across multiple executor nodes for improved performance on large datasets. This feature is in preview in v1.9.0.
Architecture:
A distributed Spice cluster consists of:
- Scheduler: Responsible for distributed query planning and work queue management for the executor fleet
- Executors: One or more nodes responsible for running physical query plans
Getting Started:
Start a scheduler instance using an existing Spicepod. The scheduler is the only spiced instance that needs to be configured:
# Start scheduler (note the flight bind address override if you want it reachable outside localhost)
spiced --cluster-mode scheduler --flight 0.0.0.0:50051
# Start scheduler (note the flight bind address override if you want it reachable outside localhost)
spiced --cluster-mode scheduler --flight 0.0.0.0:50051
Start one or more executors configured with the scheduler's flight URI:
# Start executor (automatically selects a free port if 50051 is taken)
spiced --cluster-mode executor --scheduler-url spiced://localhost:50051
# Start executor (automatically selects a free port if 50051 is taken)
spiced --cluster-mode executor --scheduler-url spiced://localhost:50051
Query Execution:
Queries run through the scheduler will now show a distributed_plan in EXPLAIN output, demonstrating how the query is distributed across executor nodes:
EXPLAIN SELECT count(id) FROM my_dataset;
EXPLAIN SELECT count(id) FROM my_dataset;
Current Limitations:
- Accelerated datasets are currently not supported. This feature is designed for querying partitioned data lake formats (Parquet, Delta Lake, Iceberg, etc.)
- The feature is in preview and may have stability or performance limitations
- Specific acceleration support is planned for future releases
For more details, refer to the Distributed Query Documentation (opens in a new tab).
DataFusion v50 Upgrade
Spice.ai is built on the Apache DataFusion (opens in a new tab) query engine. The v50 release brings significant performance improvements and enhanced reliability:
Performance Improvements 🚀:
-
Dynamic Filter Pushdown: Enhanced dynamic filter pushdown for custom ExecutionPlans, ensuring filters propagate correctly through all physical operators for improved query performance.
-
Partition Pruning: Expanded partition pruning support ensures that unnecessary partitions are skipped when filters are not used, reducing data scanning overhead and improving query execution times.
Apache Spark Compatible Functions: Added support for Spark-compatible functions including array, bit_get/bit_count, bitmap_count, crc32/sha1, date_add/date_sub, if, last_day, like/ilike, luhn_check, mod/pmod, next_day, parse_url, rint, and width_bucket.
Bug Fixes & Reliability: Resolved issues with partition name validation and empty execution plans when vector index lists are empty. Fixed timestamp support for partition expressions, enabling better partitioning for time-series data.
See the Apache DataFusion 50.0.3 Release (opens in a new tab) for more details.
DuckDB v1.4.2 Upgrade and Accelerator Improvements
DuckDB v1.4.2: DuckDB has been upgraded to v1.4.2, which includes several performance optimizations (opens in a new tab).
Composite ART Index Support: DuckDB in Spice now supports composite (multi-column) Adaptive Radix Tree (ART) indexes for accelerated table scans. When queries filter on multiple columns fully covered by a composite index, the optimizer automatically uses index scans instead of full table scans, delivering significant performance improvements for selective queries.
Example configuration:
datasets:
- from: file://data.parquet
name: sales
acceleration:
enabled: true
engine: duckdb
indexes:
'(region, product_id)': enabled
datasets:
- from: file://data.parquet
name: sales
acceleration:
enabled: true
engine: duckdb
indexes:
'(region, product_id)': enabled
Performance example with composite index on 7.5M rows:
SELECT * FROM sales WHERE region = 'US' AND product_id = 12345;
-- Without index: 0.282s
-- With composite index (region, product_id): 0.037s
-- Performance improvement: 7.6x faster with composite index
SELECT * FROM sales WHERE region = 'US' AND product_id = 12345;
-- Without index: 0.282s
-- With composite index (region, product_id): 0.037s
-- Performance improvement: 7.6x faster with composite index
DuckDB Intermediate Materialization: Queries with indexes now use intermediate materialization (WITH ... AS MATERIALIZED) to leverage faster index scans. Currently supported for non-federated queries (query_federation: disabled) against a single table with indexes only. When predicates cover more columns than the index, the optimizer rewrites queries to first materialize index-filtered results, then apply remaining predicates. This optimization can deliver significant performance improvements for selective queries.
Example configuration:
datasets:
- from: file://sales_data.parquet
name: sales
acceleration:
enabled: true
engine: duckdb
mode: file
params:
query_federation: disabled # Required currently for intermediate materialization
indexes:
'(region, product_id)': enabled
datasets:
- from: file://sales_data.parquet
name: sales
acceleration:
enabled: true
engine: duckdb
mode: file
params:
query_federation: disabled # Required currently for intermediate materialization
indexes:
'(region, product_id)': enabled
Performance example:
-- Query with indexed columns (region, product_id) plus additional filter (amount)
SELECT * FROM sales
WHERE region = 'US' AND product_id = 12345 AND amount > 1000;
-- Optimized execution time: 0.031s (with intermediate materialization)
-- Standard execution time: 0.108s (without optimization)
-- Performance improvement: ~3.5x faster
-- Query with indexed columns (region, product_id) plus additional filter (amount)
SELECT * FROM sales
WHERE region = 'US' AND product_id = 12345 AND amount > 1000;
-- Optimized execution time: 0.031s (with intermediate materialization)
-- Standard execution time: 0.108s (without optimization)
-- Performance improvement: ~3.5x faster
The optimizer automatically rewrites the query to:
WITH _intermediate_materialize AS MATERIALIZED (
SELECT * FROM sales WHERE region = 'US' AND product_id = 12345
)
SELECT * FROM _intermediate_materialize WHERE amount > 1000;
WITH _intermediate_materialize AS MATERIALIZED (
SELECT * FROM sales WHERE region = 'US' AND product_id = 12345
)
SELECT * FROM _intermediate_materialize WHERE amount > 1000;
Parquet Buffering for Partitioned Writes: DuckDB partitioned writes in table mode now support Parquet buffering, reducing memory usage and improving write performance for large datasets.
Retention SQL on Refresh Commit: DuckDB accelerations now support running retention SQL on refresh commit, enabling automatic data cleanup and lifecycle management during refresh operations.
UTC Timezone for DuckDB: DuckDB now uses UTC as the default timezone, ensuring consistent behavior for time-based queries across different environments.
Example Spicepod.yml configuration:
datasets:
- from: s3://my_bucket/large_table/
name: partitioned_data
acceleration:
enabled: true
engine: duckdb
mode: file
retention:
sql: DELETE FROM partitioned_data WHERE event_time < NOW() - INTERVAL '7 days'
datasets:
- from: s3://my_bucket/large_table/
name: partitioned_data
acceleration:
enabled: true
engine: duckdb
mode: file
retention:
sql: DELETE FROM partitioned_data WHERE event_time < NOW() - INTERVAL '7 days'
For more details, refer to the DuckDB Data Accelerator Documentation (opens in a new tab).
HTTP Data Connector
-
Querying endpoints as tables: The HTTP/HTTPS Data Connectors now supports querying HTTP endpoints directly as tables in SQL queries with dynamic filters. This feature transforms REST APIs into queryable data sources, making it easy to integrate external service data.
-
Query HTTP endpoint that returns structured data (JSON, CSV, etc.) as if it were a database table
-
Configurable retry logic, timeouts, and POST request support for more complex API interactions
Example Spicepod.yml configuration:
datasets:
- from: https://api.tvmaze.com
name: tvmaze
params:
file_format: json
max_retries: 3
client_timeout: 10s
allowed_request_paths: /search/people
request_query_filters: enabled
request_body_filters: enabled
datasets:
- from: https://api.tvmaze.com
name: tvmaze
params:
file_format: json
max_retries: 3
client_timeout: 10s
allowed_request_paths: /search/people
request_query_filters: enabled
request_body_filters: enabled
Example SQL query:
SELECT request_path, request_query, content
FROM tvmaze
WHERE request_path = '/search/people' and request_query = 'q=michael'
LIMIT 10;
SELECT request_path, request_query, content
FROM tvmaze
WHERE request_path = '/search/people' and request_query = 'q=michael'
LIMIT 10;
If a request_body is supplied it will be posted to the endpoint:
Example SQL query:
SELECT request_path, request_query, content
FROM tvmaze
WHERE request_path = '/search/people' and request_query = 'q=michael' and request_body = '{"name": "michael"}'
LIMIT 10;
SELECT request_path, request_query, content
FROM tvmaze
WHERE request_path = '/search/people' and request_query = 'q=michael' and request_body = '{"name": "michael"}'
LIMIT 10;
HTTP endpoints can be accelerated using refresh_sql:
datasets:
- from: https://api.tvmaze.com
name: tvmaze
params:
file_format: json
allowed_request_paths: /search/people
request_query_filters: enabled
request_body_filters: enabled
acceleration:
enabled: true
refresh_mode: full
refresh_sql: |
SELECT request_path, request_query, content
FROM tvmaze
WHERE request_path = '/search/people'
AND request_query IN ('q=michael', 'q=luke')
datasets:
- from: https://api.tvmaze.com
name: tvmaze
params:
file_format: json
allowed_request_paths: /search/people
request_query_filters: enabled
request_body_filters: enabled
acceleration:
enabled: true
refresh_mode: full
refresh_sql: |
SELECT request_path, request_query, content
FROM tvmaze
WHERE request_path = '/search/people'
AND request_query IN ('q=michael', 'q=luke')
For more details, refer to the HTTP Data Connector Documentation (opens in a new tab).
DynamoDB Data Connector Improvements
Improved Query Performance: The DynamoDB Data Connector now includes improved filter handling for edge cases, parallel scan support for faster data ingestion, and better error handling for misconfigured queries. These improvements enable more reliable and performant access to DynamoDB data.
Example Spicepod.yml configuration:
datasets:
- from: dynamodb:my_table
name: ddb_data
params:
scan_segments: 10 # Default `auto` which calculates optimal segments based on number of rows
datasets:
- from: dynamodb:my_table
name: ddb_data
params:
scan_segments: 10 # Default `auto` which calculates optimal segments based on number of rows
For more details, refer to the DynamoDB Data Connector Documentation (opens in a new tab).
S3 Data Connector Improvements
S3 Versioning Support: Spice now supports S3 Versioning (opens in a new tab) for all connectors using object-store (S3, Delta Lake, etc.), ensuring range reads over versioned files are atomically correct. When S3 versioning is enabled, Spice automatically tracks version IDs during file discovery and uses them for all subsequent range reads, preventing inconsistencies from concurrent file modifications.
Current limitations:
- Multi-file connections (e.g., partitioned datasets) do not yet support version tracking across all files
- Version tracking is automatic when S3 versioning is enabled on the bucket
S3 Single-File Refresh Skipping: Spice now optimizes S3 single-file dataset refreshes by caching file metadata (ETag, Version ID, size, timestamp) and skipping unnecessary data fetches when the underlying file hasn't changed. This optimization dramatically reduces bandwidth usage and improves refresh performance for scenarios where data doesn't change frequently. The feature is enabled by default for accelerated S3 single-file datasets and includes metrics tracking for skipped refreshes.
Example configuration:
datasets:
- from: s3://my-bucket/data.parquet
name: s3_data
acceleration:
enabled: true
engine: duckdb
refresh_check_interval: 10s
datasets:
- from: s3://my-bucket/data.parquet
name: s3_data
acceleration:
enabled: true
engine: duckdb
refresh_check_interval: 10s
When the file's metadata hasn't changed between refresh checks, Spice will skip the data fetch entirely, logging:
Skipping refresh for dataset 's3_data': file metadata unchanged
Skipping refresh for dataset 's3_data': file metadata unchanged
For more details, refer to the S3 Data Connector Documentation (opens in a new tab).
Search & Embeddings Enhancements
Full-Text Search on Views: Full-text search indexes are now supported on views, enabling advanced search scenarios over pre-aggregated or transformed data. This extends the power of Spice's search capabilities beyond base datasets.
Multi-Column Embeddings on Views: Views now support embedding columns, enabling vector search and semantic retrieval on view data. This is useful for search over aggregated or joined datasets.
Vector Engines on Views: Vector search engines are now available for views, enabling similarity search over complex queries and transformations.
Example Spicepod.yml configuration:
views:
- name: aggregated_reviews
sql: SELECT review_id, review_text FROM reviews WHERE rating > 4
embeddings:
- column: review_text
model: openai:text-embedding-3-small
views:
- name: aggregated_reviews
sql: SELECT review_id, review_text FROM reviews WHERE rating > 4
embeddings:
- column: review_text
model: openai:text-embedding-3-small
For more details, refer to the Search Documentation (opens in a new tab) and Embeddings Documentation (opens in a new tab).
Dedicated Query Thread Pool (Now Enabled by Default)
Dedicated Query Thread Pool: Query execution and accelerated refreshes now run on their own dedicated thread pool, separate from the HTTP server. This prevents heavy query workloads from slowing down API responses, keeping health checks fast and avoiding unnecessary Kubernetes pod restarts under load.
This feature was opt-in in previous releases and is now enabled by default. To disable it and revert to the previous behavior, add the following spicepod.yaml configuration:
runtime:
params:
dedicated_thread_pool: none
runtime:
params:
dedicated_thread_pool: none
For more details, refer to the Runtime Configuration Documentation (opens in a new tab).
Query Performance Optimizations
Stale-While-Revalidate Cache Control: Query results now support "stale-while-revalidate" cache control, allowing stale cached data to be served immediately while asynchronously refreshing the cache entry in the background. This improves response times for frequently-accessed queries while maintaining data freshness. Requires cache key type to be set to "sql (raw)" for proper operation.
Optimized Prepared Statements: Prepared statement handling has been optimized for better performance with parameterized queries, reducing planning overhead and improving execution time for repeated queries.
Large RecordBatch Chunking: Large Arrow RecordBatch objects are now automatically chunked to control memory usage during query execution, preventing memory exhaustion for queries returning large result sets.
Query Result Caching: Compressed Encoding, Stale-While-Revalidate Cache Control
Zstd Compression Encoding: Query result caching now supports optional Zstandard (zstd) (opens in a new tab) compression encoding to reduce memory usage for cached query results. This is particularly beneficial for large result sets, reducing cache memory footprint while maintaining fast decompression times. Encoding can be configured via the encoding parameter with options none (default) or zstd.
Example configuration:
runtime:
caching:
sql_results:
enabled: true
max_size: 128MiB
item_ttl: 1m
encoding: zstd # Enable zstd compression
runtime:
caching:
sql_results:
enabled: true
max_size: 128MiB
item_ttl: 1m
encoding: zstd # Enable zstd compression
HTTP Cache-Control Support: The query result cache now supports the stale-while-revalidate Cache-Control directive (opens in a new tab), enabling faster response times by serving stale cached results immediately while asynchronously refreshing the cache in the background. This feature is particularly useful for applications that can tolerate slightly stale data in exchange for improved performance.
Example configuration:
runtime:
caching:
sql_results:
enabled: true
max_size: 128MiB
item_ttl: 1m
stale_while_revalidate_ttl: 1m # serve stale items for up to 1 minute after `item_ttl` expires
runtime:
caching:
sql_results:
enabled: true
max_size: 128MiB
item_ttl: 1m
stale_while_revalidate_ttl: 1m # serve stale items for up to 1 minute after `item_ttl` expires
How it works:
When a cache entry is stale but within the stale-while-revalidate window, Spice will:
- Immediately return the stale cached result to the client
- Asynchronously re-execute the query in the background to refresh the cache
- Future requests will use the refreshed data
Configuration:
Use the Cache-Control HTTP header with the stale-while-revalidate directive:
Cache-Control: max-age=300, stale-while-revalidate=60
Cache-Control: max-age=300, stale-while-revalidate=60
This configuration caches results for 5 minutes (300 seconds), and allows serving stale results for an additional 60 seconds while refreshing in the background.
Requirements:
- Must use plan or raw SQL cache keys (set
cache_key_type to sql or plan in results_caching configuration)
- Background revalidation re-executes queries through the normal query path
- Timestamp tracking automatically determines cache entry age for staleness checks
Example configuration via HTTP header:
GET /v1/sql
Cache-Control: max-age=600, stale-while-revalidate=120
X-Cache-Key-Type: sql
GET /v1/sql
Cache-Control: max-age=600, stale-while-revalidate=120
X-Cache-Key-Type: sql
This feature improves application responsiveness while ensuring data freshness through background updates.
For more details, refer to the Results Caching Documentation (opens in a new tab).
Security & Reliability Improvements
Enhanced HTTP Client Security: HTTP client usage across the runtime has been hardened with improved TLS validation, certificate pinning for critical endpoints, and better error handling for network failures.
ODBC Connector Improvements: Removed unwrap calls from the ODBC connector, improving error handling and reliability. Fixed secret handling and Kubernetes secret integration.
CLI Permissions Hardening: Tightened file permissions for the CLI and install script, ensuring secure defaults for configuration files and credentials.
Oracle Instant Client Pinning: Oracle Instant Client downloads are now pinned to specific SHAs, ensuring reproducible builds and preventing supply chain attacks.
AWS Authentication Improvements
Improved Credential Retry Logic: AWS SDK credential initialization has been significantly improved with more robust retry logic and better error handling. The system now automatically retries transient credential resolution failures using Fibonacci backoff, allowing Spice to tolerate extended AWS outages (up to ~48 hours) without manual intervention.
Key features:
- Automatic retry with backoff: Implements Fibonacci backoff for transient credential failures (network issues, temporary AWS service disruptions)
- Better error handling: Distinguishes between retryable errors (connector errors) and non-retryable errors (misconfiguration)
- Unauthenticated access support: Properly supports unauthenticated access to public S3 buckets without requiring credentials
- Improved error messages: Provides detailed logging with attempt numbers, retry intervals, and error context for better troubleshooting
The improvements ensure more reliable AWS service integration, particularly in environments with intermittent network connectivity or during AWS service degradations.
Observability & Tracing
DataFusion Log Emission: The Spice runtime now emits DataFusion internal logs, providing deeper visibility into query planning and execution for debugging and performance analysis.
AI Completions Tracing: Fixed tracing so that ai_completions operations are correctly parented under sql_query traces, improving observability for AI-powered queries.
Git Data Connector (Alpha)
Version-Controlled Data Access: The new Git Data Connector (Alpha) enables querying datasets stored in Git repositories. This connector is ideal for use cases involving configuration files, documentation, or any data tracked in version control.
Example Spicepod.yml configuration:
datasets:
- from: git:https://github.com/myorg/myrepo
name: git_metrics
params:
file_format: csv
datasets:
- from: git:https://github.com/myorg/myrepo
name: git_metrics
params:
file_format: csv
For more details, refer to the Git Data Connector Documentation (opens in a new tab).
Spice Java SDK 0.4.0
The Spice Java SDK has been upgraded with support for configurable Arrow memory limit: spice-java v0.4.0 (opens in a new tab)
SpiceClient client = SpiceClient.builder()
.withArrowMemoryLimitMB(1024) // 1GB limit
.build();
SpiceClient client = SpiceClient.builder()
.withArrowMemoryLimitMB(1024) // 1GB limit
.build();
For more details, refer to the Java SDK Documentation (opens in a new tab).
CLI Improvements
Install Specific Versions: The spice install command now supports installing specific versions of the Spice runtime and CLI. This enables easy version management, downgrading, or installation of specific releases for testing or compatibility requirements.
Usage:
# Install a specific version
spice install v1.8.3
# Install a specific version with AI flavor
spice install v1.8.3 ai
# Install latest version (existing behavior)
spice install
spice install ai
# Install a specific version
spice install v1.8.3
# Install a specific version with AI flavor
spice install v1.8.3 ai
# Install latest version (existing behavior)
spice install
spice install ai
Note: Homebrew installations require manual version management via brew install spiceai/spiceai/spice@<version>.
Persistent Query History: The Spice CLI REPL (SQL, search, and chat interfaces) now persists command history to ~/.spice/query_history.txt, making your query history available across sessions. The history file is automatically created if it doesn't exist, with graceful fallback if the home directory cannot be determined.
New REPL Commands:
.clear - Clear the screen using ANSI escape codes for a clean workspace
.clear history - Clear and persist the query history, removing all stored commands
Tab Completion: Tab completion now includes suggestions based on your command history, making it faster to re-run or modify previous queries.
Example usage:
sql> SELECT * FROM my_table;
sql> .clear # Clears the screen
sql> .clear history # Clears command history
sql> # Use arrow keys or tab to access previous commands
sql> SELECT * FROM my_table;
sql> .clear # Clears the screen
sql> .clear history # Clears command history
sql> # Use arrow keys or tab to access previous commands
For more details, refer to the CLI Documentation (opens in a new tab).
Additional Improvements & Bug Fixes
- Reliability: Fixed refresh worker panics with recovery handling to prevent runtime crashes during acceleration refreshes.
- Reliability: Improved error messages for missing or invalid
spicepod.yaml files, providing actionable feedback for misconfiguration.
- Reliability: Fixed DuckDB metadata pointer loading issues for snapshots.
- Performance: Ensured
ListingTable partitions are pruned correctly when filters are not used.
- Reliability: Fixed vector dimension determination for partitioned indexes.
- Search: Fixed casing issues in Reciprocal Rank Fusion (RRF) for hybrid search queries.
- Search: Fixed search field handling as metadata for chunked search indexes.
- Validation: Added timestamp support for partition expressions.
- Validation: Fixed
regexp_match function for DuckDB datasets.
- Validation: Fixed partition name validation for improved reliability.
Contributors
Breaking Changes
No breaking changes.
Cookbook Updates
New HTTP Data Connector Recipe: New recipe demonstrating how to query REST APIs and HTTP(s) endpoints. See HTTP Connector Recipe (opens in a new tab) for details.
The Spice Cookbook (opens in a new tab) includes 82 recipes to help you get started with Spice quickly and easily.
Upgrading
To upgrade to v1.9.0, use one of the following methods:
CLI:
Homebrew:
brew upgrade spiceai/spiceai/spice
brew upgrade spiceai/spiceai/spice
Docker:
Pull the spiceai/spiceai:1.9.0 image:
docker pull spiceai/spiceai:1.9.0
docker pull spiceai/spiceai:1.9.0
For available tags, see DockerHub (opens in a new tab).
Helm:
helm repo update
helm upgrade spiceai spiceai/spiceai
helm repo update
helm upgrade spiceai spiceai/spiceai
AWS Marketplace:
🎉 Spice is now available in the AWS Marketplace (opens in a new tab)!
What's Changed
Dependencies
Changelog
- Fix for search field as metadata for chunked search indexes by @Jeadie (opens in a new tab) in #7429 (opens in a new tab)
- Bump object_store from 0.12.3 to 0.12.4 by @app/dependabot (opens in a new tab) in #7433 (opens in a new tab)
- Properly respect disabling snapshots by @phillipleblanc (opens in a new tab) in #7431 (opens in a new tab)
- Revert "Properly respect disabling snapshots" by @sgrebnov (opens in a new tab) in #7439 (opens in a new tab)
- Revert "Disable snapshots by default" by @sgrebnov (opens in a new tab) in #7438 (opens in a new tab)
- Add preview warning for write access mode by @sgrebnov (opens in a new tab) in #7440 (opens in a new tab)
- fix: regexp_match for DuckDB datasets by @kczimm (opens in a new tab) in #7443 (opens in a new tab)
- Add feature is currently in preview warning for snapshots by @sgrebnov (opens in a new tab) in #7442 (opens in a new tab)
- [Logger] Also emit Datafusion logs by @mach-kernel (opens in a new tab) in #7441 (opens in a new tab)
- add missing snapshot by @kczimm (opens in a new tab) in #7446 (opens in a new tab)
- Fix tracing so that ai_completions are parented under sql_query by @lukekim (opens in a new tab) in #7415 (opens in a new tab)
- Enable snapshot acceleration by default by @phillipleblanc (opens in a new tab) in #7451 (opens in a new tab)
- Disable acceleration refresh metrics by @krinart (opens in a new tab) in #7450 (opens in a new tab)
- Add v1.8 release notes by @phillipleblanc (opens in a new tab) in #7430 (opens in a new tab)
- fix: partition name validation by @kczimm (opens in a new tab) in #7452 (opens in a new tab)
- Fix lint error due to ignore without reasons by @krinart (opens in a new tab) in #7454 (opens in a new tab)
- Add models and CUDA support to spiced install script by @lukekim (opens in a new tab) in #7457 (opens in a new tab)
- Post-release 1.8 updates by @phillipleblanc (opens in a new tab) in #7455 (opens in a new tab)
- Remove println in datafusion by @phillipleblanc (opens in a new tab) in #7461 (opens in a new tab)
- Update end_game.md to notify once release is done by @sgrebnov (opens in a new tab) in #7460 (opens in a new tab)
- Remove italics from snapshot logging by @phillipleblanc (opens in a new tab) in #7463 (opens in a new tab)
- Update openapi.json by @app/github-actions (opens in a new tab) in #7466 (opens in a new tab)
- Fix generate spicepod schema by @phillipleblanc (opens in a new tab) in #7464 (opens in a new tab)
- Fix generate acknowledements by @phillipleblanc (opens in a new tab) in #7465 (opens in a new tab)
- Update spicepod.schema.json by @app/github-actions (opens in a new tab) in #7469 (opens in a new tab)
- fix: Ensure ListingTable partitions are pruned when filters are not used by @peasee (opens in a new tab) in #7471 (opens in a new tab)
- Create
runtime-secrets crate by @phillipleblanc (opens in a new tab) in #7474 (opens in a new tab)
- Create
runtime-parameters crate by @phillipleblanc (opens in a new tab) in #7475 (opens in a new tab)
- Don't download the snapshot if the acceleration is present by @phillipleblanc (opens in a new tab) in #7477 (opens in a new tab)
- Bump hyper-util from 0.1.16 to 0.1.17 by @app/dependabot (opens in a new tab) in #7434 (opens in a new tab)
- Add missing remote CLI feature by @lukekim (opens in a new tab) in #7478 (opens in a new tab)
- Add 1.8.0 release analytics by @sgrebnov (opens in a new tab) in #7481 (opens in a new tab)
- CLI multi-line input support for
spice sql by @lukekim (opens in a new tab) in #7479 (opens in a new tab)
- fix: duckdb partitioning cannot reload config by @kczimm (opens in a new tab) in #7482 (opens in a new tab)
- fix: Make search cache test use a slower uncached search by @peasee (opens in a new tab) in #7473 (opens in a new tab)
- Add support for S3 dataset params by @phillipleblanc (opens in a new tab) in #7476 (opens in a new tab)
- Add DuckDB TPC-H memory limit variations by @lukekim (opens in a new tab) in #7484 (opens in a new tab)
- Add better snapshot validation for incorrectly configured spicepods by @phillipleblanc (opens in a new tab) in #7487 (opens in a new tab)
- Move blocking/sync I/O to spawn blocking by @lukekim (opens in a new tab) in #7462 (opens in a new tab)
- Add DuckDB file accelerator 2G and 4G dispatches by @lukekim (opens in a new tab) in #7491 (opens in a new tab)
- Validate spicepod file exists before running tests by @lukekim (opens in a new tab) in #7492 (opens in a new tab)
- Make snapshot reading/writing more robust with Iceberg-like metadata.json by @phillipleblanc (opens in a new tab) in #7486 (opens in a new tab)
- Re-use build-testoperator and ensure it's cached by @lukekim (opens in a new tab) in #7494 (opens in a new tab)
- Fix duckdb test operator limit casing by @lukekim (opens in a new tab) in #7498 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7499 (opens in a new tab)
- Create
runtime-request-context crate by @Jeadie (opens in a new tab) in #7459 (opens in a new tab)
- Add integration tests for Acceleration DB snapshotting by @phillipleblanc (opens in a new tab) in #7489 (opens in a new tab)
- Two minor fixes for AI udf tests by @krinart (opens in a new tab) in #7503 (opens in a new tab)
- Add model response timeout for ai udf tests by @krinart (opens in a new tab) in #7504 (opens in a new tab)
- Show error if FTS is misconfigured for datasets/views by @krinart (opens in a new tab) in #7458 (opens in a new tab)
- Add test for chunked search index with search field as metadata by @Jeadie (opens in a new tab) in #7513 (opens in a new tab)
- Add sccache for build test operator by @lukekim (opens in a new tab) in #7515 (opens in a new tab)
- Enhancement: Add
spill_compression to runtime config by @krinart (opens in a new tab) in #7505 (opens in a new tab)
- Improve GitHub Data Connector by @lukekim (opens in a new tab) in #7510 (opens in a new tab)
- Add
RequestTimeoutException to S3 client by @Jeadie (opens in a new tab) in #7514 (opens in a new tab)
- Add
sha=<> to snapshot logging by @phillipleblanc (opens in a new tab) in #7521 (opens in a new tab)
- Add Type to GitHub Data Connector issues and fix double aliasing for project author by @lukekim (opens in a new tab) in #7519 (opens in a new tab)
- DuckDB acceleration: fix memory leak in duckdb_arrow_scan by @sgrebnov (opens in a new tab) in #7524 (opens in a new tab)
- Fix partition_by accelerations when a projection is applied on empty partition sets by @phillipleblanc (opens in a new tab) in #7526 (opens in a new tab)
- Nullable fields for index columns by @Jeadie (opens in a new tab) in #7523 (opens in a new tab)
- Fix missing winver dependency for Windows by @krinart (opens in a new tab) in #7538 (opens in a new tab)
- Update mongo config for benchmarks by @krinart (opens in a new tab) in #7546 (opens in a new tab)
- Add acceleration snapshots cookbook to template by @phillipleblanc (opens in a new tab) in #7527 (opens in a new tab)
- Bump github/codeql-action from 3 to 4 by @app/dependabot (opens in a new tab) in #7535 (opens in a new tab)
- Bump golang.org/x/sys from 0.36.0 to 0.37.0 by @app/dependabot (opens in a new tab) in #7529 (opens in a new tab)
- Make
spice chat play nice with Unix pipes by @Jeadie (opens in a new tab) in #7525 (opens in a new tab)
- Configurable DuckDB duckdb_index_scan_percentage & duckdb_index_scan_max_count by @lukekim (opens in a new tab) in #7551 (opens in a new tab)
- [cherry-pick] Release notes for release 1.8.1 by @krinart (opens in a new tab) in #7556 (opens in a new tab)
- Fix 1.8.1 release notes by @krinart (opens in a new tab) in #7558 (opens in a new tab)
- FTS index with nonfilterable metadata; search field not metadata by default. by @Jeadie (opens in a new tab) in #7548 (opens in a new tab)
- Properly set auth headers in github_release.py by @krinart (opens in a new tab) in #7560 (opens in a new tab)
- project_schema when using EmptyExec by @kczimm (opens in a new tab) in #7543 (opens in a new tab)
- Add 1.8.1 release analytics by @kczimm (opens in a new tab) in #7561 (opens in a new tab)
- Bump golang.org/x/mod from 0.28.0 to 0.29.0 by @app/dependabot (opens in a new tab) in #7530 (opens in a new tab)
- Hive-style partitioning for DuckDB file mode by @kczimm (opens in a new tab) in #7563 (opens in a new tab)
- Vortex Data Accelerator (Dev grade) by @lukekim (opens in a new tab) in #7566 (opens in a new tab)
- Only load eval scorers when eval defined by @Jeadie (opens in a new tab) in #7549 (opens in a new tab)
- Bump octocrab from 0.45.0 to 0.47.0 by @app/dependabot (opens in a new tab) in #7531 (opens in a new tab)
- Bump regex from 1.11.3 to 1.12.1 by @app/dependabot (opens in a new tab) in #7532 (opens in a new tab)
- Fix custom file path for Vortex Data Accelerator by @phillipleblanc (opens in a new tab) in #7570 (opens in a new tab)
- Add List type support to Vortex Data Accelerator by @lukekim (opens in a new tab) in #7569 (opens in a new tab)
- Bump parking_lot from 0.12.4 to 0.12.5 by @app/dependabot (opens in a new tab) in #7534 (opens in a new tab)
- Bump tokio-postgres from 0.7.14 to 0.7.15 by @app/dependabot (opens in a new tab) in #7533 (opens in a new tab)
- Remove duplicate line from 1.8.1 release notes by @krinart (opens in a new tab) in #7580 (opens in a new tab)
- Upgrade Go from v1.24.2 to v1.25.3 by @lukekim (opens in a new tab) in #7582 (opens in a new tab)
- Fix race condition in S3 Vectors index and bucket creation by @kczimm (opens in a new tab) in #7577 (opens in a new tab)
- Add
runtime-async crate with managed Tokio runtime by @phillipleblanc (opens in a new tab) in #7575 (opens in a new tab)
- Optimize GitHub Actions workflows by @lukekim (opens in a new tab) in #7584 (opens in a new tab)
- Use 'location' as primary key for document tables by @Jeadie (opens in a new tab) in #7567 (opens in a new tab)
- Extend query-related metrics by @krinart (opens in a new tab) in #7571 (opens in a new tab)
- Enabling acceleration refresh metrics by using
runtime.metrics config by @krinart (opens in a new tab) in #7583 (opens in a new tab)
- S3Vector service metrics in client by @Jeadie (opens in a new tab) in #7502 (opens in a new tab)
- Fix score order for one test case by @Jeadie (opens in a new tab) in #7595 (opens in a new tab)
ObjectMeta filter pushdown for ObjectStoreTextTable by @Jeadie (opens in a new tab) in #7572 (opens in a new tab)
- Return
TableProvider from CandidateGeneration::search. by @Jeadie (opens in a new tab) in #7559 (opens in a new tab)
- EmptyHashJoinExecPhysicalOptimization, and use in VectorScanTableProvider by @Jeadie (opens in a new tab) in #7587 (opens in a new tab)
- Update official Docker builds to use release binaries by @phillipleblanc (opens in a new tab) in #7597 (opens in a new tab)
- New Generate Changelog workflow by @krinart (opens in a new tab) in #7562 (opens in a new tab)
- BytesProcessedExec to allow optimizer to do limit pushdown by @mach-kernel (opens in a new tab) in #7539 (opens in a new tab)
- GitHub Data Connector add Projects, improve rate-limiting and error handling by @lukekim (opens in a new tab) in #7547 (opens in a new tab)
- Add copilot-instructions to help improve Copilot reviews by @lukekim (opens in a new tab) in #7606 (opens in a new tab)
- Add support for DuckDB table-based partitioning by @sgrebnov (opens in a new tab) in #7581 (opens in a new tab)
- fix: Use nextest for integration models tests by @peasee (opens in a new tab) in #7617 (opens in a new tab)
- Fix license issue in table-providers by @phillipleblanc (opens in a new tab) in #7620 (opens in a new tab)
- Remove
Build Docker Image from PR checks by @phillipleblanc (opens in a new tab) in #7621 (opens in a new tab)
- Combine PR Lint + Build checks by @phillipleblanc (opens in a new tab) in #7623 (opens in a new tab)
- Remove Cache Rust builds step by @phillipleblanc (opens in a new tab) in #7625 (opens in a new tab)
- Rename
duckdb_partition_mode to partition_mode param by @sgrebnov (opens in a new tab) in #7622 (opens in a new tab)
- DuckDB table partitioning: delete partitions that no longer exist after full refresh by @sgrebnov (opens in a new tab) in #7614 (opens in a new tab)
- Build integration test binaries in single job by @phillipleblanc (opens in a new tab) in #7624 (opens in a new tab)
- Make DuckDB table partition data write threshold configurable by @sgrebnov (opens in a new tab) in #7626 (opens in a new tab)
- Handle table relations in HTTP v1/search by @Jeadie (opens in a new tab) in #7615 (opens in a new tab)
- Fix E2E Test sporadic failures on the macOS runners by @phillipleblanc (opens in a new tab) in #7627 (opens in a new tab)
- Emit
query_active_count metric by @krinart (opens in a new tab) in #7589 (opens in a new tab)
- fix: Disable go cache in actions by @peasee (opens in a new tab) in #7631 (opens in a new tab)
- fix: Don't nullify DuckDB release callbacks for schemas by @peasee (opens in a new tab) in #7628 (opens in a new tab)
- Fix integration tests by reverting the use of batch inserts w/ prepared statements by @phillipleblanc (opens in a new tab) in #7630 (opens in a new tab)
- Split integration tests into 3 partitions by @phillipleblanc (opens in a new tab) in #7635 (opens in a new tab)
- Initial Pepper data accelerator by @lukekim (opens in a new tab) in #7592 (opens in a new tab)
- Only build the E2E Test CI binaries once by @phillipleblanc (opens in a new tab) in #7633 (opens in a new tab)
- Update BytesProcessedExec snapshots by @mach-kernel (opens in a new tab) in #7637 (opens in a new tab)
- Properly set RequestContext for stream execution in Flight by @krinart (opens in a new tab) in #7591 (opens in a new tab)
- Add task for creating release branch in docs by @kczimm (opens in a new tab) in #7642 (opens in a new tab)
- Add missing mongodb params by @krinart (opens in a new tab) in #7647 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7649 (opens in a new tab)
- Release notes for v1.8.2 by @Jeadie (opens in a new tab) in #7645 (opens in a new tab)
- docs: Update error handling in copilot instructions by @peasee (opens in a new tab) in #7652 (opens in a new tab)
- Pepper accelerator INSERT OVERWRITE support by @lukekim (opens in a new tab) in #7643 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7650 (opens in a new tab)
- Run Datafusion queries on a separate Tokio runtime by @phillipleblanc (opens in a new tab) in #7586 (opens in a new tab)
- Add explicit steps for docs DRI in end game by @kczimm (opens in a new tab) in #7658 (opens in a new tab)
- Add Release 1.8.2 QA Analytics by @krinart (opens in a new tab) in #7661 (opens in a new tab)
- Pepper full / append refresh support by @lukekim (opens in a new tab) in #7662 (opens in a new tab)
- Add 'client_timeout' for s3 vector by @Jeadie (opens in a new tab) in #7501 (opens in a new tab)
- Improvements to Endgame template by @krinart (opens in a new tab) in #7660 (opens in a new tab)
- Fix OSS docker release trigger when release marked as latest by @phillipleblanc (opens in a new tab) in #7668 (opens in a new tab)
- Use '#[serde(deny_unknown_fields)]' for base spicepod components by @Jeadie (opens in a new tab) in #7669 (opens in a new tab)
- DataFusion upgrade template to include Ballista by @mach-kernel (opens in a new tab) in #7679 (opens in a new tab)
- S3 Vector index spilling by @kczimm (opens in a new tab) in #7613 (opens in a new tab)
- Refresh request context bindings / fix trunk integration tests by @mach-kernel (opens in a new tab) in #7680 (opens in a new tab)
- Fix integration tests for refresh append by @lukekim (opens in a new tab) in #7681 (opens in a new tab)
- Distributed query support by @mach-kernel (opens in a new tab) in #7585 (opens in a new tab)
- Run acceleration refreshes on separate Tokio runtime by @phillipleblanc (opens in a new tab) in #7671 (opens in a new tab)
- Support DESCRIBE in clustered mode by @kczimm (opens in a new tab) in #7686 (opens in a new tab)
- use hyphen instead of period for index name spill separator by @kczimm (opens in a new tab) in #7697 (opens in a new tab)
- Add streaming option to /nsql endpoint by @kczimm (opens in a new tab) in #7695 (opens in a new tab)
- Task History
min_sql_duration filter support by @lukekim (opens in a new tab) in #7698 (opens in a new tab)
- Spawn
object_store IO tasks on the original Tokio runtime by @phillipleblanc (opens in a new tab) in #7689 (opens in a new tab)
- Update openapi.json by @app/github-actions (opens in a new tab) in #7700 (opens in a new tab)
- Adjust DataFusion runtime worker threads by @phillipleblanc (opens in a new tab) in #7704 (opens in a new tab)
- Gate dedicated SQL engine CPU runtime behind opt-in param
dedicated_thread_pool by @phillipleblanc (opens in a new tab) in #7705 (opens in a new tab)
- Add TPCH S3 refresh spicepod by @phillipleblanc (opens in a new tab) in #7706 (opens in a new tab)
- DuckDB: include ANALYZE after write to update query optimizer statistics by @sgrebnov (opens in a new tab) in #7714 (opens in a new tab)
- Display execution time in Spice REPL for no results by @sgrebnov (opens in a new tab) in #7713 (opens in a new tab)
- Task History capture and store SQL query plans by @lukekim (opens in a new tab) in #7701 (opens in a new tab)
- Pepper TPC-H SF-1 benchmark by @lukekim (opens in a new tab) in #7717 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7720 (opens in a new tab)
- Optimize prepared statements (parameterized queries) by @lukekim (opens in a new tab) in #7703 (opens in a new tab)
- Pepper accelerator tests (Clickbench, TPC-H SF-5, SF-100) by @lukekim (opens in a new tab) in #7721 (opens in a new tab)
- Add support for DuckDB
connection_pool_size param by @sgrebnov (opens in a new tab) in #7716 (opens in a new tab)
- Add health probing to testoperator runs by @phillipleblanc (opens in a new tab) in #7709 (opens in a new tab)
- Simplify
AcceleratedTable by @Jeadie (opens in a new tab) in #7724 (opens in a new tab)
- Add some basic indexing tests for 'FullTextDatabaseIndex' by @Jeadie (opens in a new tab) in #7688 (opens in a new tab)
- DuckDB:
on_refresh_recompute_statistics param + ANALYZE for table-based partitioning by @sgrebnov (opens in a new tab) in #7719 (opens in a new tab)
- Fix Windows builds by excluding pepper/vortex by @phillipleblanc (opens in a new tab) in #7729 (opens in a new tab)
- Enable separate CPU runtime thread pool for DataFusion by default by @phillipleblanc (opens in a new tab) in #7732 (opens in a new tab)
- 'runtime-datafusion' crate for runtime related DataFusion components by @Jeadie (opens in a new tab) in #7666 (opens in a new tab)
- Pepper expanded append refresh support by @lukekim (opens in a new tab) in #7670 (opens in a new tab)
- Pepper basic partitioning by @lukekim (opens in a new tab) in #7731 (opens in a new tab)
- Stable pepper benchmark snapshots by @phillipleblanc (opens in a new tab) in #7739 (opens in a new tab)
- Delta Lake Connector: Support
AWS_SESSION_TOKEN parameter by @mach-kernel (opens in a new tab) in #7752 (opens in a new tab)
- Pepper use SQLite WAL by @lukekim (opens in a new tab) in #7757 (opens in a new tab)
- v1.8.3 release notes by @mach-kernel (opens in a new tab) in #7745 (opens in a new tab)
- Increase testoperator health check threshold to 50ms by @phillipleblanc (opens in a new tab) in #7767 (opens in a new tab)
- Data Accelerator Graceful Shutdown by @lukekim (opens in a new tab) in #7756 (opens in a new tab)
- Remove Windows CUDA builds by @phillipleblanc (opens in a new tab) in #7768 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7771 (opens in a new tab)
- Bump actions/download-artifact from 5 to 6 by @app/dependabot (opens in a new tab) in #7746 (opens in a new tab)
- Bump serde from 1.0.226 to 1.0.228 by @app/dependabot (opens in a new tab) in #7743 (opens in a new tab)
- Fix casing for keywords and additional columns by @Jeadie (opens in a new tab) in #7770 (opens in a new tab)
- Bump actions/upload-artifact from 4 to 5 by @app/dependabot (opens in a new tab) in #7750 (opens in a new tab)
- Bump criterion from 0.5.1 to 0.7.0 by @app/dependabot (opens in a new tab) in #7740 (opens in a new tab)
- Bump rustls-native-certs from 0.8.1 to 0.8.2 by @app/dependabot (opens in a new tab) in #7744 (opens in a new tab)
- Git Data Connector (Alpha) by @lukekim (opens in a new tab) in #7772 (opens in a new tab)
- Pepper accelerator delete support by @lukekim (opens in a new tab) in #7616 (opens in a new tab)
- Update Helm chart instructions for Helm in end_game.md by @sgrebnov (opens in a new tab) in #7776 (opens in a new tab)
- Turso data accelerator by @lukekim (opens in a new tab) in #7472 (opens in a new tab)
- Apply retention SQL filter to refresh fetch by @phillipleblanc (opens in a new tab) in #7778 (opens in a new tab)
- Add Parquet buffering option for DuckDB partitioned writes (tables mode) by @sgrebnov (opens in a new tab) in #7735 (opens in a new tab)
- fix: EmptyExec when list indexes is empty by @kczimm (opens in a new tab) in #7784 (opens in a new tab)
- 1.8.3 post-release housekeeping by @mach-kernel (opens in a new tab) in #7783 (opens in a new tab)
- feat: Upgrade to Datafusion v50 by @peasee (opens in a new tab) in #7777 (opens in a new tab)
- fix: Replace vortex datafusion with public crate by @peasee (opens in a new tab) in #7791 (opens in a new tab)
- Full-text search on views by @Jeadie (opens in a new tab) in #7733 (opens in a new tab)
- Revert "Apply retention SQL filter to refresh fetch (#7778)" by @phillipleblanc (opens in a new tab) in #7796 (opens in a new tab)
- fix: Add ingest duration and acceleration size metrics to testoperator by @peasee (opens in a new tab) in #7792 (opens in a new tab)
- Set local timezone to UTC for DuckDB by @phillipleblanc (opens in a new tab) in #7797 (opens in a new tab)
- add Timestamp support for partition expressions by @kczimm (opens in a new tab) in #7803 (opens in a new tab)
- Fix trunk lint by @krinart (opens in a new tab) in #7804 (opens in a new tab)
- Add missing mongodb params by @krinart (opens in a new tab) in #7807 (opens in a new tab)
- Embedding columns on view components by @Jeadie (opens in a new tab) in #7795 (opens in a new tab)
- Add Turso as a Pepper Catalog metastore by @lukekim (opens in a new tab) in #7793 (opens in a new tab)
- Run retention_sql on refresh commit for DuckDB by @lukekim (opens in a new tab) in #7785 (opens in a new tab)
- docs: Update datafusion upgrade checklist by @peasee (opens in a new tab) in #7812 (opens in a new tab)
- Vector engines on views by @Jeadie (opens in a new tab) in #7808 (opens in a new tab)
- Handle refresh worker panics and add recovery test by @phillipleblanc (opens in a new tab) in #7815 (opens in a new tab)
- chunk large record batches to control memory usage by @kczimm (opens in a new tab) in #7802 (opens in a new tab)
- fix: cannot determine vector dimension for partitioned indexes by @kczimm (opens in a new tab) in #7818 (opens in a new tab)
- Upgrade to Turso v0.3 by @lukekim (opens in a new tab) in #7821 (opens in a new tab)
- fix: Ensure custom *Exec ExecutionPlans push down dynamic filters by @peasee (opens in a new tab) in #7811 (opens in a new tab)
- handle casing in RRF by @Jeadie (opens in a new tab) in #7825 (opens in a new tab)
- Enable 'turso' for pepper acceleration by default by @sgrebnov (opens in a new tab) in #7826 (opens in a new tab)
- Improved DynamoDB Data Connector by @krinart (opens in a new tab) in #7715 (opens in a new tab)
- Initial support for llama.cpp as LLM inference backend by @lukekim (opens in a new tab) in #7794 (opens in a new tab)
- Pepper: Implement retention SQL on refresh commit by @phillipleblanc (opens in a new tab) in #7814 (opens in a new tab)
- Fix Dockerfiles for arm64 by @lukekim (opens in a new tab) in #7834 (opens in a new tab)
- [DynamoDB] Handle filter edge-cases by @krinart (opens in a new tab) in #7830 (opens in a new tab)
- [DynamoDB] Support parallelization for
Scan request by @krinart (opens in a new tab) in #7829 (opens in a new tab)
- Don't feature gate Pepper by @lukekim (opens in a new tab) in #7832 (opens in a new tab)
- Fix llama.cpp static link by @lukekim (opens in a new tab) in #7835 (opens in a new tab)
- fix: docker nightly builds by @kczimm (opens in a new tab) in #7837 (opens in a new tab)
- Use GitHub-hosted macOS runner only for tag releases by @lukekim (opens in a new tab) in #7836 (opens in a new tab)
- Fix Bug: DuckDB INTERNAL Error: Failed to load metadata pointer by @sgrebnov (opens in a new tab) in #7839 (opens in a new tab)
- Fix docker arm64 build to use aegis in pure-rust mode by @lukekim (opens in a new tab) in #7840 (opens in a new tab)
- Revert "Use GitHub-hosted macOS runner only for tag releases" by @lukekim (opens in a new tab) in #7843 (opens in a new tab)
- Rename Pepper to Cayenne by @lukekim (opens in a new tab) in #7844 (opens in a new tab)
- Tighten CLI permissions and install script by @lukekim (opens in a new tab) in #7845 (opens in a new tab)
- Set mvcc for Cayenne Turso metastore by @lukekim (opens in a new tab) in #7850 (opens in a new tab)
- Optimize Prepared Statements by @lukekim (opens in a new tab) in #7859 (opens in a new tab)
- Remove unwrap from ODBC connector, fix secrets, and kuberenetes secre… by @lukekim (opens in a new tab) in #7846 (opens in a new tab)
- Improve and secure HTTP client usage by @lukekim (opens in a new tab) in #7847 (opens in a new tab)
- Pin Oracle Instant Client download to a SHA by @lukekim (opens in a new tab) in #7851 (opens in a new tab)
- Improve experience for missing or invalid Spicepod.yaml by @lukekim (opens in a new tab) in #7849 (opens in a new tab)
- chore: Fix PR linting by @peasee (opens in a new tab) in #7865 (opens in a new tab)
- Revert FlightIPC issues by @Jeadie (opens in a new tab) in #7870 (opens in a new tab)
- Bump Jimver/cuda-toolkit from 0.2.28 to 0.2.29 by @app/dependabot (opens in a new tab) in #7878 (opens in a new tab)
- Optimize macOS and Windows builds by @lukekim (opens in a new tab) in #7863 (opens in a new tab)
- Improve error message by adding 'cayenne' to the list of valid accelerator engines by @sgrebnov (opens in a new tab) in #7882 (opens in a new tab)
- fix: Kafka message delivery failed by @kczimm (opens in a new tab) in #7883 (opens in a new tab)
- fix: allow parameter index without dollar signs by @kczimm (opens in a new tab) in #7887 (opens in a new tab)
- docs: Update component criteria by @peasee (opens in a new tab) in #7891 (opens in a new tab)
- Temporary disable
supports_limit_pushdown for SchemaCastScanExec by @sgrebnov (opens in a new tab) in #7893 (opens in a new tab)
- fix: Make integration run with no relevant changes, disable makefile targets on PR by @peasee (opens in a new tab) in #7896 (opens in a new tab)
- Add Cayenne benchmark and concurrency tests and remove indexes for Turso MVCC by @lukekim (opens in a new tab) in #7879 (opens in a new tab)
- Remove '.embeddings[].metadata' by @Jeadie (opens in a new tab) in #7897 (opens in a new tab)
- Revert llama.cpp engine by @lukekim (opens in a new tab) in #7898 (opens in a new tab)
- Make Cayenne snapshotting more robust by @sgrebnov (opens in a new tab) in #7899 (opens in a new tab)
- Release notes v1.9.0-rc1 by @Jeadie (opens in a new tab) in #7902 (opens in a new tab)
- Fix
dataset_acceleration_last_refresh_time_ms unit to milliseconds in description by @ewgenius (opens in a new tab) in #7901 (opens in a new tab)
- Fix lint error in record_explain_plan functionality by @sgrebnov (opens in a new tab) in #7906 (opens in a new tab)
- Cleanup old snapshots after full refresh by @lukekim (opens in a new tab) in #7908 (opens in a new tab)
- Cayenne deletion vector caching support by @lukekim (opens in a new tab) in #7903 (opens in a new tab)
- Split filters into partition filters (for pruning) and data filters by @lukekim (opens in a new tab) in #7889 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7911 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7912 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7913 (opens in a new tab)
- Update spicepod.schema.json by @app/github-actions (opens in a new tab) in #7916 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7917 (opens in a new tab)
- Add Cayenne & Turso accelerators to E2E CI test matrix by @lukekim (opens in a new tab) in #7922 (opens in a new tab)
- Make preview warnings consistent by @lukekim (opens in a new tab) in #7921 (opens in a new tab)
- Filter and write optimizations by @lukekim (opens in a new tab) in #7918 (opens in a new tab)
- fix: Set sccache region explicitly by @peasee (opens in a new tab) in #7928 (opens in a new tab)
- fix: Enable integration test merge group checks by @peasee (opens in a new tab) in #7927 (opens in a new tab)
- Update testoperator release branch from 1.8 to 1.9 by @peasee (opens in a new tab) in #7926 (opens in a new tab)
- Update DuckDB to 1.4.1 with composite ART scans by @mach-kernel (opens in a new tab) in #7884 (opens in a new tab)
- Don't build Windows on trunk pushes by @lukekim (opens in a new tab) in #7931 (opens in a new tab)
- fix: Use correct minio secret in build binary push by @peasee (opens in a new tab) in #7934 (opens in a new tab)
- Update test-framework workers to use dedicated Flight client by @sgrebnov (opens in a new tab) in #7938 (opens in a new tab)
- Fix financebench, configure s3vectors for appropriate snapshotting by @Jeadie (opens in a new tab) in #7935 (opens in a new tab)
- Don't try to initialize accelerator if it is disabled by @lukekim (opens in a new tab) in #7932 (opens in a new tab)
- Add spark UDFs to Spice by @Jeadie (opens in a new tab) in #7936 (opens in a new tab)
- Fix extra async_trait in cayenne metadata catalog by @phillipleblanc (opens in a new tab) in #7942 (opens in a new tab)
- deps: Upgrade to Rust 1.90 by @peasee (opens in a new tab) in #7941 (opens in a new tab)
- Add cayenne accelerator to README.md by @ewgenius (opens in a new tab) in #7905 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7948 (opens in a new tab)
- Run integration tests with
AWS_EC2_METADATA_DISABLED flag by @sgrebnov (opens in a new tab) in #7952 (opens in a new tab)
- Only retry credentials on ConnectorError by @kczimm (opens in a new tab) in #7944 (opens in a new tab)
- fix: Improve join reordering by ensuring
JoinSelection is applied by @peasee (opens in a new tab) in #7828 (opens in a new tab)
- fix: Remove unused deps, consolidate workspace deps by @peasee (opens in a new tab) in #7953 (opens in a new tab)
- bump async-openai commit by @kczimm (opens in a new tab) in #7929 (opens in a new tab)
- deps: Use vortex fork by @peasee (opens in a new tab) in #7954 (opens in a new tab)
- Enable tracing in delta lake integration tests by @sgrebnov (opens in a new tab) in #7951 (opens in a new tab)
- Update datasets in S3 vectors test case by @Jeadie (opens in a new tab) in #7956 (opens in a new tab)
- Add spiced metrics scraping to test operator by @lukekim (opens in a new tab) in #7937 (opens in a new tab)
- Memoize S3 vectors ListIndex API call with configurable TTL by @kczimm (opens in a new tab) in #7910 (opens in a new tab)
- Cayenne performance optimizations by @lukekim (opens in a new tab) in #7907 (opens in a new tab)
- Setup HotFix issue template by @ewgenius (opens in a new tab) in #7957 (opens in a new tab)
- Fix AWS SDK credential cache retry handling by @phillipleblanc (opens in a new tab) in #7943 (opens in a new tab)
- Infer RRF
join_key from TableProvider::constraints and implement SearchQueryProvider::constraints. by @Jeadie (opens in a new tab) in #7959 (opens in a new tab)
- [Optimizer]: DuckDB intermediate materialization (non-federated) by @mach-kernel (opens in a new tab) in #7964 (opens in a new tab)
- 1.7.3 post-release housekeeping by @ewgenius (opens in a new tab) in #7962 (opens in a new tab)
- Fix
digest_many UDF for ColumnarValue::Array. by @Jeadie (opens in a new tab) in #7960 (opens in a new tab)
- Fix spiced metrics reporting as part of benchmark tests by @sgrebnov (opens in a new tab) in #7967 (opens in a new tab)
- Avoid pushing down Spice specific UDFs to accelerators during federation by @Jeadie (opens in a new tab) in #7909 (opens in a new tab)
- CLI file persisted history with
.clear and .clear history commands by @lukekim (opens in a new tab) in #7970 (opens in a new tab)
- ResultsCache Cache-Control
stale-while-revalidate by @lukekim (opens in a new tab) in #7963 (opens in a new tab)
- Use GetVectors API instead of returnData by @kczimm (opens in a new tab) in #7083 (opens in a new tab)
- Make DuckDB intermediate materialization logic more robust by @sgrebnov (opens in a new tab) in #7971 (opens in a new tab)
- [Cayenne] Configurable target Vortex file size by @lukekim (opens in a new tab) in #7972 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7974 (opens in a new tab)
- Bump github.com/klauspost/compress from 1.17.11 to 1.18.1 by @app/dependabot (opens in a new tab) in #7872 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7978 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #7982 (opens in a new tab)
- Run Integration tests on spiceai-dev-runners by @sgrebnov (opens in a new tab) in #7985 (opens in a new tab)
- [CLI] Fix cursor issue due to flush by @lukekim (opens in a new tab) in #7981 (opens in a new tab)
- fix: Support S3 versioning, Vortex dynamic filter pushdown by @peasee (opens in a new tab) in #7984 (opens in a new tab)
- Make
cluster a default feature by @lukekim (opens in a new tab) in #7994 (opens in a new tab)
- Optimize DuckDB Intermediate Index Materialization for No-Index Case by @sgrebnov (opens in a new tab) in #7998 (opens in a new tab)
- HTTP connector with dynamic filter support by @lukekim (opens in a new tab) in #7969 (opens in a new tab)
- Revert federation 'can_execute_plan' by @Jeadie (opens in a new tab) in #7999 (opens in a new tab)
- Fix stale caching by @lukekim (opens in a new tab) in #7995 (opens in a new tab)
- Fix count(*) for http connector by @krinart (opens in a new tab) in #8001 (opens in a new tab)
- [CLI] Install specific version by @lukekim (opens in a new tab) in #8006 (opens in a new tab)
- Fix stale with revalidate request/response by @lukekim (opens in a new tab) in #8005 (opens in a new tab)
- Fallback
RequestContext for cluster queries by @Jeadie (opens in a new tab) in #8007 (opens in a new tab)
- Use use_rustls_tls for Spice Cloud /connect by @lukekim (opens in a new tab) in #8008 (opens in a new tab)
- Use delta-kernel-rs 0.16x + Parquet reader with object meta API changes by @mach-kernel (opens in a new tab) in #8011 (opens in a new tab)
- fix: Update datafusion & arrow-rs with S3 versioning fix by @lukekim (opens in a new tab) in #8012 (opens in a new tab)
- Add 1.9.0-rc.2 release notes by @sgrebnov (opens in a new tab) in #7993 (opens in a new tab)
- Update Datafusion version by @sgrebnov (opens in a new tab) in #8014 (opens in a new tab)
- [Acceleration] DuckDB tables mode partitioner + CTE rewrite optimizer by @mach-kernel (opens in a new tab) in #8013 (opens in a new tab)
- Update spicepod.schema.json by @app/github-actions (opens in a new tab) in #8015 (opens in a new tab)
- Update acknowledgements by @app/github-actions (opens in a new tab) in #8016 (opens in a new tab)
- Upgrade shutdown signal Ordering by @krinart (opens in a new tab) in #8017 (opens in a new tab)
- Set max-age: 0 during stale by @lukekim (opens in a new tab) in #8018 (opens in a new tab)
- Add E2E test release for Helm by @lukekim (opens in a new tab) in #8023 (opens in a new tab)
- Bump github.com/olekukonko/tablewriter from 0.0.5 to 1.1.1 by @app/dependabot (opens in a new tab) in #7989 (opens in a new tab)
- Bump schemars from 0.9.0 to 1.0.4 by @app/dependabot (opens in a new tab) in #7877 (opens in a new tab)
- Update
generate_changelog script by @krinart (opens in a new tab) in #8028 (opens in a new tab)
- Update QA analytics Release 1.9.0-rc.2 by @krinart (opens in a new tab) in #8027 (opens in a new tab)
- [CLI] Improve auto-complete by @lukekim (opens in a new tab) in #8022 (opens in a new tab)
- Improve verify helm workflow by @lukekim (opens in a new tab) in #8024 (opens in a new tab)
- Bump azure_core from 0.28.0 to 0.30.0 by @app/dependabot (opens in a new tab) in #7986 (opens in a new tab)
- Test operator load test row count validation by @lukekim (opens in a new tab) in #8036 (opens in a new tab)
- fix: Revert HTTP response offloading by @peasee (opens in a new tab) in #8041 (opens in a new tab)
- Disable advanced filters pruning for partitioned tables by @sgrebnov (opens in a new tab) in #8037 (opens in a new tab)
- fix: Ensure Vortex UncompressedSizeInBytes is calculated by @peasee (opens in a new tab) in #8044 (opens in a new tab)
- Add 1.9.0-rc.3 release notes by @sgrebnov (opens in a new tab) in #8048 (opens in a new tab)
- fix: Update test snapshots by @app/github-actions (opens in a new tab) in #8046 (opens in a new tab)
- add benchmark spicepods by @Jeadie (opens in a new tab) in #8047 (opens in a new tab)
- DynamoDB TPC-H SF1 Benchmarks by @krinart (opens in a new tab) in #8043 (opens in a new tab)
- Bump github.com/AzureAD/microsoft-authentication-library-for-go from 1.5.0 to 1.6.0 by @app/dependabot (opens in a new tab) in #7988 (opens in a new tab)
- Bump golang.org/x/sys from 0.37.0 to 0.38.0 by @app/dependabot (opens in a new tab) in #7987 (opens in a new tab)
- v1.9.0-rc.2 README updates by @lukekim (opens in a new tab) in #8035 (opens in a new tab)
- Bump suppaftp from 5.4.0 to 6.3.0 by @app/dependabot (opens in a new tab) in #7875 (opens in a new tab)
- Bump ctor from 0.5.0 to 0.6.0 by @app/dependabot (opens in a new tab) in #7873 (opens in a new tab)
- WW README Update by @wyattwenzel (opens in a new tab) in #8058 (opens in a new tab)
- Reenable dynamic federation support by @Jeadie (opens in a new tab) in #8026 (opens in a new tab)
- fix: Prevent SortExec from ordering below SchemaCastScanExec by @peasee (opens in a new tab) in #8061 (opens in a new tab)
- Skip logging and return OK() on error during shutdown by @krinart (opens in a new tab) in #8057 (opens in a new tab)
- Partition pruning with complex expressions by @lukekim (opens in a new tab) in #8040 (opens in a new tab)
- Update openapi.json by @app/github-actions (opens in a new tab) in #8064 (opens in a new tab)
- Make DynamoDB snapshots consistent by @krinart (opens in a new tab) in #8069 (opens in a new tab)
- Add check for error log by @krinart (opens in a new tab) in #8070 (opens in a new tab)
- Fix tracing of 's3_vector_query_and_get' by @Jeadie (opens in a new tab) in #8065 (opens in a new tab)
- DuckDB v1.4.2 by @mach-kernel (opens in a new tab) in #8073 (opens in a new tab)
- Fix failing OpenAI test by @krinart (opens in a new tab) in #8076 (opens in a new tab)
- Enable 'test_recency_scoring' by @Jeadie (opens in a new tab) in #8068 (opens in a new tab)
- Test operator: avoid duplicate Flight requests when using --http-clients by @sgrebnov (opens in a new tab) in #8071 (opens in a new tab)
- Update load tests to use truth percentile values by @sgrebnov (opens in a new tab) in #8079 (opens in a new tab)
- Update DynamoDB to RC by @krinart (opens in a new tab) in #8060 (opens in a new tab)
CachedQueryVector to avoid recomputing embedding vector for spilling/partitioned vector indexes. by @Jeadie (opens in a new tab) in #8059 (opens in a new tab)
- Fix DuckDB on_commit sink race by @lukekim (opens in a new tab) in #8081 (opens in a new tab)
- Add partitioned duckdb by @lukekim (opens in a new tab) in #8083 (opens in a new tab)
- [CLI] Security and santization by @lukekim (opens in a new tab) in #8082 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #8084 (opens in a new tab)
- Fix partition_by expression by @lukekim (opens in a new tab) in #8087 (opens in a new tab)
- Data Components security fixes and sanitization by @lukekim (opens in a new tab) in #8086 (opens in a new tab)
- Runtime security and sanitization by @lukekim (opens in a new tab) in #8088 (opens in a new tab)
- Add spicepod-validator tool and fix spicepods by @lukekim (opens in a new tab) in #8089 (opens in a new tab)
- Skip data fetches for S3 single file refreshes by @lukekim (opens in a new tab) in #8072 (opens in a new tab)
- MCP security and sanitization by @lukekim (opens in a new tab) in #8090 (opens in a new tab)
- Update spicepod.schema.json by @app/github-actions (opens in a new tab) in #8099 (opens in a new tab)
- Update acknowledgements by @app/github-actions (opens in a new tab) in #8098 (opens in a new tab)
- Add install-dev target back to Makefile by @Jeadie (opens in a new tab) in #8100 (opens in a new tab)
- fix 'testoperator run search' by @Jeadie (opens in a new tab) in #8101 (opens in a new tab)
- Update datafusion-table-providers - fix nullability inferences for MySQL and PostgreSQL, and fix full text search for PostgreSQL by @ewgenius (opens in a new tab) in #8092 (opens in a new tab)
- Remove duplicate install-with-models by @phillipleblanc (opens in a new tab) in #8107 (opens in a new tab)
- Improve Cayenne partitioning by @lukekim (opens in a new tab) in #8097 (opens in a new tab)
- Testoperator dispatch: respect
verify_results dispatch configuration by @sgrebnov (opens in a new tab) in #8106 (opens in a new tab)
- Include 'match' column only if chunk offsets found in seach query 'LogicalPlan' by @Jeadie (opens in a new tab) in #8102 (opens in a new tab)
- Fix validation path by @lukekim (opens in a new tab) in #8109 (opens in a new tab)
- Fix dispatch paths by @lukekim (opens in a new tab) in #8110 (opens in a new tab)
- Fix dispatch spicepod paths by @lukekim (opens in a new tab) in #8112 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #8113 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #8114 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #8116 (opens in a new tab)
- Update test Spicepods by @lukekim (opens in a new tab) in #8131 (opens in a new tab)
- Add validation to reference schema by @lukekim (opens in a new tab) in #8111 (opens in a new tab)
- Include root error when failing to find latest timestamp in accelerated table by @sgrebnov (opens in a new tab) in #8132 (opens in a new tab)
- fix: HTTP Connector validation, query and body by @lukekim (opens in a new tab) in #8115 (opens in a new tab)
- Update nsql model list by @lukekim (opens in a new tab) in #8141 (opens in a new tab)
- Update DynamoDB Benchmarks by @krinart (opens in a new tab) in #8135 (opens in a new tab)
- Fix Dremio E2E test by @sgrebnov (opens in a new tab) in #8139 (opens in a new tab)
- fix: Update MongoDB benchmark snapshots by @app/github-actions (opens in a new tab) in #8143 (opens in a new tab)
- fix: Update DynamoDB benchmark snapshots by @app/github-actions (opens in a new tab) in #8142 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #8145 (opens in a new tab)
- fix: Update iceberg[catalog] benchmark snapshots by @app/github-actions (opens in a new tab) in #8144 (opens in a new tab)
- Improve HTTP Connector UX by @lukekim (opens in a new tab) in #8146 (opens in a new tab)
- QueryOverrides for DynamoDB benchmarks by @krinart (opens in a new tab) in #8151 (opens in a new tab)
- test-framework: add row count validation skipping with TPC-DS defaults by @sgrebnov (opens in a new tab) in #8149 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #8148 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #8154 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #8155 (opens in a new tab)
- fix: Update test snapshots by @app/github-actions (opens in a new tab) in #8160 (opens in a new tab)
- Suppress
delta_kernel::listed_log_files warnings by @phillipleblanc (opens in a new tab) in #8158 (opens in a new tab)
- Update table providers to fix warning by @phillipleblanc (opens in a new tab) in #8156 (opens in a new tab)
- Suppress MCP limit log by @phillipleblanc (opens in a new tab) in #8159 (opens in a new tab)
- Remove incorrect tool name validation by @Jeadie (opens in a new tab) in #8161 (opens in a new tab)
- Disable results validation for federated/glue[csv].yaml by @phillipleblanc (opens in a new tab) in #8163 (opens in a new tab)
- fix: Update benchmark snapshots by @app/github-actions (opens in a new tab) in #8164 (opens in a new tab)
- Fix dynamodb overrides by @phillipleblanc (opens in a new tab) in #8165 (opens in a new tab)
- Fix dynamo db overrides again by @phillipleblanc (opens in a new tab) in #8166 (opens in a new tab)
- few more dynamodb overrides by @phillipleblanc (opens in a new tab) in #8167 (opens in a new tab)
- Add stub release notes for v1.9.0-rc.4 by @phillipleblanc (opens in a new tab) in #8168 (opens in a new tab)
- Add v1.9.0-rc.4 release notes by @lukekim (opens in a new tab) in #8169 (opens in a new tab)
- fix: Cayenne concurrent table creation by @lukekim (opens in a new tab) in #8176 (opens in a new tab)
- fix: Avoid pruning bucket partitions for != and NOT IN operators by @sgrebnov (opens in a new tab) in #8177 (opens in a new tab)