Skip to content

Commit ab7a089

Browse files
wyattwenzellukekim
andauthored
Release Post for v1.11.4 (#1406)
* Release Post for v1.11.4 * fix: convert autolink to markdown link for MDX compatibility * feat: enable mermaid diagram support in Docusaurus --------- Co-authored-by: Luke Kim <80174+lukekim@users.noreply.github.com>
1 parent 7bcbee2 commit ab7a089

2 files changed

Lines changed: 163 additions & 1 deletion

File tree

website/docusaurus.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ const config: Config = {
214214
{ name: 'twitter:creator', content: '@spice_ai' }
215215
],
216216
announcementBar: {
217-
content: '<a href="/releases/v1.11.3">Spice.ai OSS v1.11.3</a> is now available! 🛠️',
217+
content: '<a href="/releases/v1.11.4">Spice.ai OSS v1.11.4</a> is now available! ',
218218
backgroundColor: 'var(--announcement-bar-bg)',
219219
textColor: 'var(--announcement-bar-text)',
220220
isCloseable: true

website/releases/v1.11.4.md

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
---
2+
date: 2026-03-12
3+
title: 'Spice v1.11.4 (Mar 12, 2026)'
4+
type: blog
5+
authors: [sgrebnov]
6+
tags: [release, s3, data-connector, acceleration]
7+
8+
---
9+
Announcing the release of Spice v1.11.4! ⚡
10+
11+
Spice v1.11.4 is a patch release improving **S3** metadata column query robustness and enabling **`on_zero_results: use_source`** for accelerated views.
12+
13+
## What's New in v1.11.4
14+
15+
### Accelerated Views: `on_zero_results: use_source` Support
16+
17+
Accelerated [views](https://spiceai.org/docs/components/views) now support the [`on_zero_results: use_source`](https://spiceai.org/docs/features/data-acceleration/data-refresh#behavior-on-zero-results) configuration ([#9699](https://github.com/spiceai/spiceai/pull/9699)). Previously, accelerated views only supported `on_zero_results: return_empty`, which returned an empty result set when the accelerated data contained no matching rows. With this change, views can fall back to querying the source data when the accelerated query returns zero results, matching the behavior already available for accelerated datasets.
18+
19+
**Example configuration:**
20+
21+
```yaml
22+
views:
23+
- name: sales_summary
24+
sql: |
25+
SELECT region, SUM(amount) as total
26+
FROM sales
27+
GROUP BY region
28+
acceleration:
29+
enabled: true
30+
on_zero_results: use_source
31+
```
32+
33+
#### How the Fallback Works
34+
35+
When an accelerated view is configured with `on_zero_results: use_source`, the following happens at query time:
36+
37+
1. **The accelerated store is queried first.** The query runs against the view's accelerated data (e.g., Spice Cayenne, Arrow, DuckDB, or SQLite).
38+
39+
2. **If the accelerated query returns zero rows**, the runtime falls back to re-executing the view's SQL query against the datasets it references.
40+
41+
3. **Referenced datasets are queried according to their own configuration.** The view's SQL is re-executed against each referenced dataset as it is configured. This means:
42+
43+
- If a referenced dataset is **accelerated**, the query hits that dataset's accelerated store — not the raw data source.
44+
- If a referenced dataset is **accelerated with `on_zero_results: use_source`** and its accelerated store also returns zero rows, it will independently fall back to its own federated data source (e.g., Postgres, S3, etc.).
45+
- If a referenced dataset is **federated** (not accelerated), the query goes directly to the data source.
46+
47+
This means the fallback can chain through multiple layers: first the view's acceleration, then each referenced dataset's acceleration, and finally the original data source — each layer independently applying its own `on_zero_results` behavior.
48+
49+
**Example: Multi-layer fallback**
50+
51+
```yaml
52+
datasets:
53+
- from: postgres:orders
54+
name: orders
55+
acceleration:
56+
enabled: true
57+
refresh_sql: "SELECT * FROM orders WHERE created_at > now() - interval '7 days'"
58+
on_zero_results: use_source # Falls back to Postgres if accelerated data has no matches
59+
60+
views:
61+
- name: recent_orders_summary
62+
sql: |
63+
SELECT status, COUNT(*) as order_count
64+
FROM orders
65+
GROUP BY status
66+
acceleration:
67+
enabled: true
68+
on_zero_results: use_source # Falls back to re-running the SQL against referenced datasets
69+
```
70+
71+
In this example, a query like `SELECT * FROM recent_orders_summary WHERE status = 'cancelled'` follows this path:
72+
73+
1. Queries `recent_orders_summary` in the view's accelerated store (DuckDB/SQLite).
74+
2. If zero rows are returned, re-executes `SELECT status, COUNT(*) ... FROM orders GROUP BY status` against the `orders` dataset.
75+
3. Since `orders` is accelerated, the query hits the `orders` accelerated store.
76+
4. If `orders` also returns zero rows (e.g., the `refresh_sql` excluded cancelled orders), it falls back to querying Postgres directly.
77+
78+
```mermaid
79+
flowchart TD
80+
Q["Query: SELECT * FROM recent_orders_summary<br>WHERE status = 'cancelled'"]
81+
Q --> VA["View Accelerated Store<br>(Spice Cayenne/Arrow/DuckDB/SQLite)"]
82+
VA -->|rows > 0| R1["Return Results"]
83+
VA -->|zero rows| VS["Fallback: Re-execute View SQL<br>against referenced datasets"]
84+
VS --> DA["orders — Accelerated Store<br>(DuckDB/SQLite)"]
85+
DA -->|rows > 0| R2["Return Results"]
86+
DA -->|zero rows +<br>on_zero_results: use_source| FS["Fallback: Query Federated Source<br>(Postgres)"]
87+
FS --> R3["Return Results"]
88+
89+
style Q fill:#4a90d9,color:#fff
90+
style R1 fill:#2ecc71,color:#fff
91+
style R2 fill:#2ecc71,color:#fff
92+
style R3 fill:#2ecc71,color:#fff
93+
style VA fill:#f39c12,color:#fff
94+
style DA fill:#f39c12,color:#fff
95+
style FS fill:#e74c3c,color:#fff
96+
style VS fill:#9b59b6,color:#fff
97+
```
98+
99+
### S3 Data Connector: More Robust Metadata Column Handling
100+
101+
Improved the robustness of [metadata column](https://spiceai.org/docs/components/data-connectors/#metadata-columns) (`location`, `last_modified`, `size`) handling for [S3](https://spiceai.org/docs/components/data-connectors/s3) datasets. Building on the v1.11.3 release, this update addresses an additional edge case where the query optimizer's projection swap could cause an `index out of bounds` panic when metadata columns are referenced in projections with filters or scalar functions.
102+
103+
## Contributors
104+
105+
- [@sgrebnov](https://github.com/sgrebnov)
106+
- [@krinart](https://github.com/krinart)
107+
108+
## Breaking Changes
109+
110+
No breaking changes.
111+
112+
## Cookbook Updates
113+
114+
No new cookbook recipes.
115+
116+
The [Spice Cookbook](https://spiceai.org/cookbook) includes 86 recipes to help you get started with Spice quickly and easily.
117+
118+
## Upgrading
119+
120+
To upgrade to v1.11.4, use one of the following methods:
121+
122+
**CLI**:
123+
124+
```console
125+
spice upgrade
126+
```
127+
128+
**Homebrew**:
129+
130+
```console
131+
brew upgrade spiceai/spiceai/spice
132+
```
133+
134+
**Docker**:
135+
136+
Pull the `spiceai/spiceai:1.11.4` image:
137+
138+
```console
139+
docker pull spiceai/spiceai:1.11.4
140+
```
141+
142+
For available tags, see [DockerHub](https://hub.docker.com/r/spiceai/spiceai/tags).
143+
144+
**Helm**:
145+
146+
```console
147+
helm repo update
148+
helm upgrade spiceai spiceai/spiceai --version 1.11.4
149+
```
150+
151+
**AWS Marketplace**:
152+
153+
Spice is available in the [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-jmf6jskjvnq7i).
154+
155+
## What's Changed
156+
157+
### Changelog
158+
159+
- fix(s3): Make metadata column handling more robust by [@sgrebnov](https://github.com/sgrebnov) in [#9714](https://github.com/spiceai/spiceai/pull/9714)
160+
- feat(views): Enable `on_zero_results: use_source` for accelerated views by [@krinart](https://github.com/krinart) in [#9699](https://github.com/spiceai/spiceai/pull/9699)
161+
162+
**Full Changelog**: [https://github.com/spiceai/spiceai/compare/v1.11.3...v1.11.4](https://github.com/spiceai/spiceai/compare/v1.11.3...v1.11.4)

0 commit comments

Comments
 (0)