<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://spiceai.org/blog</id>
    <title>Spice.ai OSS Blog</title>
    <updated>2025-08-27T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://spiceai.org/blog"/>
    <subtitle>Keep up to date with upcoming Spice.ai OSS releases and articles by following our feed!</subtitle>
    <icon>https://spiceai.org/img/favicon.ico</icon>
    <rights>Copyright © 2025 Spice AI, Inc.</rights>
    <entry>
        <title type="html"><![CDATA[Spice v1.6.0 (Aug 26, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.6.0</id>
        <link href="https://spiceai.org/blog/releases/v1.6.0"/>
        <updated>2025-08-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.6.0! 🔥]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.6.0! 🔥</p>
<p>Spice 1.6.0 upgrades DataFusion to v48, reducing expressions memory footprint by ~50% for faster planning and lower memory usage, eliminating unnecessary projections in queries, optimizing string functions like <code>ascii</code> and <code>character_length</code> for up to 3x speedup, and accelerating unbounded aggregate window functions by 5.6x. The release adds Kafka and MongoDB connectors for real-time streaming and NoSQL data acceleration, supports OpenAI Responses API for advanced model interactions including OpenAI-hosted tools like <code>web_search</code> and <code>code_interpreter</code>, improves the OpenAI Embeddings Connector with usage tier configuration for higher throughput via increased concurrent requests, introduces Model2Vec embeddings for ultra-low-latency encoding, and improves the Amazon S3 Vectors engine to support multi-column primary keys.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-new-in-v160">What's New in v1.6.0<a href="https://spiceai.org/blog/releases/v1.6.0#whats-new-in-v160" class="hash-link" aria-label="Direct link to What's New in v1.6.0" title="Direct link to What's New in v1.6.0">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="datafusion-v48-highlights">DataFusion v48 Highlights<a href="https://spiceai.org/blog/releases/v1.6.0#datafusion-v48-highlights" class="hash-link" aria-label="Direct link to DataFusion v48 Highlights" title="Direct link to DataFusion v48 Highlights">​</a></h3>
<p>Spice.ai is built on the DataFusion query engine. The v48 release brings:</p>
<p><strong>Performance &amp; Size Improvements 🚀</strong>: Expressions memory footprint was reduced by ~50% resulting in faster planning and lower memory usage, with planning times improved by 10-20%. There are now fewer unnecessary projections in queries. The string functions, <code>ascii</code> and <code>character_length</code> were optimized for improved performance, with <code>character_length</code> achieving up to 3x speedup. Queries with unbounded aggregate window functions have improved performance by 5.6 times via avoided unnecessary computation for constant results across partitions. The <code>Expr</code> struct size was reduced from 272 to 144 bytes.</p>
<p><strong>New Features &amp; Enhancements ✨</strong>: Support was added for <code>ORDER BY ALL</code> for easy ordering of all columns in a query.</p>
<p>See the <a href="https://datafusion.apache.org/blog/2025/07/16/datafusion-48.0.0/" target="_blank" rel="noopener noreferrer">Apache DataFusion 48.0.0 Blog</a> for details.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="runtime-highlights">Runtime Highlights<a href="https://spiceai.org/blog/releases/v1.6.0#runtime-highlights" class="hash-link" aria-label="Direct link to Runtime Highlights" title="Direct link to Runtime Highlights">​</a></h3>
<p><strong>Amazon S3 Vectors Multi-Column Primary Keys:</strong> The <a href="https://spiceai.org/docs/components/vectors/s3_vectors" target="_blank" rel="noopener noreferrer">Amazon S3 Vectors</a> engine now supports datasets with multi-column primary keys. This enables vector indexes for datasets where more than one column forms the primary key, such as those splitting documents into chunks for retrieval contexts. For multi-column keys, Spice serializes the keys using arrow-json format, storing them as single string keys in the vector index.</p>
<p><strong>Model2Vec Embeddings</strong>: Spice now supports <a href="https://huggingface.co/blog/Pringled/model2vec" target="_blank" rel="noopener noreferrer">model2vec static embeddings</a> with a new <code>model2vec</code> embeddings provider, for sentence transformers up to 500x faster and 15x smaller, enabling scenarios requiring low latency and high-throughput encoding.</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">embeddings</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> model2vec</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">minishlab/potion</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">base</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">8M </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># HuggingFace model</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> potion</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> model2vec</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">path/to/my/local/model </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># local model</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> local</span><br></span></code></pre></div></div>
<p>Learn more in the <a href="https://spiceai.org/docs/components/embeddings/model2vec" target="_blank" rel="noopener noreferrer">Model2Dev Embeddings documentation</a>.</p>
<p><strong>Kafka Data Connector</strong>: Use <code>from: kafka:&lt;topic&gt;</code> to ingest data directly from Kafka topics for integration with existing Kafka-based event streaming infrastructure, providing real-time data acceleration and query without additional middleware.</p>
<p>Example <code>Spicepod.yml</code>:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> kafka</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">orders_events</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> orders</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">acceleration</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">refresh_mode</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> append</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">kafka_bootstrap_servers</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> server</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token number" style="color:hsl(35, 99%, 36%)">9092</span><br></span></code></pre></div></div>
<p>Learn more in the <a href="https://spiceai.org/docs/components/data-connectors/kafka" target="_blank" rel="noopener noreferrer">Kafka Data Connector documentation</a>.</p>
<p><strong>MongoDB Data Connector</strong>: Use <code>from: mongodb:&lt;dataset&gt;</code> to access and accelerate data stored in MongoDB, deployed on-premises or in the cloud.</p>
<p>Example <code>spicepod.yml</code>:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> mongodb</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">my_dataset</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_dataset</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mongodb_host</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> localhost</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mongodb_db</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_database</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mongodb_user</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_user</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mongodb_pass</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> password</span><br></span></code></pre></div></div>
<p>Learn more in the <a href="https://spiceai.org/docs/components/data-connectors/mongodb" target="_blank" rel="noopener noreferrer">MongoDB Data Connector documentation</a>.</p>
<p><strong>OpenAI Responses API Support</strong>: The OpenAI Responses API (<code>/v1/responses</code>) is now supported, which is OpenAI's most advanced interface for generating model responses.</p>
<p>To enable the <code>/v1/responses</code> HTTP endpoint, set the <code>responses_api</code> parameter to <code>enabled</code>:</p>
<p>Example <code>spicepod.yml</code>:</p>
<p>Example <code>curl</code> request:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token function" style="color:hsl(221, 87%, 60%)">curl</span><span class="token plain"> http://localhost:8090/v1/responses </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-H</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"Content-Type: application/json"</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-d</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'{</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)">    "model": "gpt-4.1",</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)">    "input": "Tell me a three sentence bedtime story about Spice AI."</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)">  }'</span><br></span></code></pre></div></div>
<p>To use responses in <code>spice chat</code>, use the <code>--responses</code> flag.</p>
<p>Example:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice chat </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">--responses</span><span class="token plain"> </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># Use the `/v1/responses` endpoint for all completions instead of `/v1/chat/completions`</span><br></span></code></pre></div></div>
<p>Use OpenAI-hosted <a href="https://platform.openai.com/docs/api-reference/responses/create#responses_create-tools" target="_blank" rel="noopener noreferrer">tools</a> supported by Open AI's Responses API by specifying the <code>openai_responses_tools</code> parameter:</p>
<p>Example <code>spicepod.yml</code>:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">models</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> test</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> openai</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">gpt</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token number" style="color:hsl(35, 99%, 36%)">4.1</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">openai_api_key</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">SPICE_OPENAI_API_KEY </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">tools</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> sql</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> list_datasets</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">openai_responses_tools</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> web_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> code_interpreter </span><span class="token comment" style="color:hsl(230, 4%, 64%)">#  'code_interpreter' or 'web_search'</span><br></span></code></pre></div></div>
<p>These OpenAI-specific tools are only available from the <code>/v1/responses</code> endpoint. Any other tools specified via the <code>tools</code> parameter are available from both the <code>/v1/chat/completions</code> and <code>/v1/responses</code> endpoints.</p>
<p>Learn more in the <a href="https://spiceai.org/docs/components/models/openai" target="_blank" rel="noopener noreferrer">OpenAI Model Provider documentation</a>.</p>
<p><strong>OpenAI Embeddings &amp; Models Connectors Usage Tier:</strong> The OpenAI Embeddings and Models Connectors now supports specifying account usage tier for embeddings and model requests, improving the performance of generating text embeddings or calling models during dataset load and search by increasing concurrent requests.</p>
<p>Example <code>spicepod.yml</code>:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">embeddings</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> openai</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">text</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">embedding</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">3</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">small</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> openai_embed</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">openai_usage_tier</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> tier1</span><br></span></code></pre></div></div>
<p>By setting the usage tier to the matching usage tier for your OpenAI account, the Embeddings and Models Connector will increase the maximum number of concurrent requests to match the specified tier.</p>
<p>Learn more in the <a href="https://spiceai.org/docs/components/models/openai" target="_blank" rel="noopener noreferrer">OpenAI Model Provider documentation</a>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.6.0#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a></li>
<li><a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a></li>
<li><a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a></li>
<li><a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a></li>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a></li>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a></li>
<li><a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a></li>
<li><a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a></li>
<li><a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a></li>
<li><a href="https://github.com/krinart" target="_blank" rel="noopener noreferrer">@krinart</a></li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="new-contributors">New Contributors<a href="https://spiceai.org/blog/releases/v1.6.0#new-contributors" class="hash-link" aria-label="Direct link to New Contributors" title="Direct link to New Contributors">​</a></h3>
<ul>
<li>@krinart made their first contribution in <a href="https://github.com/spiceai/spiceai/pull/6573" target="_blank" rel="noopener noreferrer">github.com/spiceai/spiceai/pull/6573</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.6.0#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>No breaking changes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.6.0#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<ul>
<li>Added <a href="https://github.com/spiceai/cookbook/tree/trunk/openai-responses-api/README.md" target="_blank" rel="noopener noreferrer">OpenAI Responses API</a> - Use OpenAI's Responses API with Spice</li>
<li>Added <a href="https://github.com/spiceai/cookbook/tree/trunk/kafka/README.md" target="_blank" rel="noopener noreferrer">Live Orders Analytics with Apache Kafka Data Connector</a> - Combine real-time data streaming from Kafka with other datasets</li>
<li>Added <a href="https://github.com/spiceai/cookbook/tree/trunk/mongodb/connector/README.md" target="_blank" rel="noopener noreferrer">MongoDB Data Connector</a>  - Use MongoDB as a data source with Spice</li>
</ul>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> includes 77 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.6.0#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.6.0, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.6.0</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.6.0</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<p><strong>AWS Marketplace</strong>:</p>
<p>🎉 Spice is also now available in the <a href="https://aws.amazon.com/marketplace/pp/prodview-jmf6jskjvnq7i" target="_blank" rel="noopener noreferrer">AWS Marketplace</a>!</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.6.0#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.6.0#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<ul>
<li><strong>DataFusion</strong>: <a href="https://github.com/apache/datafusion/releases/tag/48.0.1" target="_blank" rel="noopener noreferrer">Upgraded to v48</a></li>
<li><strong>Rust</strong>: <a href="https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/" target="_blank" rel="noopener noreferrer">Upgraded from 1.86.0 to 1.87.0</a></li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.6.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<ul>
<li>Support Streaming with Tool Calls (#6941) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6941" target="_blank" rel="noopener noreferrer">#6941</a></li>
<li>Fix parameterized query planning in DataFusion (#6942) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6942" target="_blank" rel="noopener noreferrer">#6942</a></li>
<li>Update the UnableToLoadCredentials error with a pointer to docs (#6937) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6937" target="_blank" rel="noopener noreferrer">#6937</a></li>
<li>Fix spicecloud benchmark (#6935) by <a href="https://github.com/krinart" target="_blank" rel="noopener noreferrer">@krinart</a> in <a href="https://github.com/spiceai/spiceai/pull/6935" target="_blank" rel="noopener noreferrer">#6935</a></li>
<li>[Debezium] Support for VariableScaleDecimal (#6934) by <a href="https://github.com/krinart" target="_blank" rel="noopener noreferrer">@krinart</a> in <a href="https://github.com/spiceai/spiceai/pull/6934" target="_blank" rel="noopener noreferrer">#6934</a></li>
<li>Update to DF 48 (#6665) by <a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a> and <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6665" target="_blank" rel="noopener noreferrer">#6665</a></li>
<li>Mark append-stream and CDC datasets as ready after first message (#6914) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6914" target="_blank" rel="noopener noreferrer">#6914</a></li>
<li>Model2Vec embedding model support (#6846) by <a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a> in <a href="https://github.com/spiceai/spiceai/pull/6846" target="_blank" rel="noopener noreferrer">#6846</a></li>
<li>Update snapshot for S3 vector search test (#6920) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6920" target="_blank" rel="noopener noreferrer">#6920</a></li>
<li>remove [] from queryset in spicepod path for CI (#6919) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6919" target="_blank" rel="noopener noreferrer">#6919</a></li>
<li>Remove verbose tracing (#6915) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6915" target="_blank" rel="noopener noreferrer">#6915</a></li>
<li>Refactor how models supporting the Responses API are loaded (#6912) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6912" target="_blank" rel="noopener noreferrer">#6912</a></li>
<li>Write tests for truncate formatting in <code>arrow_tools</code> and fix bug.  (#6900) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6900" target="_blank" rel="noopener noreferrer">#6900</a></li>
<li>Support using the Responses API from <code>spice chat</code> (#6894) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6894" target="_blank" rel="noopener noreferrer">#6894</a></li>
<li>Include GPT-5 into Text-To-SQL and Financebench benchmarks (#6907) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6907" target="_blank" rel="noopener noreferrer">#6907</a></li>
<li>Better error message when credentials aren't loaded for S3 Vectors (#6910) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6910" target="_blank" rel="noopener noreferrer">#6910</a></li>
<li>Add tracing and system prompt support for the Responses API (#6893) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6893" target="_blank" rel="noopener noreferrer">#6893</a></li>
<li>Constraint violation check is improved to control behavior when violations occur within a batch (#6897) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6897" target="_blank" rel="noopener noreferrer">#6897</a></li>
<li>fix: Multi-column text search with v1/search (#6905) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6905" target="_blank" rel="noopener noreferrer">#6905</a></li>
<li>fix: Correctly project text search primary keys to underlying projection (#6904) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6904" target="_blank" rel="noopener noreferrer">#6904</a></li>
<li>fix: Update benchmark snapshots (#6901) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6901" target="_blank" rel="noopener noreferrer">#6901</a></li>
<li>In S3vector, do not pushdown on non-filterable columns (#6884) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6884" target="_blank" rel="noopener noreferrer">#6884</a></li>
<li>Run E2E Test CI macOS build on bigger runners (#6896) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6896" target="_blank" rel="noopener noreferrer">#6896</a></li>
<li>Enable configuration of the Responses API for the Azure model provider (#6891) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6891" target="_blank" rel="noopener noreferrer">#6891</a></li>
<li>fix: Update benchmark snapshots (#6888) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6888" target="_blank" rel="noopener noreferrer">#6888</a></li>
<li>Update OpenAPI specification for <code>/v1/responses</code> (#6889) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6889" target="_blank" rel="noopener noreferrer">#6889</a></li>
<li>Add test to ensure tools are injected correctly in the Responses API (#6886) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6886" target="_blank" rel="noopener noreferrer">#6886</a></li>
<li>Enable embeddings for append streams (#6878) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6878" target="_blank" rel="noopener noreferrer">#6878</a></li>
<li>Show correct limit for EXPLAIN plans in <code>S3VectorsQueryExec</code> (#6852) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6852" target="_blank" rel="noopener noreferrer">#6852</a></li>
<li>Responses API support for Azure Open AI (#6879) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6879" target="_blank" rel="noopener noreferrer">#6879</a></li>
<li>fix: Update search test case structure (#6865) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6865" target="_blank" rel="noopener noreferrer">#6865</a></li>
<li>Fix mongodb benchmark (#6883) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6883" target="_blank" rel="noopener noreferrer">#6883</a></li>
<li>Support multiple column primary keys for S3 vectors. (#6775) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6775" target="_blank" rel="noopener noreferrer">#6775</a></li>
<li>Kafka Data Connector: persist consumer between restarts (#6870) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6870" target="_blank" rel="noopener noreferrer">#6870</a></li>
<li>Fix newlines in errors added in recent PRs (#6877) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6877" target="_blank" rel="noopener noreferrer">#6877</a></li>
<li>Add override parameter to force support for the Responses API (#6871) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6871" target="_blank" rel="noopener noreferrer">#6871</a></li>
<li>Don't use metadata columns in <code>VectorScanTableProvider</code> (#6854) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6854" target="_blank" rel="noopener noreferrer">#6854</a></li>
<li>Add non-streaming tool call support (hosted and Spice tools) via the Responses API (#6869) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6869" target="_blank" rel="noopener noreferrer">#6869</a></li>
<li>Update error guideline to remove newlines + remove newlines from error messages. (#6866) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6866" target="_blank" rel="noopener noreferrer">#6866</a></li>
<li>Remove void acceleration engine + optional table behaviors (#6868) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6868" target="_blank" rel="noopener noreferrer">#6868</a></li>
<li>Kafka Data Connector basic support (#6856) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6856" target="_blank" rel="noopener noreferrer">#6856</a></li>
<li>Federated+Accelerated TPCH Benchmarks for MongoDB (#6788) by <a href="https://github.com/krinart" target="_blank" rel="noopener noreferrer">@krinart</a> in <a href="https://github.com/spiceai/spiceai/pull/6788" target="_blank" rel="noopener noreferrer">#6788</a></li>
<li>Pass embeddings calculated in <code>compute_index</code> to the acceleration (#6792) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6792" target="_blank" rel="noopener noreferrer">#6792</a></li>
<li>Add non-streaming and streaming support for OpenAI Responses API endpoint (#6830) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6830" target="_blank" rel="noopener noreferrer">#6830</a></li>
<li>Use latest version of OpenAI crate to resolve issues with Service Tier deserialization (#6853) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6853" target="_blank" rel="noopener noreferrer">#6853</a></li>
<li>Update openapi.json (#6799) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6799" target="_blank" rel="noopener noreferrer">#6799</a></li>
<li>Improve management message (#6850) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6850" target="_blank" rel="noopener noreferrer">#6850</a></li>
<li>fix: Include FTS search column if it is the PK (#6836) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6836" target="_blank" rel="noopener noreferrer">#6836</a></li>
<li>Refactor Health Checks (#6848) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6848" target="_blank" rel="noopener noreferrer">#6848</a></li>
<li>Introduce a <code>Responses</code> trait and LLM registry for model providers that support the OpenAI Responses API (#6798) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6798" target="_blank" rel="noopener noreferrer">#6798</a></li>
<li>fix: Update datafusion-table-providers to include constraints (#6837) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6837" target="_blank" rel="noopener noreferrer">#6837</a></li>
<li>Bump postcard from 1.1.2 to 1.1.3 (#6841) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6841" target="_blank" rel="noopener noreferrer">#6841</a></li>
<li>Bump governor from 0.10.0 to 0.10.1 (#6835) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6835" target="_blank" rel="noopener noreferrer">#6835</a></li>
<li>Bump ctor from 0.2.9 to 0.5.0 (#6827) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6827" target="_blank" rel="noopener noreferrer">#6827</a></li>
<li>Bump azure_core from 0.26.0 to 0.27.0 (#6826) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6826" target="_blank" rel="noopener noreferrer">#6826</a></li>
<li>Bump rstest from 0.25.0 to 0.26.1 (#6825) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6825" target="_blank" rel="noopener noreferrer">#6825</a></li>
<li>Use latest commit in our fork of async-openai (#6829) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6829" target="_blank" rel="noopener noreferrer">#6829</a></li>
<li>Bump rustls from 0.23.27 to 0.23.31 (#6824) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6824" target="_blank" rel="noopener noreferrer">#6824</a></li>
<li>Bump async-trait from 0.1.88 to 0.1.89 (#6823) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6823" target="_blank" rel="noopener noreferrer">#6823</a></li>
<li>Bump hyper from 1.6.0 to 1.7.0 (#6814) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6814" target="_blank" rel="noopener noreferrer">#6814</a></li>
<li>Bump serde_json from 1.0.140 to 1.0.142 (#6812) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6812" target="_blank" rel="noopener noreferrer">#6812</a></li>
<li>Add s3 vector test retrieving vectors (#6786) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6786" target="_blank" rel="noopener noreferrer">#6786</a></li>
<li>fix: Allow v1/search with only FTS (#6811) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6811" target="_blank" rel="noopener noreferrer">#6811</a></li>
<li>Bump tantivy from 0.24.1 to 0.24.2 (#6806) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6806" target="_blank" rel="noopener noreferrer">#6806</a></li>
<li>Bump tokio-util from 0.7.15 to 0.7.16 (#6810) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6810" target="_blank" rel="noopener noreferrer">#6810</a></li>
<li>fix: Improve FTS index primary key handling (#6809) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6809" target="_blank" rel="noopener noreferrer">#6809</a></li>
<li>Bump logos from 0.15.0 to 0.15.1 (#6808) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6808" target="_blank" rel="noopener noreferrer">#6808</a></li>
<li>Bump hf-hub from 0.4.2 to 0.4.3 (#6807) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6807" target="_blank" rel="noopener noreferrer">#6807</a></li>
<li>Bump odbc-api from 13.0.1 to 13.1.0 (#6803) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6803" target="_blank" rel="noopener noreferrer">#6803</a></li>
<li>fix: Spice search CLI with FTS supports string or slice unmarshalling (#6805) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6805" target="_blank" rel="noopener noreferrer">#6805</a></li>
<li>Bump uuid from 1.17.0 to 1.18.0 (#6797) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6797" target="_blank" rel="noopener noreferrer">#6797</a></li>
<li>Bump reqwest from 0.12.22 to 0.12.23 (#6796) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6796" target="_blank" rel="noopener noreferrer">#6796</a></li>
<li>Bump anyhow from 1.0.98 to 1.0.99 (#6795) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6795" target="_blank" rel="noopener noreferrer">#6795</a></li>
<li>Bump clap from 4.5.41 to 4.5.45 (#6794) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6794" target="_blank" rel="noopener noreferrer">#6794</a></li>
<li>Respect default MAX_DECODING_MESSAGE_SIZE (100MB) in Flight API (#6802) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6802" target="_blank" rel="noopener noreferrer">#6802</a></li>
<li>Fix compilation errors caused by upgrading <code>async-openai</code> (#6793) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6793" target="_blank" rel="noopener noreferrer">#6793</a></li>
<li>Remove outdated vector search benchmark (replaced with testoperator) (#6791) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6791" target="_blank" rel="noopener noreferrer">#6791</a></li>
<li>Handle errors in vector ingestion pipeline (#6782) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6782" target="_blank" rel="noopener noreferrer">#6782</a></li>
<li>fix: Explicitly error when chunking is defined for vector engines (#6787) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6787" target="_blank" rel="noopener noreferrer">#6787</a></li>
<li>Make <code>VectorScanTableProvider</code> and <code>VectorQueryTableProvider</code> support multi-column primary keys (#6757) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6757" target="_blank" rel="noopener noreferrer">#6757</a></li>
<li>Use <code>megascience/megascience</code> Q+A dataset for text search testing. (#6702) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6702" target="_blank" rel="noopener noreferrer">#6702</a></li>
<li>Flight REPL autocomplete (#6589) by <a href="https://github.com/krinart" target="_blank" rel="noopener noreferrer">@krinart</a> in <a href="https://github.com/spiceai/spiceai/pull/6589" target="_blank" rel="noopener noreferrer">#6589</a></li>
<li>use ref: <code>github.event.pull_request.head.sha</code> in integration_models.yml (#6780) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6780" target="_blank" rel="noopener noreferrer">#6780</a></li>
<li>fix: Move search telemetry calls in UDTF to scan (#6778) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6778" target="_blank" rel="noopener noreferrer">#6778</a></li>
<li>Fix Hugging Face models and embeddings loading in Docker (#6777) by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/6777" target="_blank" rel="noopener noreferrer">#6777</a></li>
<li>feat: Migrate bedrock rate limiter (#6773) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6773" target="_blank" rel="noopener noreferrer">#6773</a></li>
<li>Run the PR checks on the DEV runners (#6769) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6769" target="_blank" rel="noopener noreferrer">#6769</a></li>
<li>feat: add OpenAI models rate controller (#6767) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6767" target="_blank" rel="noopener noreferrer">#6767</a></li>
<li>Implement MongoDB  data connector (#6594) by <a href="https://github.com/krinart" target="_blank" rel="noopener noreferrer">@krinart</a> in <a href="https://github.com/spiceai/spiceai/pull/6594" target="_blank" rel="noopener noreferrer">#6594</a></li>
<li>fix: Use head ref for concurrency group (#6770) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6770" target="_blank" rel="noopener noreferrer">#6770</a></li>
<li>fix: Run enforce pulls with spice on pull_request_target (#6768) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6768" target="_blank" rel="noopener noreferrer">#6768</a></li>
<li>feat: Add OpenAI Embeddings Rate Controller (#6764) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6764" target="_blank" rel="noopener noreferrer">#6764</a></li>
<li>Move AWS SDK credential bridge integration test to the existing AWS SDK integration test run (#6766) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6766" target="_blank" rel="noopener noreferrer">#6766</a></li>
<li>Use Spice specific errors instead of OpenAIError in embedding module (#6748) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6748" target="_blank" rel="noopener noreferrer">#6748</a></li>
<li>Use context in Glue Catalog Provider (#6763) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6763" target="_blank" rel="noopener noreferrer">#6763</a></li>
<li>pin cargo-deny to previous version (#6762) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6762" target="_blank" rel="noopener noreferrer">#6762</a></li>
<li>Bump actions/download-artifact from 4 to 5 (#6720) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6720" target="_blank" rel="noopener noreferrer">#6720</a></li>
<li>Upgrade dependabot dependencies (#6754) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6754" target="_blank" rel="noopener noreferrer">#6754</a></li>
<li>Set E2E Test CI models build to 90 minute timeout (#6756) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6756" target="_blank" rel="noopener noreferrer">#6756</a></li>
<li>chore: upgrade to Rust 1.87.0 (#6614) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6614" target="_blank" rel="noopener noreferrer">#6614</a></li>
<li>feat: Add initial runtime-rate-limiter crate (#6753) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6753" target="_blank" rel="noopener noreferrer">#6753</a></li>
<li>feat: Add more embedding traces, add MiniLM MTEB spicepod (#6742) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6742" target="_blank" rel="noopener noreferrer">#6742</a></li>
<li>Update QA analytics for release (#6740) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6740" target="_blank" rel="noopener noreferrer">#6740</a></li>
<li>Always use 'returnData: true' for s3 vector query index (#6741) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6741" target="_blank" rel="noopener noreferrer">#6741</a></li>
<li>feat: Add Embedding and Search anonymous telemetry (#6737) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6737" target="_blank" rel="noopener noreferrer">#6737</a></li>
<li>Add 1.5.2 to SECURITY.md (#6739) by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/6739" target="_blank" rel="noopener noreferrer">#6739</a></li>
<li>Combine the Iceberg and Object Store AWS SDK bridges into one crate (#6718) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6718" target="_blank" rel="noopener noreferrer">#6718</a></li>
<li>Updates to v1.5.2 release notes (#6736) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6736" target="_blank" rel="noopener noreferrer">#6736</a></li>
<li>Update end game template - move glue catalog to catalogs section (#6732) by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/6732" target="_blank" rel="noopener noreferrer">#6732</a></li>
<li>Update v1.5.2.md (#6735) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6735" target="_blank" rel="noopener noreferrer">#6735</a></li>
<li>Add note about S3 Vectors workaround (#6734) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6734" target="_blank" rel="noopener noreferrer">#6734</a></li>
<li>feat: Avoid joining for VectorScanTableProvider if the index is sufficient (#6714) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6714" target="_blank" rel="noopener noreferrer">#6714</a></li>
<li>update changelog (#6729) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6729" target="_blank" rel="noopener noreferrer">#6729</a></li>
<li>remove unneeded autogenerated s3 vector code (#6715) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6715" target="_blank" rel="noopener noreferrer">#6715</a></li>
<li>fix: Set S3 vectors default limit to 30, add more tracing (#6712) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6712" target="_blank" rel="noopener noreferrer">#6712</a></li>
<li>docs: Add Hadoop cookbook to endgame template (#6708) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6708" target="_blank" rel="noopener noreferrer">#6708</a></li>
<li>Fix testoperator append mode compilation error (#6706) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6706" target="_blank" rel="noopener noreferrer">#6706</a></li>
<li>test: Add VectorScanTableProvider snapshot tests (#6701) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6701" target="_blank" rel="noopener noreferrer">#6701</a></li>
<li>feat: Add Hadoop catalog-mode benchmark (#6684) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6684" target="_blank" rel="noopener noreferrer">#6684</a></li>
<li>Move shared AWS crates used in bridges to workspace (#6705) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6705" target="_blank" rel="noopener noreferrer">#6705</a></li>
<li>Use installation id to group connections (#6703) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6703" target="_blank" rel="noopener noreferrer">#6703</a></li>
<li>Add Guardrails for AWS bedrock models (#6692) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6692" target="_blank" rel="noopener noreferrer">#6692</a></li>
<li>Update bedrock keys for CI. (#6693) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6693" target="_blank" rel="noopener noreferrer">#6693</a></li>
<li>Update acknowledgements (#6690) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6690" target="_blank" rel="noopener noreferrer">#6690</a></li>
<li>ROADMAP updates Aug 1, 2025 (#6667) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6667" target="_blank" rel="noopener noreferrer">#6667</a></li>
<li>Add retry logic for OpenAI embeddings creation (#6656) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6656" target="_blank" rel="noopener noreferrer">#6656</a></li>
<li>Make models E2E chat test more robust (#6657) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6657" target="_blank" rel="noopener noreferrer">#6657</a></li>
<li>Update Search GH Workflow to use Test Operator (#6650) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6650" target="_blank" rel="noopener noreferrer">#6650</a></li>
<li>Score and P95 latency calculation for MTEB Quora-based vector search tests in Test Operator (#6640) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6640" target="_blank" rel="noopener noreferrer">#6640</a></li>
<li>Fix multiple query error being classified as an internal error (#6635) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6635" target="_blank" rel="noopener noreferrer">#6635</a></li>
<li>Add Support for S3 Table Buckets (#6573) by <a href="https://github.com/krinart" target="_blank" rel="noopener noreferrer">krinart</a> in <a href="https://github.com/spiceai/spiceai/pull/6573" target="_blank" rel="noopener noreferrer">#6573</a></li>
<li>set MISTRALRS_METAL_PRECOMPILE=0 for metal (#6652) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6652" target="_blank" rel="noopener noreferrer">#6652</a></li>
<li>Vector search to push down udtf limit argument into logical sort plan (#6636) by <a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a> in <a href="https://github.com/spiceai/spiceai/pull/6636" target="_blank" rel="noopener noreferrer">#6636</a></li>
<li>docs: Update qa_analytics.csv (#6643) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6643" target="_blank" rel="noopener noreferrer">#6643</a></li>
<li>Update SECURITY.md (#6642) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6642" target="_blank" rel="noopener noreferrer">#6642</a></li>
<li>docs: Update qa_analytics.csv (#6641) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6641" target="_blank" rel="noopener noreferrer">#6641</a></li>
<li>Separate token usage (#6619) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6619" target="_blank" rel="noopener noreferrer">#6619</a></li>
<li>Fix typo in release notes (#6634) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6634" target="_blank" rel="noopener noreferrer">#6634</a></li>
<li>Add environment variable for org token (#6633) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6633" target="_blank" rel="noopener noreferrer">#6633</a></li>
<li>CDC: Compute embeddings on ingest (#6612) by <a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a> in <a href="https://github.com/spiceai/spiceai/pull/6612" target="_blank" rel="noopener noreferrer">#6612</a></li>
<li>Add view name to view creation errors (#6611) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6611" target="_blank" rel="noopener noreferrer">#6611</a></li>
<li>Add core logic for running MTEB Quora-based vector search tests in Test Operator (#6607) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6607" target="_blank" rel="noopener noreferrer">#6607</a></li>
<li>Revert "Update generate-openapi.yml (#6584)" (#6620) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6620" target="_blank" rel="noopener noreferrer">#6620</a></li>
<li>Non-accelerated views should report as ready only after all dependent datasets are ready (#6617) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6617" target="_blank" rel="noopener noreferrer">#6617</a></li>
</ul>]]></content>
        <author>
            <name>Sergei Grebnov</name>
            <uri>https://github.com/sgrebnov</uri>
        </author>
        <category label="release" term="release"/>
        <category label="amazon s3 vectors" term="amazon s3 vectors"/>
        <category label="data-connector" term="data-connector"/>
        <category label="aws" term="aws"/>
        <category label="kafka" term="kafka"/>
        <category label="mongodb" term="mongodb"/>
        <category label="openai" term="openai"/>
        <category label="model2vec" term="model2vec"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.5.2 (Aug 11, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.5.2</id>
        <link href="https://spiceai.org/blog/releases/v1.5.2"/>
        <updated>2025-08-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.5.2! 🛠️]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.5.2! 🛠️</p>
<p>Spice v1.5.2 introduces a new Amazon Bedrock Models Provider for converse API (Nova) compatible models, AWS Redshift support using the Postgres data connector, and Hadoop Catalog Support for Iceberg tables along with several bug fixes and improvements.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-new-in-v152">What's New in v1.5.2<a href="https://spiceai.org/blog/releases/v1.5.2#whats-new-in-v152" class="hash-link" aria-label="Direct link to What's New in v1.5.2" title="Direct link to What's New in v1.5.2">​</a></h2>
<p><strong>Amazon Bedrock Models Provider</strong>: Adds a new Amazon Bedrock LLM Provider. Models compatible with the <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html" target="_blank" rel="noopener noreferrer">Converse API</a> (Nova) are supported.</p>
<p>Amazon Bedrock provides access to a range of foundation models for generative AI. Spice supports using Bedrock-hosted models by specifying the <code>bedrock</code> prefix in the <code>from</code> field and configuring the required parameters.</p>
<p><strong>Supported Model IDs:</strong></p>
<ul>
<li><code>amazon.nova-lite-v1:0</code></li>
<li><code>amazon.nova-micro-v1:0</code></li>
<li><code>amazon.nova-premier-v1:0</code></li>
<li><code>amazon.nova-pro-v1:0</code></li>
</ul>
<p>Refer to the <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html" target="_blank" rel="noopener noreferrer">Amazon Bedrock documentation</a> for details on available models and cross-region inference profiles.</p>
<p>Example Spicepod.yaml:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">models</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> bedrock</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">us.amazon.nova</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">lite</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">v1</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token number" style="color:hsl(35, 99%, 36%)">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> novash</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">aws_region</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> us</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">east</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token number" style="color:hsl(35, 99%, 36%)">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">aws_access_key_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">AWS_ACCESS_KEY_ID </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">aws_secret_access_key</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">AWS_SECRET_ACCESS_KEY </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">bedrock_guardrail_identifier</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> arn</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">aws</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">bedrock</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">abcdefg012927</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">0123456789876</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">guardrail/hello</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">bedrock_guardrail_version</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> DRAFT</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">bedrock_trace</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> enabled</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">bedrock_temperature</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">42</span><br></span></code></pre></div></div>
<p>For more information, see the <a href="https://spiceai.org/docs/components/models/bedrock" target="_blank" rel="noopener noreferrer">Amazon Bedrock Documentation</a>.</p>
<p><strong>AWS Redshift Support for Postgres Data Connector</strong>: Spice now supports connecting to Amazon Redshift using the PostgreSQL data connector. Redshift is a columnar OLAP database compatible with PostgreSQL, allowing you to use the same connector and configuration parameters.</p>
<p>To connect to Redshift, use the format <code>postgres:schema.table</code> in your Spicepod and set the connection parameters to match your Redshift cluster settings.</p>
<p>Example Spicepod.yaml:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token comment" style="color:hsl(230, 4%, 64%)"># Example datasets for Redshift TPCH tables</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> postgres</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">public.customer</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> customer</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">pg_host</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">PG_HOST</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">pg_port</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">5439</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">pg_sslmode</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> prefer</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">pg_db</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> dev</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">pg_user</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">PG_USER</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">pg_pass</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">PG_PASS</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> postgres</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">public.lineitem</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> lineitem</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">pg_host</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">PG_HOST</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">pg_port</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">5439</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">pg_sslmode</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> prefer</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">pg_db</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> dev</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">pg_user</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">PG_USER</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">pg_pass</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">PG_PASS</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><br></span></code></pre></div></div>
<p>Redshift types are mapped to PostgreSQL types. See the <a href="https://spiceai.org/docs/components/data-connectors/postgres" target="_blank" rel="noopener noreferrer">PostgreSQL connector documentation</a> for details on supported types and configuration.</p>
<p><strong>Hadoop Catalog Support for Iceberg</strong>: The Iceberg Data and Catalog connectors now support connecting to Hadoop catalogs on filesystem (<code>file://</code>) or S3 object storage (<code>s3://</code>, <code>s3a://</code>). This enables connecting to Iceberg catalogs without a separate catalog provider service.</p>
<p>Example Spicepod.yaml:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">catalogs</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> iceberg</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">file</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">///tmp/hadoop_warehouse/</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> local_hadoop</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> iceberg</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">s3</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">//my</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">bucket/hadoop_warehouse/</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> s3_hadoop</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># Example datasets</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> iceberg</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">file</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">///data/hadoop_warehouse/test/my_table_1</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> local_hadoop</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> iceberg</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">s3</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">//my</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">bucket/hadoop_warehouse/test/my_table_2</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> s3_hadoop</span><br></span></code></pre></div></div>
<p>For more details, see the <a href="https://spiceai.org/docs/components/data-connectors/iceberg" target="_blank" rel="noopener noreferrer">Iceberg Data Connector documentation</a> and the <a href="https://spiceai.org/docs/components/catalog-connectors/iceberg" target="_blank" rel="noopener noreferrer">Iceberg Catalog Connector documentation</a>.</p>
<p><strong>Parquet Reader: Optional Parquet Page Index</strong>: Fixed an issue where the Parquet reader, using <code>arrow-rs</code> and DataFusion, errored on files missing page indexes, despite the Parquet spec allowing optional indexes. The Spice team contributed optional page index support to <code>arrow-rs</code> (<a href="https://github.com/spiceai/arrow-rs/pull/6" target="_blank" rel="noopener noreferrer">PR #6</a>) and configurable handling in DataFusion (<a href="https://github.com/spiceai/datafusion/pull/93" target="_blank" rel="noopener noreferrer">PR #93</a>). A new runtime parameter, <code>parquet_page_index</code>, makes Parquet Page Indexes configurable in Spice:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">runtime</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">parquet_page_index</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> required </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># Options: required, skip, auto</span><br></span></code></pre></div></div>
<ul>
<li><strong>required</strong>: (Default) Errors if page indexes are absent.</li>
<li><strong>skip</strong>: Ignores page indexes, potentially reducing query performance.</li>
<li><strong>auto</strong>: Uses page indexes if available; skips otherwise.</li>
</ul>
<p>This improves compatibility and query flexibility for Parquet datasets.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.5.2#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a></li>
<li><a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a></li>
<li><a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a></li>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a></li>
<li><a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.5.2#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p><strong>Amazon S3 Vectors Vector Engine</strong>: Amazon S3 Vectors is currently a preview AWS service. A recent update to the Amazon S3 Vectors service API introduced a breaking change that affects the integration when projecting (selecting) the embedding column. This results in the following error:</p>
<p><code>Json error: whilst decoding field 'data': expected [ got nullReceived only partial JSON payload from QueryVectors</code></p>
<p>The issue is expected to be resolved in the next release of Spice. A current workaround is to limit queries to non-embedding columns.</p>
<p>i.e. instead of:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> url</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> title</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> scored</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> body_embedding</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">pulls</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'bugs in DuckDB'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">4</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">WHERE</span><span class="token plain"> state </span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'OPEN'</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">4</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
<p>Remove the <code>*_embedding</code> column from the projection. E.g.</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> url</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> title</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> scored</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">pulls</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'bugs in DuckDB'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">4</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">WHERE</span><span class="token plain"> state </span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'OPEN'</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">4</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
<p>This issue and workaround also applies to <code>SELECT * FROM vector_search(..)</code>. E.g.</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">*</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">pulls</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'bugs in DuckDB'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">4</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">WHERE</span><span class="token plain"> state </span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'OPEN'</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">4</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.5.2#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<ul>
<li>Added <a href="https://github.com/spiceai/cookbook/tree/trunk/redshift" target="_blank" rel="noopener noreferrer">Amazon Redshift Support</a> to the Postgres Data Connector cookbook: Connect to tables in Amazon Redshift.</li>
</ul>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> includes 75 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.5.2#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.5.2, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.5.2</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.5.2</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<p><strong>AWS Marketplace</strong>:</p>
<p>🎉 Spice is also now available in the <a href="https://aws.amazon.com/marketplace/pp/prodview-jmf6jskjvnq7i" target="_blank" rel="noopener noreferrer">AWS Marketplace</a>!</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.5.2#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.5.2#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<p>No major dependency updates.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.5.2#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<ul>
<li>fixes for databricks OpenAI compatibility (#6629) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6629" target="_blank" rel="noopener noreferrer">#6629</a></li>
<li>Update spicepod.schema.json (#6632) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6632" target="_blank" rel="noopener noreferrer">#6632</a></li>
<li>Remove 'stream_options' from databricks LLMs (#6637) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6637" target="_blank" rel="noopener noreferrer">#6637</a></li>
<li>Move retry and rate limiting logic for Amazon bedrock out of embeddings. (#6626) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6626" target="_blank" rel="noopener noreferrer">#6626</a></li>
<li>Disable Metal precomplation in integration_llms.yml (#6649) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6649" target="_blank" rel="noopener noreferrer">#6649</a></li>
<li>fix: Hadoop integration test (#6660) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6660" target="_blank" rel="noopener noreferrer">#6660</a></li>
<li>feat: Add Hadoop Catalog Data Component (#6658) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6658" target="_blank" rel="noopener noreferrer">#6658</a></li>
<li>update datafusion-table-providers to latest spiceai tag (#6661) by <a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a> in <a href="https://github.com/spiceai/spiceai/pull/6661" target="_blank" rel="noopener noreferrer">#6661</a></li>
<li>feat: Add Hadoop Catalog connectors for Iceberg (#6659) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6659" target="_blank" rel="noopener noreferrer">#6659</a></li>
<li>Make <code>FullTextSearchExec</code> robust to RecordBatch column ordering. (#6675) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6675" target="_blank" rel="noopener noreferrer">#6675</a></li>
<li>Make 'runtime-object-store' crate (#6674) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6674" target="_blank" rel="noopener noreferrer">#6674</a></li>
<li>fix: Support include for Iceberg (#6663) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6663" target="_blank" rel="noopener noreferrer">#6663</a></li>
<li>feat: Add Hadoop TPCH benchmark (#6678) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6678" target="_blank" rel="noopener noreferrer">#6678</a></li>
<li>feat: Add Hadoop <code>metadata_path</code> parameter (#6680) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6680" target="_blank" rel="noopener noreferrer">#6680</a></li>
<li>fix: Automatically infer Hadoop warehouse scheme (#6681) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6681" target="_blank" rel="noopener noreferrer">#6681</a></li>
<li>Amazon Bedrock, specifically Nova models (#6673) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in [#6673](<a href="https://github.com/spiceai/spiceai/pull/6673" target="_blank" rel="noopener noreferrer">https://github.com/spiceai/spiceai/pull/6673</a></li>
<li>fix perplexity_auth_token parameters for web_search (#6685) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6685" target="_blank" rel="noopener noreferrer">#6685</a></li>
<li>Fix AWS Auth issue (#6699) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6699" target="_blank" rel="noopener noreferrer">#6699</a></li>
<li>Limit Concurrent Requests for GitHub (#6672) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6672" target="_blank" rel="noopener noreferrer">#6672</a></li>
<li>Add runtime parameter to enable more permissive parquet reading when page indexes are missing (#6716) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6716" target="_blank" rel="noopener noreferrer">#6716</a></li>
<li>Improve Flight REPL error messages (#6696) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6696" target="_blank" rel="noopener noreferrer">#6696</a></li>
<li>Fixes from search tests (#6710) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6710" target="_blank" rel="noopener noreferrer">#6710</a></li>
</ul>]]></content>
        <author>
            <name>Kevin Zimmerman</name>
            <uri>https://github.com/kczimm</uri>
        </author>
        <category label="release" term="release"/>
        <category label="aws" term="aws"/>
        <category label="data-connector" term="data-connector"/>
        <category label="bedrock" term="bedrock"/>
        <category label="redshift" term="redshift"/>
        <category label="postgres" term="postgres"/>
        <category label="hadoop" term="hadoop"/>
        <category label="iceberg" term="iceberg"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Amazon S3 Vectors with Spice]]></title>
        <id>https://spiceai.org/blog/amazon-s3-vectors-with-spice</id>
        <link href="https://spiceai.org/blog/amazon-s3-vectors-with-spice"/>
        <updated>2025-07-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Spice.ai v1.5.0 integrates Amazon S3 Vectors for scalable, cost-efficient vector search, enabling semantic search and RAG at petabyte scale with up to 90% cost savings.]]></summary>
        <content type="html"><![CDATA[<p>The latest Spice.ai Open Source release (<a href="https://spiceai.org/blog/releases/v1.5.0">v1.5.0</a>) brings major improvements to search, including native support for <strong>Amazon S3 Vectors</strong>. Announced in public preview at <a href="https://www.aboutamazon.com/news/aws/aws-summit-agentic-ai-innovations-2025" target="_blank" rel="noopener noreferrer">AWS Summit New York 2025</a>, Amazon S3 Vectors is a new S3 bucket type purpose-built for vector embeddings, with dedicated APIs for similarity search.</p>
<p>Spice AI was a day 1 launch partner for S3 Vectors, integrating it as a scalable vector index backend. In this post, we explore how S3 Vectors integrates into Spice.ai’s data, search, and AI-inference engine, how Spice manages indexing and lifecycle of embeddings for production vector search, and how this unlocks a powerful hybrid search experience. We’ll also put this in context with industry trends and compare Spice’s approach to other vector database solutions like Qdrant, Weaviate, Pinecone, and Turbopuffer.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="amazon-s3-vectors-overview">Amazon S3 Vectors Overview<a href="https://spiceai.org/blog/amazon-s3-vectors-with-spice#amazon-s3-vectors-overview" class="hash-link" aria-label="Direct link to Amazon S3 Vectors Overview" title="Direct link to Amazon S3 Vectors Overview">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Amazon S3 Vectors Overview" src="https://spiceai.org/assets/images/2025-s3-vector-1-vector-overview-1-b3b90c402ef474ef6423b6d4f1e945a9.png" width="2190" height="520" class="img_ev3q"></p>
<p>Amazon S3 Vectors extends S3 object storage with native support for storing and querying vectors at scale. As AWS describes, it is <em>“designed to provide the same elasticity, scale, and durability as Amazon S3,”</em> providing storage of <strong>billions of vectors</strong> and sub-second similarity queries. Crucially, S3 Vectors dramatically lowers the cost of vector search infrastructure – reducing upload, storage, and query costs by <strong>up to 90%</strong> compared to traditional solutions. It achieves this by <strong>separating storage from compute</strong>: vectors reside durably in S3, and queries execute on transient, on-demand resources, avoiding the need for always-on, memory-intensive vector database servers. In practice, S3 Vectors exposes two core operations:</p>
<ol>
<li>
<p><strong>Upsert vectors</strong> – assign a vector (an array of floats) to a given key (identifier) and optionally store metadata alongside it.</p>
</li>
<li>
<p><strong>Vector similarity query</strong> – given a new query vector, efficiently find the stored vectors that are closest (e.g. minimal distance) to it, returning their keys (and scores).</p>
</li>
</ol>
<p>This transforms S3 into a <strong>massively scalable vector index</strong> service. You can store embeddings at petabyte scale and perform similarity search with metrics like cosine or Euclidean distance via a simple API. It’s ideal for AI use cases like semantic search, recommendations, or Retrieval-Augmented Generation (RAG) where large volumes of embeddings need to be queried semantically. By leveraging S3’s pay-for-use storage and ephemeral compute, S3 Vectors can handle infrequent or large-scale queries much more cost-effectively than memory-bound databases, yet still deliver sub-second results.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="vector-search-with-embeddings">Vector Search with Embeddings<a href="https://spiceai.org/blog/amazon-s3-vectors-with-spice#vector-search-with-embeddings" class="hash-link" aria-label="Direct link to Vector Search with Embeddings" title="Direct link to Vector Search with Embeddings">​</a></h2>
<p>Vector similarity search retrieves data by comparing items in a high-dimensional embedding space rather than by exact keywords. In a typical pipeline:</p>
<ul>
<li>
<p><strong>Data to vectors:</strong> We first convert each data item (text, image, etc.) into a numeric vector representation (embedding) using an ML model. For example, a customer review text might be turned into a 768-dimensional embedding that encodes its semantic content. Models like Amazon Titan Embeddings, OpenAI, or Hugging Face sentence transformers handle this step.</p>
</li>
<li>
<p><strong>Index storage:</strong> These vectors are stored in a specialized index or database optimized for similarity search. This could be a dedicated vector database or, in our case, Amazon S3 Vectors acting as the index. Each vector is stored with an identifier (e.g. the primary key of the source record) and possibly metadata.</p>
</li>
<li>
<p><strong>Query by vector:</strong> A search query (e.g. a phrase or image) is also converted into an embedding vector. The vector index is then queried to find the closest stored vectors by distance metric (cosine, Euclidean, dot product, etc.). The result is a set of IDs of the most similar items, often with a similarity score.</p>
</li>
</ul>
<p>This process enables <strong>semantic search</strong> – results are returned based on meaning and similarity rather than exact text matches. It powers features like finding relevant documents by topic even if exact terms differ, recommendation systems (finding similar user behavior or content), and providing knowledge context to LLMs in RAG. With the Spice.ai Open Source integration, this whole lifecycle (embedding data, indexing vectors, querying) is managed by the Spice runtime and exposed via a familiar SQL or HTTP interface.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="amazon-s3-vectors-in-spiceai">Amazon S3 Vectors in Spice.ai<a href="https://spiceai.org/blog/amazon-s3-vectors-with-spice#amazon-s3-vectors-in-spiceai" class="hash-link" aria-label="Direct link to Amazon S3 Vectors in Spice.ai" title="Direct link to Amazon S3 Vectors in Spice.ai">​</a></h2>
<p><img decoding="async" loading="lazy" src="https://github.com/user-attachments/assets/6bdd5ed9-7663-47a3-8ae6-480ab20a6751" alt="Spice integration with Amazon S3 Vectors" class="img_ev3q"></p>
<p>Spice.ai is an open-source data, search and AI compute engine that supports vector search end-to-end. By integrating S3 Vectors as an index, Spice can embed data, store embeddings in S3, and perform similarity queries – all orchestrated through simple configuration and SQL queries. Let’s walk through how you enable and use this in Spice.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="configuring-a-dataset-with-embeddings">Configuring a Dataset with Embeddings<a href="https://spiceai.org/blog/amazon-s3-vectors-with-spice#configuring-a-dataset-with-embeddings" class="hash-link" aria-label="Direct link to Configuring a Dataset with Embeddings" title="Direct link to Configuring a Dataset with Embeddings">​</a></h3>
<p>To use vector search, annotate your dataset schema to specify which column(s) to embed and with which model. Spice supports various embedding models (both local or hosted) via the embeddings section in the configuration. For example, suppose we have a <strong>customer reviews</strong> table and we want to enable semantic search over the review text (<code>body</code> column):</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> oracle</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token string" style="color:hsl(119, 34%, 47%)">"CUSTOMER_REVIEWS"</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> reviews</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">columns</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> body</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">embeddings</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">          </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> bedrock_titan </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># use an embedding model defined below</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">embeddings</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> bedrock</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">amazon.titan</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">embed</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">text</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">v2</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token number" style="color:hsl(35, 99%, 36%)">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> bedrock_titan</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">aws_region</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> us</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">east</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token number" style="color:hsl(35, 99%, 36%)">2</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">dimensions</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'256'</span><br></span></code></pre></div></div>
<p>In this <code>spicepod.yaml</code>, we defined an embedding model <code>bedrock_titan</code> (in this case AWS's <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/titan-embedding-models.html" target="_blank" rel="noopener noreferrer">Titan text embedding model</a>) and attached it to the <code>body</code> column. When the Spice runtime ingests the dataset, it will automatically generate a vector embedding for each row’s <code>body</code> text using that model. By default, Spice can either store these vectors in its acceleration layer or compute them on the fly. However, with S3 Vectors, we can offload them to an S3 Vectors index for scalable storage.</p>
<p>To use S3 Vectors, we simply enable the vector engine in the dataset config:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> oracle</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token string" style="color:hsl(119, 34%, 47%)">"CUSTOMER_REVIEWS"</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> reviews</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">vectors</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">engine</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> s3_vectors</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">s3_vectors_bucket</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">s3</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">vector</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">bucket</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token comment" style="color:hsl(230, 4%, 64%)">#... (rest of dataset definition as above)</span><br></span></code></pre></div></div>
<p>This tells Spice to create or use an S3 Vectors index (in the specified S3 bucket) for storing the <code>body</code> embeddings. Spice manages the entire index lifecycle: it creates the vector index, handles inserting each vector with its primary key into S3, and knows how to query it. The embedding model and data source are as before – the only change is where the vectors are stored and queried. The benefit is that now our vectors reside in S3’s highly scalable storage, and we can leverage S3 Vectors’ efficient similarity search API.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="performing-a-vector-search-query"><strong>Performing a Vector Search Query</strong><a href="https://spiceai.org/blog/amazon-s3-vectors-with-spice#performing-a-vector-search-query" class="hash-link" aria-label="Direct link to performing-a-vector-search-query" title="Direct link to performing-a-vector-search-query">​</a></h3>
<p>Once configured, performing a semantic search is straightforward. Spice exposes both an HTTP endpoint and a SQL table-valued function for vector search. For example, using the HTTP API:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token function" style="color:hsl(221, 87%, 60%)">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-X</span><span class="token plain"> POST http://localhost:8090/v1/search </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-H</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"Content-Type: application/json"</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-d</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'{</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)"> "datasets": ["reviews"],</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)"> "text": "issues with same day shipping",</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)"> "additional_columns": ["rating", "customer_id"],</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)"> "where": "created_at &gt;= now() - INTERVAL '</span><span class="token number" style="color:hsl(35, 99%, 36%)">7</span><span class="token plain"> days</span><span class="token string" style="color:hsl(119, 34%, 47%)">'",</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)"> "limit": 2</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)"> }'</span><br></span></code></pre></div></div>
<p>This JSON query says: search the <strong>reviews</strong> dataset for items similar to the text "issues with same day shipping", and return the top 2 results, including their rating and customer id, filtered to reviews from the last 7 days. The Spice engine will embed the query text (using the same model as the index), perform a similarity lookup in the S3 Vectors index, filter by the WHERE clause, and return the results. A sample response might look like:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token property" style="color:hsl(5, 74%, 59%)">"results"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token property" style="color:hsl(5, 74%, 59%)">"matches"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token property" style="color:hsl(5, 74%, 59%)">"body"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"Everything on the site made it seem like I’d get it the same day. Still waiting the next morning was a letdown."</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token property" style="color:hsl(5, 74%, 59%)">"data"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> </span><span class="token property" style="color:hsl(5, 74%, 59%)">"rating"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">3</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token property" style="color:hsl(5, 74%, 59%)">"customer_id"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">6482</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token property" style="color:hsl(5, 74%, 59%)">"primary_key"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> </span><span class="token property" style="color:hsl(5, 74%, 59%)">"review_id"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">123</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token property" style="color:hsl(5, 74%, 59%)">"score"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">0.82</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token property" style="color:hsl(5, 74%, 59%)">"dataset"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"reviews"</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token property" style="color:hsl(5, 74%, 59%)">"matches"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token property" style="color:hsl(5, 74%, 59%)">"body"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"It was marked as arriving 'today' when I paid, but the delivery was pushed back without any explanation. Timing was kind of important for me."</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token property" style="color:hsl(5, 74%, 59%)">"data"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> </span><span class="token property" style="color:hsl(5, 74%, 59%)">"rating"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">2</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token property" style="color:hsl(5, 74%, 59%)">"customer_id"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">3310</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token property" style="color:hsl(5, 74%, 59%)">"primary_key"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> </span><span class="token property" style="color:hsl(5, 74%, 59%)">"review_id"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">24</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token property" style="color:hsl(5, 74%, 59%)">"score"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">0.76</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token property" style="color:hsl(5, 74%, 59%)">"dataset"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"reviews"</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token property" style="color:hsl(5, 74%, 59%)">"duration_ms"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">86</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><br></span></code></pre></div></div>
<p>Each result includes the matching column snippet (body), the additional requested fields, the primary key, and a relevance score. In this case, the two reviews shown are indeed complaints about “same day” delivery issues, which the vector search found based on semantic similarity to the query (see how the second result made no mention of "same day" delivery, but rather described a similar issue as the first ).</p>
<p>Developers can also use <strong>SQL</strong> for the same operation. Spice provides a table function <code>vector_search(dataset, query)</code> that can be used in the FROM clause of a SQL query. For example, the above search could be expressed as:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> rating</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> customer_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> body</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> score</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">reviews</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'issues with same day shipping'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">WHERE</span><span class="token plain"> created_at </span><span class="token operator" style="color:hsl(221, 87%, 60%)">&gt;=</span><span class="token plain"> to_unixtime</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token function" style="color:hsl(221, 87%, 60%)">now</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">-</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">INTERVAL</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'7 days'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">2</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
<p>This would yield a result set (with columns like <code>review_id</code>, <code>score</code>, etc.) similar to the JSON above, which you can join or filter just like any other SQL table. This ability to treat vector search results as a subquery/table and combine them with standard SQL filtering is a powerful feature of Spice.ai’s integration – few other solutions let you <strong>natively mix vector similarity and relational queries</strong> so seamlessly.</p>
<p>See a 2-min demo of it in action:</p>
<div style="display:flex;justify-content:center;margin-bottom:15px"><div style="width:640px;height:360px"></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="managing-embeddings-storage-in-spiceai"><strong>Managing Embeddings Storage in Spice.ai</strong><a href="https://spiceai.org/blog/amazon-s3-vectors-with-spice#managing-embeddings-storage-in-spiceai" class="hash-link" aria-label="Direct link to managing-embeddings-storage-in-spiceai" title="Direct link to managing-embeddings-storage-in-spiceai">​</a></h2>
<p>An important design question for any vector search system is <strong>where and how to store the embedding vectors</strong>. Before introducing S3 Vectors, Spice offered two approaches for managing vectors:</p>
<ol>
<li>
<p><strong>Accelerator storage:</strong> Embed the data in advance and store the vectors alongside other cached data in a <strong>Data Accelerator</strong> (Spice’s high-performance materialization layer). This keeps vectors readily accessible in memory or fast storage.</p>
</li>
<li>
<p><strong>Just-in-time computation:</strong> Compute the necessary vectors on the fly during a query, rather than storing them persistently. For example, at query time, embed only the subset of rows that satisfy recent filters (e.g. all reviews in the last 7 days) and compare those to the query vector.</p>
</li>
</ol>
<p>Both approaches have trade-offs. <strong>Pre-storing in an accelerator</strong> provides fast query responses but may not be feasible for very large datasets (which might not fit entirely, or fit affordably in fast storage) and accelerators, like DuckDB or SQLite aren’t optimized for similarity search algorithms on billion-scale vectors. <strong>Just-in-time embedding</strong> avoids extra storage but becomes prohibitively slow when computing embeddings over large data scans (and for each query), and provides no efficient algorithm for efficiently finding similar neighbours.</p>
<p>Amazon S3 Vectors offers a compelling third option: the <strong>scalability of S3</strong> with the efficient retrieval of vector index data structures. By configuring the dataset with engine: <code>s3_vectors</code> as shown earlier, Spice will offload the vector storage and similarity computations to S3 Vectors. This means you can handle very large embedding sets (millions or billions of items) without worrying about Spice’s memory or local disk limits, and still get fast similarity operations via S3’s API. In practice, when Spice ingests data, it will embed each row’s body and <strong>PUT</strong> it into the S3 Vector index (with the <code>review_id</code> as the key, and possibly some metadata). At query time, Spice calls S3 Vectors’ <strong>query API</strong> to retrieve the nearest neighbors for the embedded query. All of this is abstracted away; you simply query Spice and it orchestrates these steps.</p>
<p>The Spice runtime manages index creation, updates, and deletion. For instance, if new data comes in or old data is removed, Spice will synchronize those changes to the S3 vector index. Developers don’t need to directly interact with S3 – it’s configured once in YAML. This tight integration accelerates application development: your app can treat Spice like any other database, while behind the scenes Spice leverages S3’s elasticity for the heavy lifting.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="vector-index-usage-in-query-execution"><strong>Vector Index Usage in Query Execution</strong><a href="https://spiceai.org/blog/amazon-s3-vectors-with-spice#vector-index-usage-in-query-execution" class="hash-link" aria-label="Direct link to vector-index-usage-in-query-execution" title="Direct link to vector-index-usage-in-query-execution">​</a></h2>
<p>How does a vector index actually get used in Spice’s SQL query planner? To illustrate, consider the simplified SQL we used:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">*</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">reviews</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'issues with same day shipping'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">5</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
<p>Logically, without a vector index, Spice would have to do the following at query time:</p>
<ol>
<li>
<p><strong>Embed the query text</strong> 'issues with same day shipping' into a vector <code>v</code>.</p>
</li>
<li>
<p><strong>Retrieve or compute all candidate vectors</strong> for the searchable column (here every <code>body</code> embedding in the dataset). This could mean scanning every row or at least every row matching other filter predicate.</p>
</li>
<li>
<p><strong>Calculate distances</strong> between the query vector <code>v</code> and each candidate vector, compute a similarity score (e.g. <code>score = 1 - distance</code>).</p>
</li>
<li>
<p><strong>Sort all candidates</strong> by the score and take the top 5.</p>
</li>
</ol>
<p>For large datasets, steps 2–4 would be extremely expensive (a brute-force scan through potentially millions of vectors for each search, then a full sort operation). A vector index avoiding unnecessary recomputation of embeddings, reduces the number of distance calculations required, and provides in-order candidate neighbors.</p>
<p>With S3 Vectors, step 2 and 3 are pushed down to the S3 service. The vector index can directly return the <em>top K closest matches</em> to <code>v</code>. Conceptually, S3 Vectors gives back an ordered list of primary keys with their similarity scores. For example, it might return something like: <code>{(review_id=123, score=0.82), (review_id=24, score=0.76), ...}</code> up to K results.</p>
<p>Spice then uses these results, logically as a <em>temporary table</em> (let’s call it vector_query_results), joined with the main reviews table to get the full records. In SQL pseudocode, Spice does something akin to:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token comment" style="color:hsl(230, 4%, 64%)">-- The vector index returns the closest matches for a given query.</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">TEMP</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">TABLE</span><span class="token plain"> vector_query_results </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> review_id </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BIGINT</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FLOAT</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
<p>Imagine this temp table is populated by an efficient vector retrieval operatin in S3 Vectors for the query.</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token comment" style="color:hsl(230, 4%, 64%)">-- Now we join to retrieve full details</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> r</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> r</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">rating</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> r</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">customer_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> r</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">body</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> v</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">score</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_query_results v</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">JOIN</span><span class="token plain"> reviews r </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ON</span><span class="token plain"> r</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id </span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token plain"> v</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> v</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">5</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
<p>This way, only the top few results (say 50 or 100 candidates) are processed in the database, rather than the entire dataset. The heavy work of narrowing down candidates occurs inside the vector index. <strong>Spice essentially treats vector_search(dataset, query) as a table-valued function that produces (id, score) pairs which are then joinable</strong>.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="handling-filters-efficiently"><strong>Handling Filters Efficiently</strong><a href="https://spiceai.org/blog/amazon-s3-vectors-with-spice#handling-filters-efficiently" class="hash-link" aria-label="Direct link to handling-filters-efficiently" title="Direct link to handling-filters-efficiently">​</a></h3>
<p>One consideration when using an external vector index is how to handle additional filter conditions (the <code>WHERE</code> clause). In our example, we had a filter <code>created_at &gt;= now() - 7 days</code>. If we simply retrieve the top K results from the vector search and then apply the time filter, we might run into an issue: those top K might not include any recent items, even if there are relevant recent items slightly further down the similarity ranking. This is because S3 Vectors (like most ANN indexes) will return the top K most similar vectors globally, unaware of our date constraint.</p>
<p>If only a small fraction of the data meets the filter, a naive approach could drop most of the top results, leaving fewer than the desired number of final results. For example, imagine the vector index returns 100 nearest reviews overall, but only 5% of all reviews are from the last week – we’d expect only ~5 of those 100 to be recent, possibly fewer than the LIMIT. The query could end up with too few results not because they don’t exist, but because the index wasn’t filter-aware and we truncated the candidate list.</p>
<p>To solve this, <strong>S3 Vectors supports metadata filtering at query time</strong>. We can store certain fields as metadata with each vector and have the similarity search constrained to vectors where the metadata meets criteria. Spice.ai leverages this by allowing you to mark some dataset columns as “vector filterable”. In our YAML, we could do:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">columns</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> created_at</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">metadata</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">vectors</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> filterable</span><br></span></code></pre></div></div>
<p>By doing this, Spice's query planner will include the <code>created_at</code> value with each vector it upserts to S3, and it will push down the time filter into the S3 Vectors query. Under the hood, the S3 vector query will then return only nearest neighbors that also satisfy <code>created_at &gt;= now()-7d</code>. This greatly improves both efficiency and result relevance. The query execution would conceptually become:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token comment" style="color:hsl(230, 4%, 64%)">-- Vector query with filter returns a temp table including the metadata</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">TEMP</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">TABLE</span><span class="token plain"> vector_query_results </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> review_id </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BIGINT</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FLOAT</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> created_at </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">TIMESTAMP</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token comment" style="color:hsl(230, 4%, 64%)">-- vector_query_results is already filtered to last 7 days</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> r</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> r</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">rating</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> r</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">customer_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> r</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">body</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> v</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">score</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_query_results v</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">JOIN</span><span class="token plain"> reviews r </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ON</span><span class="token plain"> r</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id </span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token plain"> v</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token comment" style="color:hsl(230, 4%, 64%)">-- (no need for additional created_at filter here, it’s pre-filtered)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> v</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">5</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
<p>Now the index itself is ensuring all similar reviews <em>are from the last week</em>, and so if there are at least five results from the last week, it will return a full result (i.e. respecting <code>LIMIT 5</code>).</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="including-data-to-avoid-joins"><strong>Including Data to Avoid Joins</strong><a href="https://spiceai.org/blog/amazon-s3-vectors-with-spice#including-data-to-avoid-joins" class="hash-link" aria-label="Direct link to including-data-to-avoid-joins" title="Direct link to including-data-to-avoid-joins">​</a></h3>
<p>Another optimization Spice supports is storing additional, non-filterable columns in the vector index to entirely avoid the expensive table join back to the main table for certain queries. For example, we might mark <code>rating</code>, <code>customer_id</code>, or even the text <code>body</code> as <strong>non-filterable vector metadata</strong>. This means these fields are stored with the vector in S3, but not used for filtering (just for retrieval). In the Spice config, it would look like:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">columns</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> rating</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">metadata</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">vectors</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> non</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">filterable</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> customer_id</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">metadata</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">vectors</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> non</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">filterable</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> body</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">metadata</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">vectors</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> non</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">filterable</span><br></span></code></pre></div></div>
<p>With this setup, when Spice queries S3 Vectors, the vector index will return not only each match’s <code>review_id</code> and <code>score</code>, but also the stored <code>rating</code>, <code>customer_id</code>, and <code>body</code> values. Thus, the temporary <code>vector_query_results</code> table already has all the information needed to satisfy the query. We don’t even need to join against the reviews table unless we want some column that wasn’t stored. The query can be answered entirely from the index data:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> rating</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> customer_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> body</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> score</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_query_results</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">5</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
<p>This is particularly useful for read-heavy query workloads where hitting the main database adds latency. By storing the most commonly needed fields along with the vector, Spice’s vector search behaves like an <strong>index-only query</strong> (similar to covering indexes in relational databases). You trade a bit of extra storage in S3 (duplicating some fields, but still managed by Spice) for faster queries that bypass the heavier join.</p>
<p>This extends to <code>WHERE</code> conditions on non-filterable columns, or filter predicate unsupported by S3 vectors. Spice's execution engine can apply these filters, still avoiding any expensive JOIN on the underlying table.</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> rating</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> customer_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> body</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> score</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_query_results</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">where</span><span class="token plain"> rating </span><span class="token operator" style="color:hsl(221, 87%, 60%)">&gt;</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">3</span><span class="token plain">  </span><span class="token comment" style="color:hsl(230, 4%, 64%)">-- Filter performed in Spice on, with non-filterable data from vector index</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">5</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
<p>It’s worth noting that you should choose carefully which fields to mark as metadata – too many or very large fields could increase index storage and query payload sizes. Spice gives you the flexibility to include just what you need for filtering and projection to optimize each use case.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="beyond-basic-vector-search-in-spice"><strong>Beyond Basic Vector Search in Spice</strong><a href="https://spiceai.org/blog/amazon-s3-vectors-with-spice#beyond-basic-vector-search-in-spice" class="hash-link" aria-label="Direct link to beyond-basic-vector-search-in-spice" title="Direct link to beyond-basic-vector-search-in-spice">​</a></h2>
<p>Many real-world search applications go beyond a single-vector similarity lookup. Spice.ai’s strength is that it’s a full database engine. You can compose more complex search workflows, including <strong>hybrid search</strong> (combining keyword/text search with vector search), multi-vector queries, re-ranking strategies, and more. Spice provides both an out-of-the-box hybrid search API and the ability to write custom SQL to implement advanced retrieval logic.</p>
<ul>
<li>
<p><strong>Multiple vector fields or multi-modal search:</strong> You might have vectors for different aspects of data (e.g. an e-commerce product could have embeddings for both its description and the product's image. Or a document has both a title and body that should be searchable individually and together) that you may want to search across and combine results. Spice lets you do vector search on multiple columns easily, and you can weight the importance of each. For instance, you might boost matches in the title higher than matches in the body.</p>
</li>
<li>
<p><strong>Vector and full-text search:</strong> Similar to vector search, columns can have text indexes <a href="https://spiceai.org/docs/features/search/full-text" target="_blank" rel="noopener noreferrer">defined</a> that enable full-text BM25 search. Text search can then be performed in SQL with a similar <code>text_search</code> <a href="https://spiceai.org/docs/features/search/full-text#searching-with-sql" target="_blank" rel="noopener noreferrer">UDTF</a>. The <code>/v1/search</code> HTTP API will perform a <strong>hybrid search</strong> across both full-text and vector indexes, merging results using Reciprocal Rank Fusion (RRF). This means you get a balanced result set that accounts for direct keyword matches as well as semantic similarity. The example below demonstrates how RRF can be implemented in SQL by combining ranks.</p>
</li>
<li>
<p><strong>Hybrid vector + keyword search:</strong> Sometimes you want to ensure certain keywords are present while also using semantic similarity. Spice supports <strong>hybrid search</strong> natively – its default <code>/v1/search</code> HTTP API actually performs both full-text BM25 search and vector search, then merges results using Reciprocal Rank Fusion (RRF). This means you get a balanced result set that accounts for direct keyword matches as well as semantic similarity. In Spice’s SQL, you can also call text_search(dataset, query) for traditional full-text search, and combine it with vector_search results. The example below demonstrates how RRF can be implemented in SQL by combining ranks.</p>
</li>
<li>
<p><strong>Two-phase retrieval (re-ranking):</strong> A common pattern is to use a fast first-pass retrieval (e.g. a keyword search) to get a larger candidate set, then apply a more expensive or precise ranking (e.g. vector search) on this subset to improve the score of the required final candidate set. With Spice, you can orchestrate this in SQL or in application code. For example, you could query a BM25 index for 100 candidates, then perform a vector search amongst this candidate set(i.e. restricted to those IDs) for a second phase. Since Spice supports standard SQL constructs, you can express these multi-step plans with common table expressions (CTEs) and joins.</p>
</li>
</ul>
<p>To illustrate hybrid search, here’s a SQL snippet that uses the <strong>Reciprocal Rank Fusion (RRF)</strong> technique to merge vector and text search results for the same query (RRF is used, when needed, in the <code>v1/search</code> HTTP API):</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">WITH</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">vector_results </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">AS</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> RANK</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">OVER</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">AS</span><span class="token plain"> vector_rank</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">reviews</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'issues with same day shipping'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">text_results </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">AS</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> RANK</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">OVER</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">AS</span><span class="token plain"> text_rank</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> text_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">reviews</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'issues with same day shipping'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">COALESCE</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">v</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> t</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">AS</span><span class="token plain"> review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token comment" style="color:hsl(230, 4%, 64%)">-- RRF scoring: 1/(60+rank) from each source</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token number" style="color:hsl(35, 99%, 36%)">1.0</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">/</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token number" style="color:hsl(35, 99%, 36%)">60</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">+</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">COALESCE</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">v</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">vector_rank</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">1000</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">+</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">1.0</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">/</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token number" style="color:hsl(35, 99%, 36%)">60</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">+</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">COALESCE</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">t</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">text_rank</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">1000</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">AS</span><span class="token plain"> fused_score</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_results v</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FULL</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">OUTER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">JOIN</span><span class="token plain"> text_results t </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ON</span><span class="token plain"> v</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id </span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token plain"> t</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> fused_score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">50</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
<p>This takes the vector similarity results and text (BM25) results, assigns each a rank based not on the score, but rather the relative order of candidates, and combines these ranks for an overall order. Spice’s primary key SQL semantics easily enables this document ID join.</p>
<p>For a multi-column vector search example, suppose our reviews dataset has both a title and body with embeddings, and we want to prioritize title matches higher. We could create a <code>combined_score</code> where the title is weighted twice as high as the body:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">WITH</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">body_results </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">AS</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">AS</span><span class="token plain"> body_score</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">reviews</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'issues with same day shipping'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> col </span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token operator" style="color:hsl(221, 87%, 60%)">&gt;</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'body'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">title_results </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">AS</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">AS</span><span class="token plain"> title_score</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">reviews</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'issues with same day shipping'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> col </span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token operator" style="color:hsl(221, 87%, 60%)">&gt;</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'title'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">COALESCE</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">body</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> title</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">AS</span><span class="token plain"> review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">COALESCE</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">body_score</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">0</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">+</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">2.0</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">*</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">COALESCE</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">title_score</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">0</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">AS</span><span class="token plain"> combined_score</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> body_results</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FULL</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">OUTER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">JOIN</span><span class="token plain"> title_results </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ON</span><span class="token plain"> body_results</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id </span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token plain"> title_results</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">.</span><span class="token plain">review_id</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> combined_score </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">DESC</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">5</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
<p>These examples scratch the surface of what you can do by leveraging Spice’s <strong>SQL-based composition</strong>. The key point is that Spice isn’t just a vector database – it’s a hybrid engine that lets you combine vector search with other query logic (text search, filters, joins, aggregations, etc.) all in one place. This can significantly simplify building complex search and AI-driven applications.</p>
<p><em>(Note: Like most vector search systems, S3 Vectors uses an approximate nearest neighbor (ANN) algorithm under the hood for performance. This yields fast results that are probabilistically the closest, which is usually an acceptable trade-off in practice. Additionally, in our examples we focused on one embedding per row; production systems may use techniques like chunking text into multiple embeddings or adding external context, but the principles above remain the same.)</em></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="industry-context-and-comparisons"><strong>Industry Context and Comparisons</strong><a href="https://spiceai.org/blog/amazon-s3-vectors-with-spice#industry-context-and-comparisons" class="hash-link" aria-label="Direct link to industry-context-and-comparisons" title="Direct link to industry-context-and-comparisons">​</a></h2>
<p>The rise of vector databases over the past few years (Pinecone, Qdrant, Weaviate, etc.) has been driven by the need to serve AI applications with semantic search at scale. Each solution takes a slightly different approach in architecture and trade-offs. Spice.ai’s integration with Amazon S3 Vectors represents a newer trend in this space: <strong>decoupling storage from compute for vector search</strong>, analogous to how data warehouses separated compute and storage in the past. Let’s compare this approach with some existing solutions:</p>
<ul>
<li>
<p><strong>Traditional Vector Databases (Qdrant, Weaviate, Pinecone):</strong> These systems typically run as dedicated services or clusters that handle both the storage of vectors (on disk or in-memory) and the computation of similarity search. For example, Qdrant (an open-source engine in Rust) allows either in-memory storage or on-disk storage (using RocksDB) for vectors and payloads. It’s optimized for high performance and offers features like filtering, quantization, and distributed clustering, but you generally need to provision servers/instances that will host all your data and indexes. Weaviate, another popular open-source vector DB, uses a <strong>Log-Structured Merge (LSM) tree</strong> based storage engine that persists data to disk and keeps indexes in memory. Weaviate supports hybrid search (it can combine keyword and vector queries) and offers a GraphQL API, with a managed cloud option priced mainly by data volume. Pinecone, a fully managed SaaS, also requires you to select a service tier or pod which has certain memory/CPU allocated for your index – essentially your data lives in Pinecone’s infrastructure, not in your AWS account. These solutions excel at low-latency search for <strong>high query throughput</strong> scenarios (since data is readily available in RAM or local SSD), but the cost can be high for large datasets. You pay for a lot of infrastructure to be running, even during idle times. In fact, prior to S3 Vectors, vector search engines often stored data in memory at ~$2/GB and needed multiple replicas on SSD, which is <em>“the most expensive way to store data”</em>, as Simon Eskildsen (Turbopuffer’s founder) noted. Some databases mitigate cost by compressing or offloading to disk, but still, maintaining say 100 million embeddings might require a sizable cluster of VMs or a costly cloud plan.</p>
</li>
<li>
<p><strong>Spice.ai with Amazon S3 Vectors:</strong> This approach flips the script by storing vectors in <strong>cheap, durable object storage (S3)</strong> and loading/indexing them on demand. As discussed, S3 Vectors keeps the entire vector dataset in S3 at ~$0.02/GB storage , and only spins up transient compute (managed by AWS) to serve queries, meaning you aren’t paying for idle GPU or RAM time. AWS states this design can cut total costs by up to 90% while still giving sub-second performance on billions of vectors. It’s essentially a <strong>serverless vector search</strong> model – you don’t manage servers or even dedicated indices; you just use the API. Spice.ai’s integration means developers get this cost-efficiency without having to rebuild their application: they can use standard SQL and Spice will push down operations to S3 Vectors as appropriate. This decoupled storage/compute model is ideal for use cases where the data is huge but query volumes are moderate or bursty (e.g., an enterprise semantic search that is used a few times an hour, or a nightly ML batch job). It avoids the “monolithic database” scenario of having a large cluster running 24/7. However, one should note that if you need extremely high QPS (thousands of queries per second at ultra-low latency), a purely object-storage-based solution might not outperform a tuned in-memory vector DB – AWS positions S3 Vectors as complementary to higher-QPS solutions like OpenSearch for real-time needs.</p>
</li>
<li>
<p><strong>Turbopuffer:</strong> Turbopuffer is a startup that, much like Spice with S3 Vectors, is <strong>built from first principles on object storage</strong>. It provides <em>“serverless vector and full-text search… fast, 10× cheaper, and extremely scalable,”</em> by leveraging S3 or similar object stores with smart caching. The philosophy is the same: use the durability and low cost of object storage for the bulk of data, and layer a cache (memory/SSD) in front for performance-critical portions. According to Turbopuffer’s founder, moving from memory/SSD-centric architectures to an object storage core can yield <strong>100× cost savings for cold data and 6–20× for warm data</strong>, without sacrificing too much performance. Turbopuffer’s engine indexes data incrementally on S3 and uses caching to achieve similar latency to conventional search engines on hot data. The key difference is that Turbopuffer is a standalone search service (with its own API), whereas Spice uses AWS’s S3 Vectors service as the backend. Both approaches validate the industry trend toward <strong>disaggregated storage</strong> for search. Essentially, they are bringing the cloud data warehouse economics to vector search: store everything cheaply, compute on demand.</p>
</li>
</ul>
<p>In summary, Spice.ai’s integration with S3 Vectors and similar efforts indicate a shift in vector search towards <strong>cost-efficient, scalable architectures</strong> that separate the concerns of storing massive vector sets and serving queries. Developers now have options: if you need blazing fast, realtime vector search with constant high traffic, dedicated compute infrastructure might be justified. But for many applications – enterprise search, AI assistants with a lot of knowledge but lower QPS, periodic analytics over embeddings – offloading to something like S3 Vectors can save enormously on cost while still delivering sub-second performance at huge scale. And with Spice.ai, you get the best of both worlds: the ease of a unified SQL engine that can do <strong>keyword + vector hybrid search on structured data</strong>, combined with the power of a cloud-native vector store. It simplifies your stack (no separate vector DB service to manage) and accelerates development since you can join and filter vector search results with your data immediately in one query .</p>
<p><strong>References:</strong></p>
<ul>
<li>
<p><a href="https://spice.ai/blog/amazon-s3-vectors" target="_blank" rel="noopener noreferrer">Spice.ai announcement</a>: <em>“Spice.ai Now Supports Amazon S3 Vectors For Vector Search at Petabyte Scale!”</em></p>
</li>
<li>
<p><a href="https://spiceai.org/docs/components/vectors/s3_vectors" target="_blank" rel="noopener noreferrer">Spice.ai Amazon S3 Vectors documentation</a></p>
</li>
<li>
<p><a href="https://github.com/spiceai/cookbook/blob/trunk/vectors/s3/README.md" target="_blank" rel="noopener noreferrer">Spice.ai Amazon S3 Vectors Cookbook Recipe Sample</a></p>
</li>
<li>
<p><a href="https://aws.amazon.com/s3/features/vectors" target="_blank" rel="noopener noreferrer">Amazon S3 Vectors official page</a></p>
</li>
<li>
<p><a href="https://docs.pinecone.io/guides/get-started/database-architecture" target="_blank" rel="noopener noreferrer">Pinecone Database Architecture</a> (managed vector database)</p>
</li>
<li>
<p><a href="https://qdrant.tech/documentation/concepts/indexing" target="_blank" rel="noopener noreferrer">Qdrant documentation</a> (storage modes and features)</p>
</li>
<li>
<p><a href="https://turbopuffer.com/blog/turbopuffer" target="_blank" rel="noopener noreferrer">Turbopuffer blog</a> by Simon Eskildsen (cost of search on object storage)</p>
</li>
<li>
<p><a href="https://docs.weaviate.io/weaviate/concepts/storage" target="_blank" rel="noopener noreferrer">Weaviate</a> storage architecture discussion</p>
</li>
</ul>]]></content>
        <author>
            <name>Jack Eadie</name>
            <uri>https://github.com/Jeadie</uri>
        </author>
        <category label="spiceai" term="spiceai"/>
        <category label="engineering" term="engineering"/>
        <category label="vectors" term="vectors"/>
        <category label="embeddings" term="embeddings"/>
        <category label="s3" term="s3"/>
        <category label="search" term="search"/>
        <category label="vector-search" term="vector-search"/>
        <category label="semantic-search" term="semantic-search"/>
        <category label="rag" term="rag"/>
        <category label="hybrid-search" term="hybrid-search"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.5.1 (July 28, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.5.1</id>
        <link href="https://spiceai.org/blog/releases/v1.5.1"/>
        <updated>2025-07-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.5.1! 🔑]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.5.1! 🔑</p>
<p>Spice v1.5.1 expands the GitHub data connector to include pull-request comments, adds a configurable rate limiting for AWS Bedrock embedding models, expands partition pruning with inequality operators, and adds client-supplied cache keys for granular caching control in the HTTP and Arrow Flight SQL APIs.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-new-in-v151">What's New in v1.5.1<a href="https://spiceai.org/blog/releases/v1.5.1#whats-new-in-v151" class="hash-link" aria-label="Direct link to What's New in v1.5.1" title="Direct link to What's New in v1.5.1">​</a></h2>
<p><strong>GitHub Data Connector Pull Request Comments</strong>: Configure GitHub pulls datasets to include comments.</p>
<p>Example Spicepod.yaml:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> github</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">github.com/spiceai/spiceai/pulls</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> spiceai.pulls</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">github_include_comments</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> all </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># 'review', 'discussion', or 'none'. Defaults to 'none'.</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">github_max_comments_fetched</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'25'</span><span class="token plain"> </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># Defaults to 100</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># ...</span><br></span></code></pre></div></div>
<p>For details, see the <a href="https://spiceai.org/docs/components/data-connectors/github" target="_blank" rel="noopener noreferrer">GitHub Data Connector documentation</a>.</p>
<p><strong>AWS Bedrock Embedding Models Invocation Control</strong>: Improved rate limiting control for AWS Bedrock embedding models with <code>max_concurrent_invocations</code> configuration.</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">embeddings</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> bedrock</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">cohere.embed</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">english</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">v3</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> cohere</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">embeddings</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">max_concurrent_invocations</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'41'</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># ...</span><br></span></code></pre></div></div>
<p>For details, see the <a href="https://spiceai.org/docs/components/embeddings/bedrock" target="_blank" rel="noopener noreferrer">AWS Bedrock Embeddings Model Provider documentation</a>.</p>
<p><strong>Improved Query Partitioning</strong>: Expanded partition pruning support with additional inequality operators (e.g. <code>&gt;</code>, <code>&gt;=</code>, <code>&lt;</code>, <code>&lt;=</code>).</p>
<p>For details, see the <a href="https://spiceai.org/docs/features/data-acceleration/partitioning" target="_blank" rel="noopener noreferrer">Query Partitioning documentation</a>.</p>
<p><strong>Client-Supplied Cache Keys</strong>: Support for a new <code>Spice-Cache-Key</code> header/metadata-key in the HTTP and Arrow Flight SQL query APIs to for fine-grained client-side caching control.</p>
<p>Example HTTP API usage:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">$ </span><span class="token function" style="color:hsl(221, 87%, 60%)">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-vvS</span><span class="token plain"> </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-XPOST</span><span class="token plain"> http://localhost:8090/v1/sql </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">-H</span><span class="token string" style="color:hsl(119, 34%, 47%)">"spice-cache-key: 1851400_20170216_north_america"</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-d</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"select * from scihub_journals_accessed</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)">    where user_id = '1851400'</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)">      and date_trunc('DAY', timestamp) = '2017-02-16'</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)">      and city = 'New York';"</span><br></span></code></pre></div></div>
<p>Example Response:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token operator" style="color:hsl(221, 87%, 60%)">&lt;</span><span class="token plain"> HTTP/1.1 </span><span class="token number" style="color:hsl(35, 99%, 36%)">200</span><span class="token plain"> OK</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">&lt;</span><span class="token plain"> content-type: application/json</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">&lt;</span><span class="token plain"> x-cache: Hit from spiceai</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">&lt;</span><span class="token plain"> results-cache-status: HIT</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">&lt;</span><span class="token plain"> vary: Spice-Cache-Key</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">&lt;</span><span class="token plain"> vary: origin, access-control-request-method, access-control-request-headers</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">&lt;</span><span class="token plain"> content-length: </span><span class="token number" style="color:hsl(35, 99%, 36%)">604</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">&lt;</span><span class="token plain"> date: Wed, </span><span class="token number" style="color:hsl(35, 99%, 36%)">23</span><span class="token plain"> Jul </span><span class="token number" style="color:hsl(35, 99%, 36%)">2025</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">20</span><span class="token plain">:26:12 GMT</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">&lt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token string" style="color:hsl(119, 34%, 47%)">"timestamp"</span><span class="token builtin class-name" style="color:hsl(35, 99%, 36%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"2017-02-16 09:55:06"</span><span class="token plain">,</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token string" style="color:hsl(119, 34%, 47%)">"doi"</span><span class="token builtin class-name" style="color:hsl(35, 99%, 36%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"10.1155/2012/650929"</span><span class="token plain">,</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token string" style="color:hsl(119, 34%, 47%)">"ip_identifier"</span><span class="token builtin class-name" style="color:hsl(35, 99%, 36%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">1000856</span><span class="token plain">,</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token string" style="color:hsl(119, 34%, 47%)">"user_id"</span><span class="token builtin class-name" style="color:hsl(35, 99%, 36%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">1851400</span><span class="token plain">,</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token string" style="color:hsl(119, 34%, 47%)">"country"</span><span class="token builtin class-name" style="color:hsl(35, 99%, 36%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"United States"</span><span class="token plain">,</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token string" style="color:hsl(119, 34%, 47%)">"city"</span><span class="token builtin class-name" style="color:hsl(35, 99%, 36%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"New York"</span><span class="token plain">,</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token string" style="color:hsl(119, 34%, 47%)">"longitude"</span><span class="token builtin class-name" style="color:hsl(35, 99%, 36%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">40.7830603</span><span class="token plain">,</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token string" style="color:hsl(119, 34%, 47%)">"latitude"</span><span class="token builtin class-name" style="color:hsl(35, 99%, 36%)">:</span><span class="token plain"> </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-73.9712488</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain">,</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">..</span><span class="token plain">.</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><br></span></code></pre></div></div>
<p>For details, see the <a href="https://spiceai.org/docs/features/caching#cache-control" target="_blank" rel="noopener noreferrer">Cache Control documentation</a>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.5.1#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a></li>
<li><a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a></li>
<li><a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a></li>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a></li>
<li><a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a></li>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a></li>
<li><a href="https://github.com/varunguleriaCodes" target="_blank" rel="noopener noreferrer">@varunguleriaCodes</a></li>
<li><a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a></li>
<li><a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a></li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="new-contributors">New Contributors<a href="https://spiceai.org/blog/releases/v1.5.1#new-contributors" class="hash-link" aria-label="Direct link to New Contributors" title="Direct link to New Contributors">​</a></h3>
<ul>
<li>@varunguleriaCodes made their first contribution in <a href="https://github.com/spiceai/spiceai/pull/6383" target="_blank" rel="noopener noreferrer">github.com/spiceai/spiceai/pull/6383</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.5.1#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<ul>
<li>N/A</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.5.1#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<p>No new recipes added in this release.</p>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> includes 74 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.5.1#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.5.1, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.5.1</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.5.1</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.5.1#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.5.1#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<p>No major dependency updates.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.5.1#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<ul>
<li>Fix refresh via Api when dataset is already accelerated and no refresh interval is set by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6549" target="_blank" rel="noopener noreferrer">#6549</a></li>
<li>Add support for custom GraphQL unnesting behavior by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6540" target="_blank" rel="noopener noreferrer">#6540</a></li>
<li>Regex Update to disallow hyphens dataset names by <a href="https://github.com/varunguleriaCodes" target="_blank" rel="noopener noreferrer">@varunguleriaCodes</a> in <a href="https://github.com/spiceai/spiceai/pull/6383" target="_blank" rel="noopener noreferrer">#6383</a></li>
<li>Enforce max limit on comments fetched per PR by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6580" target="_blank" rel="noopener noreferrer">#6580</a></li>
<li>Fix accelerated refresh issue by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6590" target="_blank" rel="noopener noreferrer">#6590</a></li>
<li>Enable configurations of max invocations for Bedrock models by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6592" target="_blank" rel="noopener noreferrer">#6592</a></li>
<li>Client-supplied cache keys (Spice-Cache-Key) by <a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a> in <a href="https://github.com/spiceai/spiceai/pull/6579" target="_blank" rel="noopener noreferrer">#6579</a></li>
<li>Improved partition pruning by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6582" target="_blank" rel="noopener noreferrer">#6582</a></li>
<li>Fix retention filter when both retention_sql and period are set by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6595" target="_blank" rel="noopener noreferrer">#6595</a></li>
<li>Initial support for PR comments by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6569" target="_blank" rel="noopener noreferrer">#6569</a></li>
<li>chore: Update croner by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6547" target="_blank" rel="noopener noreferrer">#6547</a></li>
<li>fix databricks streaming for Claude model by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6601" target="_blank" rel="noopener noreferrer">#6601</a></li>
<li>Remove <code>FullTextUDTFAnalyzerRule</code> and move FTS code into <code>search</code> crate by <a href="https://github.com/jeadie" target="_blank" rel="noopener noreferrer">@jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6596" target="_blank" rel="noopener noreferrer">#6596</a></li>
<li>Remove download of legacy sentence transformers config by <a href="https://github.com/jeadie" target="_blank" rel="noopener noreferrer">@jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6605" target="_blank" rel="noopener noreferrer">#6605</a></li>
<li>re-add snapshot tests by <a href="https://github.com/jeadie" target="_blank" rel="noopener noreferrer">@jeadie</a></li>
<li>Embedding column config to support client-specified vector sizes by <a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a> in <a href="https://github.com/spiceai/spiceai/pull/6610" target="_blank" rel="noopener noreferrer">#6610</a></li>
<li>Fix mismatch in columns for the GitHub PR table type by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6616" target="_blank" rel="noopener noreferrer">#6616</a></li>
<li>bump version to 1.5.1 by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li>fix issues with cherry-picking by <a href="https://github.com/jeadie" target="_blank" rel="noopener noreferrer">@jeadie</a></li>
<li>Add integration tests for GitHub PRs with comments by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6581" target="_blank" rel="noopener noreferrer">#6581</a></li>
<li>Add view name to view creation errors by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6611" target="_blank" rel="noopener noreferrer">#6611</a></li>
<li>CDC: Compute embeddings on ingest by <a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a> in <a href="https://github.com/spiceai/spiceai/pull/6612" target="_blank" rel="noopener noreferrer">#6612</a></li>
</ul>]]></content>
        <author>
            <name>Jack Eadie</name>
            <uri>https://github.com/Jeadie</uri>
        </author>
        <category label="release" term="release"/>
        <category label="github" term="github"/>
        <category label="data-connector" term="data-connector"/>
        <category label="aws" term="aws"/>
        <category label="embeddings" term="embeddings"/>
        <category label="partitioning" term="partitioning"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.5.0 (July 21, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.5.0</id>
        <link href="https://spiceai.org/blog/releases/v1.5.0"/>
        <updated>2025-07-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.5.0! 🔍]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.5.0! 🔍</p>
<p>Spice v1.5.0 brings major upgrades to search and retrieval. It introduces native support for Amazon S3 Vectors, enabling petabyte scale vector search directly from S3 vector buckets, alongside SQL-integrated vector and tantivy-powered full-text search, partitioning for DuckDB acceleration, and automated refreshes for search indexes and views. It includes the AWS Bedrock Embeddings Model Provider, the Oracle Database connector, and the now-stable Spice.ai Cloud Data Connector, and the upgrade to DuckDB v1.3.2.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-new-in-v150">What's New in v1.5.0<a href="https://spiceai.org/blog/releases/v1.5.0#whats-new-in-v150" class="hash-link" aria-label="Direct link to What's New in v1.5.0" title="Direct link to What's New in v1.5.0">​</a></h2>
<p><strong>Amazon S3 Vectors Support</strong>: Spice.ai now integrates with <a href="https://aws.amazon.com/s3/features/vectors/" target="_blank" rel="noopener noreferrer">Amazon S3 Vectors</a>, launched in public preview on July 15, 2025, enabling vector-native object storage with built-in indexing and querying. This integration supports semantic search, recommendation systems, and retrieval-augmented generation (RAG) at petabyte scale with S3’s durability and elasticity. Spice.ai manages the vector lifecycle—ingesting data, creating embeddings with models like Amazon Titan or Cohere via AWS Bedrock, or others available on HuggingFace, and storing it in S3 Vector buckets.</p>
<p><img decoding="async" loading="lazy" src="https://github.com/user-attachments/assets/6bdd5ed9-7663-47a3-8ae6-480ab20a6751" alt="Spice integration with Amazon S3 Vectors" class="img_ev3q"></p>
<p>Example Spicepod.yml configuration for S3 Vectors:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> s3</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">//my_data_bucket/data/</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_vectors</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">file_format</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> parquet</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">acceleration</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">vectors</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">engine</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> s3_vectors</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">s3_vectors_aws_region</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> us</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">east</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token number" style="color:hsl(35, 99%, 36%)">2</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">s3_vectors_bucket</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">s3</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">vectors</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">bucket</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">columns</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> content</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">embeddings</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">          </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> bedrock_titan</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">            </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">row_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">              </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> id</span><br></span></code></pre></div></div>
<p>Example SQL query using S3 Vectors:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">*</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">my_vectors</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'Cricket bats'</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">10</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">WHERE</span><span class="token plain"> price </span><span class="token operator" style="color:hsl(221, 87%, 60%)">&lt;</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">100</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> score</span><br></span></code></pre></div></div>
<p>For more details, refer to the <a href="https://spiceai.org/docs/components/vectors/s3_vectors" target="_blank" rel="noopener noreferrer">S3 Vectors Documentation</a>.</p>
<p><strong>SQL-integrated Search</strong>: Vector and BM25-scored full-text search capabilities are now natively available in SQL queries, extending the power of the <code>POST v1/search</code> endpoint to all SQL workflows.</p>
<p>Example Vector-Similarity-Search (VSS) using the <code>vector_search</code> UDTF on the table <code>reviews</code> for the search term "Cricket bats":</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> review_text</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> review_date</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> score</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> vector_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">reviews</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"Cricket bats"</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">WHERE</span><span class="token plain"> country_code</span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token string" style="color:hsl(119, 34%, 47%)">"AUS"</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">3</span><br></span></code></pre></div></div>
<p>Example Full-Text-Search (FTS) using the <code>text_search</code> UDTF on the table <code>reviews</code> for the search term "Cricket bats":</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> review_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> review_text</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> review_date</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> score</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> text_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">(</span><span class="token plain">reviews</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"Cricket bats"</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">LIMIT</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">3</span><br></span></code></pre></div></div>
<p><strong>DuckDB v1.3.2 Upgrade</strong>: Upgraded DuckDB engine from v1.1.3 to v1.3.2. Key improvements include support for adding primary keys to existing tables, resolution of over-eager unique constraint checking for smoother inserts, and 13% reduced runtime on TPC-H SF100 queries through extensive optimizer refinements. The v1.2.x release of DuckDB was skipped due to a regression in indexes.</p>
<ul>
<li>Read the <a href="https://duckdb.org/2025/02/05/announcing-duckdb-120.html" target="_blank" rel="noopener noreferrer">DuckDB v1.2.0 announcement</a>.</li>
<li>Read the <a href="https://duckdb.org/2025/05/21/announcing-duckdb-130.html" target="_blank" rel="noopener noreferrer">DuckDB v1.3.0 announcement</a>.</li>
</ul>
<p><strong>Partitioned Acceleration</strong>: DuckDB file-based accelerations now support <code>partition_by</code> expressions, enabling queries to scale to large datasets through automatic data partitioning and query predicate pruning. New UDFs, <code>bucket</code> and <code>truncate</code>, simplify partition logic.</p>
<p>New UDFs useful for <code>partition_by</code> expressions:</p>
<ul>
<li><code>bucket(num_buckets, col)</code>: Partitions a column into a specified number of buckets based on a hash of the column value.</li>
<li><code>truncate(width, col)</code>: Truncates a column to a specified width, aligning values to the nearest lower multiple (e.g., <code>truncate(10, 101) = 100</code>).</li>
</ul>
<p>Example Spicepod.yml configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> s3</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">//my_bucket/some_large_table/</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_table</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">file_format</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> parquet</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">acceleration</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">engine</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> duckdb</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mode</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> file</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">partition_by</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> bucket(100</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> account_id) </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># Partition account_id into 100 buckets</span><br></span></code></pre></div></div>
<p><strong>Full-Text-Search (FTS) Index Refresh</strong>: Accelerated datasets with search indexes maintain up-to-date results with configurable refresh intervals.</p>
<p>Example refreshing search indexes on <code>body</code> every 10 seconds:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> github</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">github.com/spiceai/docs/pulls</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> spiceai.doc.pulls</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">github_token</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">GITHUB_TOKEN</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">acceleration</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">refresh_mode</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> full</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">refresh_check_interval</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> 10s</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">columns</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> body</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">full_text_search</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">          </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">          </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">row_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">            </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> id</span><br></span></code></pre></div></div>
<p><strong>Scheduled View Refresh</strong>: Accelerated Views now support cron-based refresh schedules using <code>refresh_cron</code>, automating updates for accelerated data.</p>
<p>Example Spicepod.yml configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">views</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_view</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">sql</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> SELECT 1</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">acceleration</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">refresh_cron</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'0 * * * *'</span><span class="token plain"> </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># Every hour</span><br></span></code></pre></div></div>
<p>For more details, refer to <a href="https://spiceai.org/docs/features/data-acceleration/data-refresh#refresh-schedules" target="_blank" rel="noopener noreferrer">Scheduled Refreshes</a>.</p>
<p><strong>Multi-column Vector Search</strong>: For datasets configured with embeddings on more than one column, <code>POST v1/search</code> and <code>similarity_search</code> perform parallel vector search on each column, aggregating results using reciprocal rank fusion.</p>
<p>Example Spicepod.yml for multi-column search:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> github</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">github.com/apache/datafusion/issues</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> datafusion.issues</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">github_token</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">GITHUB_TOKEN</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">columns</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> title</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">embeddings</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">          </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> hf_minilm</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> body</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">embeddings</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">          </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> openai_embeddings</span><br></span></code></pre></div></div>
<p><strong>AWS Bedrock Embeddings Model Provider</strong>: Added support for AWS Bedrock embedding models, including Amazon Titan Text Embeddings and Cohere Text Embeddings.</p>
<p>Example Spicepod.yml:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">embeddings</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> bedrock</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">cohere.embed</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">english</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">v3</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> cohere</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">embeddings</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">aws_region</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> us</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">east</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token number" style="color:hsl(35, 99%, 36%)">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">input_type</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> search_document</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">truncate</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> END</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> bedrock</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">amazon.titan</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">embed</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">text</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">v2</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token number" style="color:hsl(35, 99%, 36%)">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> titan</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">embeddings</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">aws_region</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> us</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">east</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token number" style="color:hsl(35, 99%, 36%)">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">dimensions</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'256'</span><br></span></code></pre></div></div>
<p>For more details, refer to the <a href="https://spiceai.org/docs/components/embeddings/bedrock" target="_blank" rel="noopener noreferrer">AWS Bedrock Embedding Models Documentation</a>.</p>
<p><strong>Oracle Data Connector</strong>: Use <code>from: oracle:</code> to access and accelerate data stored in Oracle databases, deployed on-premises or in the cloud.</p>
<p>Example Spicepod.yml:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> oracle</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">"SH"."PRODUCTS"</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> products</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">oracle_host</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> 127.0.0.1</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">oracle_username</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> scott</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">oracle_password</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> tiger</span><br></span></code></pre></div></div>
<p>See the <a href="https://spiceai.org/docs/components/data-connectors/oracle" target="_blank" rel="noopener noreferrer">Oracle Data Connector documentation</a>.</p>
<p><strong>GitHub Data Connector</strong>: The GitHub data connector supports query and acceleration of <code>members</code>, the users of an organization.</p>
<p>Example Spicepod.yml configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> github</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">github.com/spiceai/members </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># General format: github.com/[org-name]/members</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> spiceai.members</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># With GitHub Apps (recommended)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">github_client_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">GITHUB_SPICEHQ_CLIENT_ID</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">github_private_key</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">GITHUB_SPICEHQ_PRIVATE_KEY</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">github_installation_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">GITHUB_SPICEHQ_INSTALLATION_ID</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># With GitHub Tokens</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># github_token: ${secrets:GITHUB_TOKEN}</span><br></span></code></pre></div></div>
<p>See the <a href="https://spiceai.org/docs/components/data-connectors/github" target="_blank" rel="noopener noreferrer">GitHub Data Connector Documentation</a></p>
<p><strong>Spice.ai Cloud Data Connector</strong>: Graduated to <a href="https://github.com/spiceai/spiceai/blob/trunk/docs/criteria/connectors/stable.md" target="_blank" rel="noopener noreferrer">Stable</a>.</p>
<p><strong>spice-rs SDK Release:</strong> The <a href="https://github.com/spiceai/spice-rs/releases" target="_blank" rel="noopener noreferrer">Spice Rust SDK has updated to v3.0.0</a>. This release includes optimizations for the Spice client API, adds robust query retries, and custom metadata configurations for spice queries.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.5.0#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a></li>
<li><a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a></li>
<li><a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a></li>
<li><a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a></li>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a></li>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a></li>
<li><a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a></li>
<li><a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a></li>
<li><a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a></li>
<li><a href="https://github.com/suhuruli" target="_blank" rel="noopener noreferrer">@suhuruli</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.5.0#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<ul>
<li><strong>Search HTTP API Response</strong>: <code>POST v1/search</code> response payload has changed. See the new API <a href="https://spiceai.org/docs/api/HTTP/post-search" target="_blank" rel="noopener noreferrer">documentation</a> for details.</li>
<li><strong>Model Provider Parameter Prefixes</strong>: Model Provider parameters use provider-specific prefixes instead of <code>openai_</code> prefixes (e.g., <code>hf_temperature</code> for HuggingFace, <code>anthropic_max_completion_tokens</code> for Anthropic, <code>perplexity_tool_choice</code> for Perplexity). The <code>openai_</code> prefix remains supported for backward compatibility but is deprecated and will be removed in a future release.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.5.0#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<ul>
<li>Added Oracle <a href="https://github.com/spiceai/cookbook/tree/trunk/oracle" target="_blank" rel="noopener noreferrer">Data Connector</a> cookbook: Connect to tables in Oracle databases.</li>
<li>Added <a href="https://github.com/spiceai/cookbook/tree/trunk/hashed_partitioning" target="_blank" rel="noopener noreferrer">Hashed Partitioning with DuckDB</a> cookbook: Accelerate data on large datasets by partitioning data into a fixed number of buckets.</li>
</ul>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> now includes 72 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.5.0#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.5.0, download and install the specific binary from <a href="https://github.com/spiceai/spiceai/releases/tag/v1.5.0" target="_blank" rel="noopener noreferrer">github.com/spiceai/spiceai/releases/tag/v1.5.0</a> or pull the v1.5.0 Docker image (<code>spiceai/spiceai:1.5.0</code>).</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.5.0#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.5.0#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<ul>
<li><strong>delta_kernel</strong>: <a href="https://crates.io/crates/delta_kernel/0.12.1" target="_blank" rel="noopener noreferrer">Upgraded to v0.12.1</a></li>
<li><strong>DuckDB</strong>: <a href="https://github.com/duckdb/duckdb/releases/tag/v1.3.2" target="_blank" rel="noopener noreferrer">Upgraded from v1.1.3 to v1.3.2</a></li>
<li><strong>iceberg-rust</strong>: <a href="https://github.com/apache/iceberg-rust/releases/tag/v0.5.1" target="_blank" rel="noopener noreferrer">Upgraded from v0.4.0 to v0.5.1</a></li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.5.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<ul>
<li>fix: openai model endpoint (#6394) by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/6394" target="_blank" rel="noopener noreferrer">#6394</a></li>
<li>Enable configuring otel endpoint from <code>spice run</code> (#6360) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6360" target="_blank" rel="noopener noreferrer">#6360</a></li>
<li>Enable Oracle connector in default build configuration (#6395) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6395" target="_blank" rel="noopener noreferrer">#6395</a></li>
<li>fix llm integraion test (#6398) by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/6398" target="_blank" rel="noopener noreferrer">#6398</a></li>
<li>Promote spice cloud connector to stable quality (#6221) by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/6221" target="_blank" rel="noopener noreferrer">#6221</a></li>
<li>v1.5.0-rc.1 release notes (#6397) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6397" target="_blank" rel="noopener noreferrer">#6397</a></li>
<li>Fix model nsql integration tests (#6365) by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/6365" target="_blank" rel="noopener noreferrer">#6365</a></li>
<li>Fix incorrect UDTF name and SQL query (#6404) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6404" target="_blank" rel="noopener noreferrer">#6404</a></li>
<li>Update v1.5.0-rc.1.md (#6407) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6407" target="_blank" rel="noopener noreferrer">#6407</a></li>
<li>Improve error messages (#6405) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6405" target="_blank" rel="noopener noreferrer">#6405</a></li>
<li>build(deps): bump Jimver/cuda-toolkit from 0.2.25 to 0.2.26 (#6388) by <a href="https://github.com/app/dependabot" target="_blank" rel="noopener noreferrer">@app/dependabot</a> in <a href="https://github.com/spiceai/spiceai/pull/6388" target="_blank" rel="noopener noreferrer">#6388</a></li>
<li>Upgrade dependabot dependencies (#6411) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6411" target="_blank" rel="noopener noreferrer">#6411</a></li>
<li>Fix projection pushdown issues for document based file connector (#6362) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6362" target="_blank" rel="noopener noreferrer">#6362</a></li>
<li>Add a PartitionedDuckDB Accelerator (#6338) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6338" target="_blank" rel="noopener noreferrer">#6338</a></li>
<li>Use <code>vector_search()</code> UDTF in HTTP APIs (#6417) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6417" target="_blank" rel="noopener noreferrer">#6417</a></li>
<li>add supported types (#6409) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6409" target="_blank" rel="noopener noreferrer">#6409</a></li>
<li>Enable session time zone override for MySQL (#6426) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6426" target="_blank" rel="noopener noreferrer">#6426</a></li>
<li>Acceleration-like indexing for full text search indexes.  (#6382) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6382" target="_blank" rel="noopener noreferrer">#6382</a></li>
<li>Provide error message when partition by expression changes (#6415) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6415" target="_blank" rel="noopener noreferrer">#6415</a></li>
<li>Add support for Oracle Autonomous Database connections (Oracle Cloud) (#6421) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6421" target="_blank" rel="noopener noreferrer">#6421</a></li>
<li>prune partitions for exact and in list with and without UDFs (#6423) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6423" target="_blank" rel="noopener noreferrer">#6423</a></li>
<li>Fixes and reenable FTS tests (#6431) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6431" target="_blank" rel="noopener noreferrer">#6431</a></li>
<li>Upgrade DuckDB to 1.3.2 (#6434) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6434" target="_blank" rel="noopener noreferrer">#6434</a></li>
<li>Fix issue in limit clause for the Github Data connector (#6443) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6443" target="_blank" rel="noopener noreferrer">#6443</a></li>
<li>Upgrade iceberg-rust to 0.5.1 (#6446) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6446" target="_blank" rel="noopener noreferrer">#6446</a></li>
<li>v1.5.0-rc.2 release notes (#6440) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6440" target="_blank" rel="noopener noreferrer">#6440</a></li>
<li>Oracle: add automated TPC-H  SF1 benchmark tests (#6449) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6449" target="_blank" rel="noopener noreferrer">#6449</a></li>
<li>fix: Update benchmark snapshots (#6455) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6455" target="_blank" rel="noopener noreferrer">#6455</a></li>
<li>Preserve ArrowError in arrow_tools::record_batch (#6454) by <a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a> in <a href="https://github.com/spiceai/spiceai/pull/6454" target="_blank" rel="noopener noreferrer">#6454</a></li>
<li>fix: Update benchmark snapshots (#6465) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6465" target="_blank" rel="noopener noreferrer">#6465</a></li>
<li>Add option to preinstall Oracle ODPI-C library in Docker image (#6466) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6466" target="_blank" rel="noopener noreferrer">#6466</a></li>
<li>Include Oracle connector (federated mode) in automated benchmarks (#6467) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6467" target="_blank" rel="noopener noreferrer">#6467</a></li>
<li>Update crates/llms/src/bedrock/embed/mod.rs by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6468" target="_blank" rel="noopener noreferrer">#6468</a></li>
<li>v1.5.0-rc.3 release notes (#6474) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6474" target="_blank" rel="noopener noreferrer">#6474</a></li>
<li>Add integration tests for S3 Vectors filters pushdown (#6469) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6469" target="_blank" rel="noopener noreferrer">#6469</a></li>
<li>check for indexedtableprovider when finding tables to search on (#6478) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6478" target="_blank" rel="noopener noreferrer">#6478</a></li>
<li>Parse fully qualified table names in UDTFs (#6461) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6461" target="_blank" rel="noopener noreferrer">#6461</a></li>
<li>Add integration test for S3 Vectors to cover data update (overwrite) (#6480) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6480" target="_blank" rel="noopener noreferrer">#6480</a></li>
<li>Add 'Run all tests' option for models tests and enable Bedrock tests (#6481) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6481" target="_blank" rel="noopener noreferrer">#6481</a></li>
<li>Add support for a <code>members</code> table type for the GitHub Data Connector (#6464) by <a href="https://github.com/Advayp" target="_blank" rel="noopener noreferrer">@Advayp</a> in <a href="https://github.com/spiceai/spiceai/pull/6464" target="_blank" rel="noopener noreferrer">#6464</a></li>
<li>S3 vector data cannot be null (#6483) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6483" target="_blank" rel="noopener noreferrer">#6483</a></li>
<li>Don't infer <code>FixedSizeList</code> size during indexing vectors. (#6487) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6487" target="_blank" rel="noopener noreferrer">#6487</a></li>
<li>Add support for <code>retention_sql</code> acceleration param (#6488) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6488" target="_blank" rel="noopener noreferrer">#6488</a></li>
<li>Make dataset refresh progress tracing less verbose (#6489) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6489" target="_blank" rel="noopener noreferrer">#6489</a></li>
<li>Use <code>RwLock</code> on tantivy index in <code>FullTextDatabaseIndex</code> for update concurrency (#6490) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6490" target="_blank" rel="noopener noreferrer">#6490</a></li>
<li>Add tests for dataset retention logic and refactor retention code (#6495) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6495" target="_blank" rel="noopener noreferrer">#6495</a></li>
<li>Upgade dependabot dependencies (#6497) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6497" target="_blank" rel="noopener noreferrer">#6497</a></li>
<li>Add periodic tracing of data loading progress during dataset refresh (#6499) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6499" target="_blank" rel="noopener noreferrer">#6499</a></li>
<li>Promote Oracle Data Connector to Alpha (#6503) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6503" target="_blank" rel="noopener noreferrer">#6503</a></li>
<li>Use AWS SDK to provide credentials for Iceberg connectors (#6498) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6498" target="_blank" rel="noopener noreferrer">#6498</a></li>
<li>Add integration tests for partitioning (#6463) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6463" target="_blank" rel="noopener noreferrer">#6463</a></li>
<li>Use top-level table in full-text search <code>JOIN ON</code> (#6491) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6491" target="_blank" rel="noopener noreferrer">#6491</a></li>
<li>Use accelerated table in vector_search JOIN operations when appropriate (#6516) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6516" target="_blank" rel="noopener noreferrer">#6516</a></li>
<li>Fix 'additional_column' for quoted columns (fix for qualified columns broke it) (#6512) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6512" target="_blank" rel="noopener noreferrer">#6512</a></li>
<li>Also use AWS SDK for inferring credentials for S3/Delta/Databricks Delta data connectors (#6504) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6504" target="_blank" rel="noopener noreferrer">#6504</a></li>
<li>Add per-dataset availability monitor configuration (#6482) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6482" target="_blank" rel="noopener noreferrer">#6482</a></li>
<li>Suppress the warning from the AWS SDK if it can't load credentials (#6533) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6533" target="_blank" rel="noopener noreferrer">#6533</a></li>
<li>Change default value of check_availability from default to auto (#6534) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6534" target="_blank" rel="noopener noreferrer">#6534</a></li>
<li>README.md improvements for v1.5.0 (#6539) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/6539" target="_blank" rel="noopener noreferrer">#6539</a></li>
<li>Temporary disable <code>s3_vectors_basic</code> (#6537) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6537" target="_blank" rel="noopener noreferrer">#6537</a></li>
<li>Ensure binder errors show before query and other (#6374) by <a href="https://github.com/suhuruli" target="_blank" rel="noopener noreferrer">@suhuruli</a> in <a href="https://github.com/spiceai/spiceai/pull/6374" target="_blank" rel="noopener noreferrer">#6374</a></li>
<li>Update spiceai/duckdb-rs -&gt; DuckDB 1.3.2 + index fix (#6496) by <a href="https://github.com/mach-kernel" target="_blank" rel="noopener noreferrer">@mach-kernel</a> in <a href="https://github.com/spiceai/spiceai/pull/6496" target="_blank" rel="noopener noreferrer">#6496</a></li>
<li>Update table-providers to latest version with DuckDB fixes (#6535) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6535" target="_blank" rel="noopener noreferrer">#6535</a></li>
<li>S3: default to public access if no auth is provided (#6532) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6532" target="_blank" rel="noopener noreferrer">#6532</a></li>
</ul>]]></content>
        <author>
            <name>Evgenii Khramkov</name>
            <uri>https://github.com/ewgenius</uri>
        </author>
        <category label="release" term="release"/>
        <category label="aws" term="aws"/>
        <category label="s3" term="s3"/>
        <category label="vectors" term="vectors"/>
        <category label="amazon s3 vectors" term="amazon s3 vectors"/>
        <category label="sql" term="sql"/>
        <category label="duckdb" term="duckdb"/>
        <category label="oracle" term="oracle"/>
        <category label="github" term="github"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.4.0 (June 18, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.4.0</id>
        <link href="https://spiceai.org/blog/releases/v1.4.0"/>
        <updated>2025-06-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.4.0! ⚡]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.4.0! ⚡</p>
<p>This release upgrades DataFusion to v47 and Arrow to v55 for faster queries, more efficient Parquet/CSV handling, and improved reliability. It introduces the AWS Glue Catalog and Data Connectors for native access to Glue-managed data on S3, and adds support for Databricks U2M OAuth for secure Databricks user authentication.</p>
<p>New Cron-based dataset refreshes and worker schedules enable automated task management, while dataset and search results caching improvements further optimizes query, search, and RAG performance.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-new-in-v140">What's New in v1.4.0<a href="https://spiceai.org/blog/releases/v1.4.0#whats-new-in-v140" class="hash-link" aria-label="Direct link to What's New in v1.4.0" title="Direct link to What's New in v1.4.0">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="datafusion-v47-highlights">DataFusion v47 Highlights<a href="https://spiceai.org/blog/releases/v1.4.0#datafusion-v47-highlights" class="hash-link" aria-label="Direct link to DataFusion v47 Highlights" title="Direct link to DataFusion v47 Highlights">​</a></h3>
<p>Spice.ai is built on the DataFusion query engine. The v47 release brings:</p>
<p><strong>Performance Improvements 🚀</strong>: This release delivers major query speedups through specialized <code>GroupsAccumulator</code> implementations for <code>first_value</code>, <code>last_value</code>, and min/max on Duration types, eliminating unnecessary sorting and computation. TopK operations are now up to 10x faster thanks to early exit optimizations, while sort performance is further enhanced by reusing row converters, removing redundant clones, and optimizing sort-preserving merge streams. Logical operations benefit from short-circuit evaluation for AND/OR, reducing overhead, and additional enhancements address high latency from sequential metadata fetching, improve int/string comparison efficiency, and simplify logical expressions for better execution.</p>
<p><strong>Bug Fixes &amp; Compatibility Improvements 🛠️</strong>: The release addresses issues with external sort, aggregation, and window functions, improves handling of NULL values and type casting in arrays and binary operations, and corrects problems with complex joins and nested window expressions. It also addresses SQL unparsing for subqueries, aliases, and <code>UNION BY NAME</code>.</p>
<p>See the <a href="https://github.com/apache/datafusion/blob/main/dev/changelog/47.0.0.md" target="_blank" rel="noopener noreferrer">Apache DataFusion 47.0.0 Changelog</a> for details.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="arrow-v55-highlights">Arrow v55 Highlights<a href="https://spiceai.org/blog/releases/v1.4.0#arrow-v55-highlights" class="hash-link" aria-label="Direct link to Arrow v55 Highlights" title="Direct link to Arrow v55 Highlights">​</a></h3>
<p>Arrow v55 delivers faster Parquet gzip compression, improved array concatenation, and better support for large files (4GB+) and modular encryption. Parquet metadata reads are now more efficient, with support for range requests and enhanced compatibility for INT96 timestamps and timezones. CSV parsing is more robust, with clearer error messages. These updates boost performance, compatibility, and reliability.</p>
<p>See the <a href="https://github.com/apache/arrow-rs/blob/55.0.0/CHANGELOG.md" target="_blank" rel="noopener noreferrer">Arrow 55.0.0 Changelog</a> and <a href="https://github.com/apache/arrow-rs/blob/55.1.0/CHANGELOG.md" target="_blank" rel="noopener noreferrer">Arrow 55.1.0 Changelog</a> for details.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="runtime-highlights">Runtime Highlights<a href="https://spiceai.org/blog/releases/v1.4.0#runtime-highlights" class="hash-link" aria-label="Direct link to Runtime Highlights" title="Direct link to Runtime Highlights">​</a></h3>
<p><strong>Search Result Caching:</strong> Spice now supports runtime caching for search results, improving performance for subsequent searches and chat completion requests that use the <code>document_similarity</code> LLM tool. Caching is configurable with options like maximum size, item TTL, eviction policy, and hashing algorithm.</p>
<p>Example <code>spicepod.yml</code> configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">runtime</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">caching</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">search_results</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">max_size</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> 128mb</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">item_ttl</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> 5s</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">eviction_policy</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> lru</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">hashing_algorithm</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> siphash</span><br></span></code></pre></div></div>
<p>For more information, refer to the <a href="https://spiceai.org/docs/features/caching" target="_blank" rel="noopener noreferrer">Caching documentation</a>.</p>
<p><strong>AWS Glue Catalog Connector Alpha</strong>: Connect to AWS Glue Data Catalogs to query Iceberg, Parquet, or CSV tables in S3.</p>
<p>Example <code>spicepod.yml</code> configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">catalogs</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> glue</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_glue_catalog</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">glue_key</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> &lt;your</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">access</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">key</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">glue_secret</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> &lt;your</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">secret</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">access</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">key</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">glue_region</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> &lt;your</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">region</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">include</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'testdb.hive_*'</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'testdb.iceberg_*'</span><br></span></code></pre></div></div>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">sql</span><span class="token operator" style="color:hsl(221, 87%, 60%)">&gt;</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">show</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">tables</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">+</span><span class="token comment" style="color:hsl(230, 4%, 64%)">-----------------+--------------+-------------------+------------+</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> table_catalog   </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> table_schema </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> table_name        </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> table_type </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">+</span><span class="token comment" style="color:hsl(230, 4%, 64%)">-----------------+--------------+-------------------+------------+</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> my_glue_catalog </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> testdb       </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> hive_table_001    </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> BASE </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">TABLE</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> my_glue_catalog </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> testdb       </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> iceberg_table_001 </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> BASE </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">TABLE</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> spice           </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> runtime      </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> task_history      </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> BASE </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">TABLE</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token operator" style="color:hsl(221, 87%, 60%)">+</span><span class="token comment" style="color:hsl(230, 4%, 64%)">-----------------+--------------+-------------------+------------+</span><br></span></code></pre></div></div>
<p>For more information, refer to the <a href="https://spiceai.org/docs/components/catalogs/glue" target="_blank" rel="noopener noreferrer">Glue Catalog Connector documentation</a>.</p>
<p><strong>AWS Glue Data Connector Alpha</strong>: Connect to specific tables in AWS Glue Data Catalogs to query Iceberg, Parquet, or CSV in S3.</p>
<p>Example <code>spicepod.yml</code> configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> glue</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">my_database.my_table</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_table</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">glue_auth</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> key</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">glue_region</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> us</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">east</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token number" style="color:hsl(35, 99%, 36%)">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">glue_key</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">AWS_ACCESS_KEY_ID</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">glue_secret</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">AWS_SECRET_ACCESS_KEY</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><br></span></code></pre></div></div>
<p>For more information, refer to the <a href="https://spiceai.org/docs/components/data-connectors/glue" target="_blank" rel="noopener noreferrer">Glue Data Connector documentation</a>.</p>
<p><strong>Databricks U2M OAuth</strong>: Spice now supports User-to-Machine (U2M) authentication for Databricks when called with a compatible client, such as the <a href="https://spice.ai/" target="_blank" rel="noopener noreferrer">Spice Cloud Platform</a>.</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> databricks</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">spiceai_sandbox.default.messages</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> messages</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_endpoint</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">DATABRICKS_ENDPOINT</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_cluster_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">DATABRICKS_CLUSTER_ID</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_client_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">DATABRICKS_CLIENT_ID</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><br></span></code></pre></div></div>
<p><strong>Dataset Refresh Schedules:</strong> Accelerated datasets now support a <code>refresh_cron</code> parameter, automatically refreshing the dataset on a defined cron schedule. Cron scheduled refreshes respect the global <code>dataset_refresh_parallelism</code> parameter.</p>
<p>Example <code>spicepod.yml</code> configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_dataset</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> s3</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">//my</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">bucket/my_file.parquet</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">acceleration</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">refresh_cron</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> 0 0 * * * </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># Daily refresh at midnight</span><br></span></code></pre></div></div>
<p>For more information, refer to the <a href="https://spiceai.org/docs/features/data-acceleration/data-refresh#refresh-schedules" target="_blank" rel="noopener noreferrer">Dataset Refresh Schedules documentation</a>.</p>
<p><strong>Worker Execution Schedules:</strong> Workers now support a <code>cron</code> parameter and will execute an LLM-prompt or SQL query automatically on the defined cron schedule, in conjunction with a provided <code>params.prompt</code>.</p>
<p>Example <code>spicepod.yml</code> configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">workers</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> email_reporter</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">models</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> gpt</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">4o</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">prompt</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'Inspect the latest emails, and generate a summary report for them. Post the summary report to the connected Teams channel'</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">cron</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> 0 2 * * * </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># Daily at 2am</span><br></span></code></pre></div></div>
<p>For more information, refer to the <a href="https://spiceai.org/docs/reference/spicepod/workers#cron" target="_blank" rel="noopener noreferrer">Worker Execution Schedules documentation</a>.</p>
<p><strong>SQL Worker Actions:</strong> Spice now supports workers with <code>sql</code> actions for automated SQL query execution on a cron schedule:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">workers</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_worker</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">cron</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> 0 * * * *</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">sql</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'SELECT * FROM lineitem'</span><br></span></code></pre></div></div>
<p>For more information, refer to the <a href="https://spiceai.org/docs/reference/spicepod/workers#worker-with-a-sql-action-that-automatically-executes-on-a-schedule" target="_blank" rel="noopener noreferrer">Workers with a SQL action documentation</a>;</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.4.0#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a></li>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a></li>
<li><a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a></li>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a></li>
<li><a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a></li>
<li><a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a></li>
<li><a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.4.0#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<ul>
<li>No breaking changes.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.4.0#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<ul>
<li>Added Glue <a href="https://github.com/spiceai/cookbook/tree/trunk/catalogs/glue" target="_blank" rel="noopener noreferrer">Catalog Connector</a> and <a href="https://github.com/spiceai/cookbook/tree/trunk/glue" target="_blank" rel="noopener noreferrer">Data Connector</a> cookbooks: Connect to tables and databases in the AWS Glue Data catalog.</li>
<li>Added <a href="https://github.com/spiceai/cookbook/tree/trunk/acceleration/cron" target="_blank" rel="noopener noreferrer">Cron-based Dataset Refresh</a>: Refresh datasets on defined schedules.</li>
</ul>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> now includes 70 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.4.0#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.4.0, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.4.0</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.4.0</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.4.0#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.4.0#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<ul>
<li><strong>DataFusion</strong>: <a href="https://github.com/apache/datafusion/releases/tag/47.0.0" target="_blank" rel="noopener noreferrer">Upgraded to v47</a></li>
<li><strong>arrow-rs</strong>: <a href="https://github.com/apache/arrow-rs/releases/tag/55.1.0" target="_blank" rel="noopener noreferrer">Upgraded to v55.1.0</a></li>
<li><strong>delta_kernel</strong>: <a href="https://crates.io/crates/delta_kernel/0.11.0" target="_blank" rel="noopener noreferrer">Upgraded to v0.11.0</a></li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.4.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<ul>
<li>Update trunk to 1.4.0-unstable (#5878) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5878" target="_blank" rel="noopener noreferrer">#5878</a></li>
<li>Update openapi.json (#5885) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/5885" target="_blank" rel="noopener noreferrer">#5885</a></li>
<li>feat: Testoperator reports benchmark failure summary (#5889) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5889" target="_blank" rel="noopener noreferrer">#5889</a></li>
<li>fix: Publish binaries to dev when platform option is all (#5905) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5905" target="_blank" rel="noopener noreferrer">#5905</a></li>
<li>feat: Print dispatch current test count of total (#5906) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5906" target="_blank" rel="noopener noreferrer">#5906</a></li>
<li>Include multiple duckdb files acceleration scenarios into testoperator dispatch (#5913) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5913" target="_blank" rel="noopener noreferrer">#5913</a></li>
<li>feat: Support building testoperator on dev (#5915) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5915" target="_blank" rel="noopener noreferrer">#5915</a></li>
<li>Update spicepod.schema.json (#5927) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/5927" target="_blank" rel="noopener noreferrer">#5927</a></li>
<li>Update ROADMAP &amp; SECURITY for 1.3.0 (#5926) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5926" target="_blank" rel="noopener noreferrer">#5926</a></li>
<li>docs: Update qa_analytics.csv (#5928) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5928" target="_blank" rel="noopener noreferrer">#5928</a></li>
<li>fix: Properly publish binaries to dev on push (#5931) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5931" target="_blank" rel="noopener noreferrer">#5931</a></li>
<li>Load request context extensions on every flight incoming call (#5916) by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5916" target="_blank" rel="noopener noreferrer">#5916</a></li>
<li>Fix deferred loading for datasets with embeddings (#5932) by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5932" target="_blank" rel="noopener noreferrer">#5932</a></li>
<li>Schedule AI benchmarks to run every Mon and Thu evening PST (#5940) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5940" target="_blank" rel="noopener noreferrer">#5940</a></li>
<li>Fix explain plan snapshots for TPCDS queries Q36, Q70 &amp; Q86 not being deterministic after DF 46 upgrade (#5942) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5942" target="_blank" rel="noopener noreferrer">#5942</a></li>
<li>chore: Upgrade to Rust 1.86 (#5945) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5945" target="_blank" rel="noopener noreferrer">#5945</a></li>
<li>Standardise HTTP settings across CLI (#5769) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/5769" target="_blank" rel="noopener noreferrer">#5769</a></li>
<li>Fix deferred flag for Databricks SQL warehouse mode (#5958) by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5958" target="_blank" rel="noopener noreferrer">#5958</a></li>
<li>Add deferred catalog loading (#5950) by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5950" target="_blank" rel="noopener noreferrer">#5950</a></li>
<li>Refactor deferred_load using ComponentInitialization enum for better clarity (#5961) by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5961" target="_blank" rel="noopener noreferrer">#5961</a></li>
<li>Post-release housekeeping (#5964) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5964" target="_blank" rel="noopener noreferrer">#5964</a></li>
<li>add LTO for release builds (#5709) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/5709" target="_blank" rel="noopener noreferrer">#5709</a></li>
<li>Fix dependabot/192 (#5976) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/5976" target="_blank" rel="noopener noreferrer">#5976</a></li>
<li>Fix Test-to-SQL benchmark scheduled run (#5977) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5977" target="_blank" rel="noopener noreferrer">#5977</a></li>
<li>Fix JSON to ScalarValue type conversion to match DataFusion behavior (#5979) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5979" target="_blank" rel="noopener noreferrer">#5979</a></li>
<li>Add v1.3.1 release notes (#5978) by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/5978" target="_blank" rel="noopener noreferrer">#5978</a></li>
<li>Regenerate nightly build workflow (#5995) by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5995" target="_blank" rel="noopener noreferrer">#5995</a></li>
<li>Fix DataFusion dependency loading in Databricks request context extension (#5987) by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5987" target="_blank" rel="noopener noreferrer">#5987</a></li>
<li>Update spicepod.schema.json (#6000) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6000" target="_blank" rel="noopener noreferrer">#6000</a></li>
<li>feat: Run MySQL SF100 on dev runners (#5986) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5986" target="_blank" rel="noopener noreferrer">#5986</a></li>
<li>fix: Remove caching RwLock (#6001) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6001" target="_blank" rel="noopener noreferrer">#6001</a></li>
<li>1.3.1 Post-release housekeeping (#6002) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6002" target="_blank" rel="noopener noreferrer">#6002</a></li>
<li>feat: Add initial scheduler crate (#5923) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5923" target="_blank" rel="noopener noreferrer">#5923</a></li>
<li>fix flight request context scope (#6004) by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/6004" target="_blank" rel="noopener noreferrer">#6004</a></li>
<li>fix: Ensure snapshots on different scale factors are retained (#6009) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6009" target="_blank" rel="noopener noreferrer">#6009</a></li>
<li>fix: Allow dev runners in dispatch files (#6011) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6011" target="_blank" rel="noopener noreferrer">#6011</a></li>
<li>refactor: Deprecate results_cache for caching.sql_results (#6008) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6008" target="_blank" rel="noopener noreferrer">#6008</a></li>
<li>Fix models benchmark results reporting (#6013) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6013" target="_blank" rel="noopener noreferrer">#6013</a></li>
<li>fix: Run PR checks for tools/ changes (#6014) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6014" target="_blank" rel="noopener noreferrer">#6014</a></li>
<li>feat: Add a CronRequestChannel for <code>scheduler</code> (#6005) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6005" target="_blank" rel="noopener noreferrer">#6005</a></li>
<li>feat: Add refresh_cron acceleration parameter, start scheduler on table load (#6016) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6016" target="_blank" rel="noopener noreferrer">#6016</a></li>
<li>Update license check to allow dual license crates (#6021) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6021" target="_blank" rel="noopener noreferrer">#6021</a></li>
<li>Initial worker concept (#5973) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/5973" target="_blank" rel="noopener noreferrer">#5973</a></li>
<li>Don't fail if cargo-deny already installed (license check) (#6023) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6023" target="_blank" rel="noopener noreferrer">#6023</a></li>
<li>Upgrade to DataFusion 47 and Arrow 55 (#5966) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5966" target="_blank" rel="noopener noreferrer">#5966</a></li>
<li>Read Iceberg tables from Glue Catalog Connector (#5965) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/5965" target="_blank" rel="noopener noreferrer">#5965</a></li>
<li>Handle multiple highlights in v1/search UX (#5963) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/5963" target="_blank" rel="noopener noreferrer">#5963</a></li>
<li>feat: Add cron scheduler configurations for workers (#6033) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6033" target="_blank" rel="noopener noreferrer">#6033</a></li>
<li>feat: Add search cache configuration and results wrapper (#6020) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6020" target="_blank" rel="noopener noreferrer">#6020</a></li>
<li>Fix GitHub Actions Ubuntu for more workflows (#6040) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6040" target="_blank" rel="noopener noreferrer">#6040</a></li>
<li>Fix Actions for testoperator dispatch manual (#6042) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6042" target="_blank" rel="noopener noreferrer">#6042</a></li>
<li>refactor: Remove worker type (#6039) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6039" target="_blank" rel="noopener noreferrer">#6039</a></li>
<li>feat: Support cron dataset refreshes (#6037) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6037" target="_blank" rel="noopener noreferrer">#6037</a></li>
<li>Upgrade datafusion-federation to 0.4.2 (#6022) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6022" target="_blank" rel="noopener noreferrer">#6022</a></li>
<li>Define SearchPipeline and use in <code>runtime/vector_search.rs</code>. (#6044) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6044" target="_blank" rel="noopener noreferrer">#6044</a></li>
<li>fix: Scheduler test when scheduler is running (#6051) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6051" target="_blank" rel="noopener noreferrer">#6051</a></li>
<li>doc: Spice Cloud Connector Limitation (#6035) by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/6035" target="_blank" rel="noopener noreferrer">#6035</a></li>
<li>Add support for on_conflict<!-- -->:upsert<!-- --> for Arrow MemTable (#6059) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6059" target="_blank" rel="noopener noreferrer">#6059</a></li>
<li>Enhance Arrow Flight DoPut operation tracing (#6053) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6053" target="_blank" rel="noopener noreferrer">#6053</a></li>
<li>Update openapi.json (#6032) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6032" target="_blank" rel="noopener noreferrer">#6032</a></li>
<li>Add tools enabled to MCP server capabilities (#6060) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6060" target="_blank" rel="noopener noreferrer">#6060</a></li>
<li>Upgrade to delta_kernel 0.11 (#6045) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6045" target="_blank" rel="noopener noreferrer">#6045</a></li>
<li>refactor: Replace refresh oneshot with notify (#6050) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6050" target="_blank" rel="noopener noreferrer">#6050</a></li>
<li>Enable Upsert OnConflictBehavior for runtime.task_history table (#6068) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6068" target="_blank" rel="noopener noreferrer">#6068</a></li>
<li>feat: Add a workers integration test (#6069) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6069" target="_blank" rel="noopener noreferrer">#6069</a></li>
<li>Fix DuckDB acceleration <code>ORDER BY rand()</code> and <code>ORDER BY NULL</code> (#6071) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6071" target="_blank" rel="noopener noreferrer">#6071</a></li>
<li>Update Models Benchmarks to report unsuccessful evals as errors (#6070) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6070" target="_blank" rel="noopener noreferrer">#6070</a></li>
<li>Revert: fix: Use HTTPS ubuntu sources (#6082) by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/6082" target="_blank" rel="noopener noreferrer">#6082</a></li>
<li>Add initial support for Spice Cloud Platform management (#6089) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6089" target="_blank" rel="noopener noreferrer">#6089</a></li>
<li>Run spiceai cloud connector TPC tests using spice dev apps (#6049) by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/6049" target="_blank" rel="noopener noreferrer">#6049</a></li>
<li>feat: Add SQL worker action (#6093) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6093" target="_blank" rel="noopener noreferrer">#6093</a></li>
<li>Post-release housekeeping (#6097) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6097" target="_blank" rel="noopener noreferrer">#6097</a></li>
<li>Fix search bench (#6091) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6091" target="_blank" rel="noopener noreferrer">#6091</a></li>
<li>fix: Update benchmark snapshots (#6094) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6094" target="_blank" rel="noopener noreferrer">#6094</a></li>
<li>fix: Update benchmark snapshots (#6095) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6095" target="_blank" rel="noopener noreferrer">#6095</a></li>
<li>Glue catalog connector for hive style parquet (#6054) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6054" target="_blank" rel="noopener noreferrer">#6054</a></li>
<li>Update openapi.json (#6100) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6100" target="_blank" rel="noopener noreferrer">#6100</a></li>
<li>Improve Flight Client DoPut / Publish error handling (#6105) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6105" target="_blank" rel="noopener noreferrer">#6105</a></li>
<li>Define <code>PostApplyCandidateGeneration</code> to handle all filters &amp; projections. (#6096) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6096" target="_blank" rel="noopener noreferrer">#6096</a></li>
<li>refactor: Update the tracing task names for scheduled tasks (#6101) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6101" target="_blank" rel="noopener noreferrer">#6101</a></li>
<li>task: Switch GH runners in PR and testoperator (#6052) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6052" target="_blank" rel="noopener noreferrer">#6052</a></li>
<li>feat: Connect search caching for HTTP and tools (#6108) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6108" target="_blank" rel="noopener noreferrer">#6108</a></li>
<li>test: Add multi-dataset cron test (#6102) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6102" target="_blank" rel="noopener noreferrer">#6102</a></li>
<li>Sanitize the ListingTableURL (#6110) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6110" target="_blank" rel="noopener noreferrer">#6110</a></li>
<li>Avoid partial writes by FlightTableWriter (#6104) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6104" target="_blank" rel="noopener noreferrer">#6104</a></li>
<li>fix: Update the TPCDS postgres acceleration indexes (#6111) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6111" target="_blank" rel="noopener noreferrer">#6111</a></li>
<li>Make Glue Catalog refreshable (#6103) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6103" target="_blank" rel="noopener noreferrer">#6103</a></li>
<li>Refactor Glue catalog to use a new Glue data connector (#6125) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6125" target="_blank" rel="noopener noreferrer">#6125</a></li>
<li>Emit retry error on flight transient connection failure (#6123) by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/6123" target="_blank" rel="noopener noreferrer">#6123</a></li>
<li>Update Flight DoPut implementation to send single final PutResult (#6124) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6124" target="_blank" rel="noopener noreferrer">#6124</a></li>
<li>feat: Add metrics for search results cache (#6129) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6129" target="_blank" rel="noopener noreferrer">#6129</a></li>
<li>update MCP crate (#6130) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6130" target="_blank" rel="noopener noreferrer">#6130</a></li>
<li>feat: Add search cache status header, respect cache control (#6131) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6131" target="_blank" rel="noopener noreferrer">#6131</a></li>
<li>fix: Allow specifying individual caching blocks (#6133) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6133" target="_blank" rel="noopener noreferrer">#6133</a></li>
<li>Update openapi.json (#6132) by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/6132" target="_blank" rel="noopener noreferrer">#6132</a></li>
<li>Add CSV support to Glue data connector (#6138) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6138" target="_blank" rel="noopener noreferrer">#6138</a></li>
<li>Update Spice Cloud Platform management UX (#6140) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6140" target="_blank" rel="noopener noreferrer">#6140</a></li>
<li>Add TPCH bench for Glue catalog (#6055) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6055" target="_blank" rel="noopener noreferrer">#6055</a></li>
<li>Enforce max_tokens_per_request limit in OpenAI embedding logic (#6144) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6144" target="_blank" rel="noopener noreferrer">#6144</a></li>
<li>Enable Spice Cloud Control Plane connect (management) for FinanceBench (#6147) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6147" target="_blank" rel="noopener noreferrer">#6147</a></li>
<li>Add integration test for Spice Cloud Platform management (#6150) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6150" target="_blank" rel="noopener noreferrer">#6150</a></li>
<li>fix: Invalidate search cache on refresh (#6137) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6137" target="_blank" rel="noopener noreferrer">#6137</a></li>
<li>fix: Prevent registering cron schedule with change stream accelerations (#6152) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6152" target="_blank" rel="noopener noreferrer">#6152</a></li>
<li>test: Add an append cron integration test (#6151) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6151" target="_blank" rel="noopener noreferrer">#6151</a></li>
<li>fix: Cache search results with no-cache directive (#6155) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6155" target="_blank" rel="noopener noreferrer">#6155</a></li>
<li>fix: Glue catalog dispatch runner type (#6157) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6157" target="_blank" rel="noopener noreferrer">#6157</a></li>
<li>Fix: Glue S3 location for directories and Iceberg credentials (#6174) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6174" target="_blank" rel="noopener noreferrer">#6174</a></li>
<li>Support multiple columns in FTS (#6156) by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/6156" target="_blank" rel="noopener noreferrer">#6156</a></li>
<li>fix: Add --cache-control flag for search CLI (#6158) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6158" target="_blank" rel="noopener noreferrer">#6158</a></li>
<li>Add Glue data connector tpch bench test for parquet and csv (#6170) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6170" target="_blank" rel="noopener noreferrer">#6170</a></li>
<li>fix: Apply results cache deprecation correctly (#6177) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6177" target="_blank" rel="noopener noreferrer">#6177</a></li>
<li>Fix regression in Parquet pushdown (#6178) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6178" target="_blank" rel="noopener noreferrer">#6178</a></li>
<li>Fix CUDA build (use candle-core 0.8.4 and cudarc v0.12) (#6181) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6181" target="_blank" rel="noopener noreferrer">#6181</a></li>
<li>return empty stream if no external_links present (#6192) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6192" target="_blank" rel="noopener noreferrer">#6192</a></li>
<li>Use arrow pretty print util instead of init dataframe / logical plan in <code>display_records</code> (#6191) by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/6191" target="_blank" rel="noopener noreferrer">#6191</a></li>
<li>task: Enable additional TPCDS test scenarios in dispatcher (#6160) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6160" target="_blank" rel="noopener noreferrer">#6160</a></li>
<li>chore: Update dependencies (#6196) by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/6196" target="_blank" rel="noopener noreferrer">#6196</a></li>
<li>Fix FlightSQL GetDbSchemas and GetTables schemas to fully match the protocol (#6197) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/6197" target="_blank" rel="noopener noreferrer">#6197</a></li>
<li>Use spice-rs in test operator and retry on connection reset error (#6136) by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/6136" target="_blank" rel="noopener noreferrer">#6136</a></li>
<li>Fix load status metric description (#6219) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6219" target="_blank" rel="noopener noreferrer">#6219</a></li>
<li>Run extended tests on PRs against release branch, update glue_iceberg_integration_test_catalog test (#6204) by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/6204" target="_blank" rel="noopener noreferrer">#6204</a></li>
<li>query schema for is_nullable (#6229) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6229" target="_blank" rel="noopener noreferrer">#6229</a></li>
<li>fix: use the query error message when queries fail (#6228) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6228" target="_blank" rel="noopener noreferrer">#6228</a></li>
<li>fix glue iceberg catalog integration test (#6249) by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/6249" target="_blank" rel="noopener noreferrer">#6249</a></li>
<li>cache table providers in glue catalog (#6252) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6252" target="_blank" rel="noopener noreferrer">#6252</a></li>
<li>fix: databricks sql_warehouse schema contains duplicate fields (#6255) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6255" target="_blank" rel="noopener noreferrer">#6255</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spiceai/spiceai/compare/v1.3.2...v1.4.0" target="_blank" rel="noopener noreferrer">v1.3.2...v1.4.0</a></p>]]></content>
        <author>
            <name>William Croxson</name>
            <uri>https://github.com/peasee</uri>
        </author>
        <category label="release" term="release"/>
        <category label="datafusion" term="datafusion"/>
        <category label="arrow" term="arrow"/>
        <category label="aws" term="aws"/>
        <category label="cron" term="cron"/>
        <category label="glue" term="glue"/>
        <category label="workers" term="workers"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.3.2 (June 2, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.3.2</id>
        <link href="https://spiceai.org/blog/releases/v1.3.2"/>
        <updated>2025-06-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.3.2! ❄️]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.3.2! ❄️</p>
<p>Spice v1.3.2 is a patch release with fixes to the DuckDB data accelerator and Snowflake data connector.</p>
<p>Changes:</p>
<ul>
<li>
<p><strong>DuckDB Data Accelerator</strong>: Supports <code>ORDER BY rand()</code> for randomized result ordering and <code>ORDER BY NULL</code> for SQL compatibility.</p>
</li>
<li>
<p><strong>Snowflake Data Connector</strong>: Adds <code>TIMESTAMP_NTZ(0)</code> type for timestamps with seconds precision.</p>
</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.3.2#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.3.2#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>No breaking changes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.3.2#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<p>No new cookbook recipes.</p>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> now includes 67 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.3.2#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.3.2, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.3.2</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.3.2</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.3.2#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.3.2#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h2>
<p>No major dependency changes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.3.2#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h2>
<ul>
<li>Handle Snowflake Timestamp NTZ with seconds precision (#6084) by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/6084" target="_blank" rel="noopener noreferrer">#6084</a></li>
<li>Fix DuckDB acceleration <code>ORDER BY rand()</code> and <code>ORDER BY NULL</code> (#6071) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/6071" target="_blank" rel="noopener noreferrer">#6071</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spiceai/spiceai/compare/v1.3.1...v1.3.2" target="_blank" rel="noopener noreferrer">https://github.com/spiceai/spiceai/compare/v1.3.1...v1.3.2</a></p>]]></content>
        <author>
            <name>Phillip LeBlanc</name>
            <uri>https://x.com/leblancphill</uri>
        </author>
        <category label="release" term="release"/>
        <category label="duckdb" term="duckdb"/>
        <category label="snowflake" term="snowflake"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.3.1 (May 26, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.3.1</id>
        <link href="https://spiceai.org/blog/releases/v1.3.1"/>
        <updated>2025-05-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.3.1! 🛡️]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.3.1! 🛡️</p>
<p>Spice v1.3.1 includes improvements to Databricks SQL Warehouse support and parameterized query handling, along with several bugfixes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-new-in-v131">What's New in v1.3.1<a href="https://spiceai.org/blog/releases/v1.3.1#whats-new-in-v131" class="hash-link" aria-label="Direct link to What's New in v1.3.1" title="Direct link to What's New in v1.3.1">​</a></h2>
<ul>
<li>
<p><strong>Databricks SQL Warehouse</strong> Added support for the <code>STRUCT</code> type, enabled join pushdown for queries within the same SQL Warehouse and added projection to logical plans to force federation with correct SQL dialect.</p>
</li>
<li>
<p><strong>SQL Improvements</strong>: Fixed an issue where <code>ILike</code> was incorrectly optimized to string equality in DataFusion/Arrow and aliased the <code>random()</code> function to <code>rand()</code> for better compatibility.</p>
</li>
<li>
<p><strong>Parameterized Queries</strong>: Fixed parameter schema ordering for queries with more than 10 parameters and resolved placeholder inference issues in <code>CASE</code> expressions.</p>
</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.3.1#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a></li>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a></li>
<li><a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.3.1#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>No breaking changes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.3.1#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<p>No new cookbook recipes.</p>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> now includes 67 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.3.1#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.3.1, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.3.1</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.3.1</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.3.1#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.3.1#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h2>
<p>No major dependency changes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.3.1#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h2>
<ul>
<li>Bump Helm chart to 1.3.0 by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5925" target="_blank" rel="noopener noreferrer">#5925</a></li>
<li>Fix Databricks SQL Warehouse benchmark test by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a>, <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a>, <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a>, [@Spice Benchmark Snapshot Update Bot](<a href="https://github.com/Spice" target="_blank" rel="noopener noreferrer">https://github.com/Spice</a> Benchmark Snapshot Update Bot) in <a href="https://github.com/spiceai/spiceai/pull/5924" target="_blank" rel="noopener noreferrer">#5924</a></li>
<li>Add support for STRUCT type in Databricks SQL Warehouse by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a>, <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/5936" target="_blank" rel="noopener noreferrer">#5936</a></li>
<li>Add projection to logical plan to force federation and correct dialect by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a>, <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/5946" target="_blank" rel="noopener noreferrer">#5946</a></li>
<li>Allow join push down for same SQL Warehouse by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a>, <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/5947" target="_blank" rel="noopener noreferrer">#5947</a></li>
<li>Avoid mistaken ILike to string equality optimization (DataFusion / Arrow) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a>, <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/5939" target="_blank" rel="noopener noreferrer">#5939</a></li>
<li>Make spill_to_disk_and_rehydration test more robust by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a>, <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/5929" target="_blank" rel="noopener noreferrer">#5929</a></li>
<li>Alias the random() function to rand() by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a>, <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/5967" target="_blank" rel="noopener noreferrer">#5967</a></li>
<li>Fix parameter schema ordering with &gt; 10 parameters for parameterized queries by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a>, <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/5962" target="_blank" rel="noopener noreferrer">#5962</a></li>
<li>Rev version to v1.3.1 by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/5975" target="_blank" rel="noopener noreferrer">#5975</a></li>
<li>Fix placeholder inference in CASE expressions by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a>, <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/5968" target="_blank" rel="noopener noreferrer">#5968</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spiceai/spiceai/compare/v1.3.0...v1.3.1" target="_blank" rel="noopener noreferrer">github.com/spiceai/spiceai/compare/v1.3.0...v1.3.1</a></p>]]></content>
        <author>
            <name>Luke Kim</name>
            <uri>https://x.com/0xLukeKim</uri>
        </author>
        <category label="release" term="release"/>
        <category label="sql" term="sql"/>
        <category label="databricks" term="databricks"/>
        <category label="parameterized queries" term="parameterized queries"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.3.0 (May 19, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.3.0</id>
        <link href="https://spiceai.org/blog/releases/v1.3.0"/>
        <updated>2025-05-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.3.0! 🏎️]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.3.0! 🏎️</p>
<p>Spice v1.3.0 accelerates data and AI applications with significantly improved query performance, reliability, and expanded Databricks integration. New support for the Databricks SQL Statement Execution API enables direct SQL queries on Databricks SQL Warehouses, complementing Mosaic AI model serving and embeddings (introduced in v1.2.2) and existing Databricks catalog and dataset integrations. This release upgrades to DataFusion v46, optimizes results caching performance, and strengthens security with least-privilege sandboxed improvements.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-new-in-v130">What's New in v1.3.0<a href="https://spiceai.org/blog/releases/v1.3.0#whats-new-in-v130" class="hash-link" aria-label="Direct link to What's New in v1.3.0" title="Direct link to What's New in v1.3.0">​</a></h2>
<ul>
<li>
<p><strong>Databricks SQL Statement Execution API Support</strong>: Added support for the <a href="https://docs.databricks.com/aws/en/dev-tools/sql-execution-tutorial" target="_blank" rel="noopener noreferrer">Databricks SQL Statement Execution API</a>, enabling direct SQL queries against Databricks SQL Warehouses for optimized performance in analytics and reporting workflows.</p>
<p>Example <code>spicepod.yml</code> configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> databricks</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">spiceai.datasets.my_awesome_table</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_awesome_table</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mode</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> sql_warehouse</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_endpoint</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">env</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">DATABRICKS_ENDPOINT</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_sql_warehouse_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">env</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">DATABRICKS_SQL_WAREHOUSE_ID</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_token</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">env</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">DATABRICKS_TOKEN</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><br></span></code></pre></div></div>
<p>For details, see the <a href="https://spiceai.org/docs/components/data-connectors/databricks" target="_blank" rel="noopener noreferrer">Databricks Data Connector documentation</a>.</p>
</li>
<li>
<p><strong>Improved Results Cache Performance &amp; Hashing Algorithm:</strong> Spice now supports an alternative results cache hashing algorithm, <code>ahash</code>, in addition to <code>siphash</code>, being the default. Configure it via:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">runtime</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">results_cache</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">hashing_algorithm</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> ahash </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># or siphash</span><br></span></code></pre></div></div>
<p>The hashing algorithm determines how cache keys are hashed before being stored, impacting both lookup speed and protection against potential DOS attacks.</p>
<p>Using <code>ahash</code> improves performance for large queries or query plans. Combined with results cache optimizations, it reduces 99th percentile request latency and increases total requests/second for queries with large result sets (100k+ cached rows). The following charts show performance tested against the <a href="https://github.com/spiceai/spiceai/blob/trunk/crates/test-framework/src/queries/tpch/q17.sql" target="_blank" rel="noopener noreferrer">TPCH Query #17</a> on a scale factor 5 dataset (30+ million rows, 5GB):</p>
<table><thead><tr><th>Latency</th><th>Req/sec</th></tr></thead><tbody><tr><td><img decoding="async" loading="lazy" src="https://github.com/user-attachments/assets/4cfedeaf-df58-403e-b861-e0eac436ff00" alt="Improvements for the 99th percentile query latency, compared against 1.2.2 with cache key type and hashing algorithm." class="img_ev3q"></td><td><img decoding="async" loading="lazy" src="https://github.com/user-attachments/assets/0bc3f866-82cf-4f41-88ec-52283c084675" alt="Improvements for the requests/second, compared against 1.2.2 with cache key type and hashing algorithm." class="img_ev3q"></td></tr></tbody></table>
<p>Note: <code>ahash</code> was not available in v1.2.2, so it is excluded from comparisons.</p>
<p>To learn more, refer to the <a href="https://spiceai.org/docs/reference/spicepod/runtime#runtimehashing_algorithm" target="_blank" rel="noopener noreferrer">Results Cache Hashing Algorithm documentation</a>.</p>
</li>
<li>
<p><strong>SQL Query Performance</strong>: Optimized the critical SQL query path, reducing overhead and improving response times for simple queries by 10-20%.</p>
</li>
<li>
<p><strong>DuckDB Acceleration</strong>: Fixed a bug in the DuckDB acceleration engine causing query failures under high concurrency when querying datasets accelerated into multiple DuckDB files.</p>
</li>
<li>
<p><strong>Container Security</strong>: The container image now runs as a non-root user with enhanced sandboxing and includes only essential dependencies for a slimmer, more secure image.</p>
</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="datafusion-v46-highlights">DataFusion v46 Highlights<a href="https://spiceai.org/blog/releases/v1.3.0#datafusion-v46-highlights" class="hash-link" aria-label="Direct link to DataFusion v46 Highlights" title="Direct link to DataFusion v46 Highlights">​</a></h2>
<p>Spice.ai is built on the DataFusion query engine. The v46 release brings:</p>
<ul>
<li>
<p><strong>Faster Performance 🚀</strong>: DataFusion 46 introduces significant performance enhancements, including a 2x faster <code>median()</code> function for large datasets without grouping, 10–100% speed improvements in <code>FIRST_VALUE</code> and <code>LAST_VALUE</code> window functions by avoiding sorting, and a 40x faster <code>uuid()</code> function. Additional optimizations, such as a 50% faster <code>repeat()</code> string function, accelerated <code>chr()</code> and <code>to_hex()</code> functions, improved grouping algorithms, and Parquet row group pruning with <code>NOT LIKE</code> filters, further boost overall query efficiency.</p>
</li>
<li>
<p><strong>New range() Table Function</strong>: A new table-valued function <code>range(start, stop, step)</code> has been added to make it easy to generate integer sequences — similar to PostgreSQL’s generate_series() or Spark’s range(). Example: <code>SELECT * FROM range(1, 10, 2);</code></p>
</li>
<li>
<p><strong>UNION [ALL | DISTINCT] BY NAME Support</strong>: DataFusion now supports <code>UNION BY NAME</code> and <code>UNION ALL BY NAME</code>, which align columns by name instead of position. This matches functionality found in systems like Spark and DuckDB and simplifies combining heterogeneously ordered result sets.</p>
<p>Example:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> col1</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> col2 </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> t1</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">UNION</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">ALL</span><span class="token plain"> </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">BY</span><span class="token plain"> NAME</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token keyword" style="color:hsl(301, 63%, 40%)">SELECT</span><span class="token plain"> col2</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> col1 </span><span class="token keyword" style="color:hsl(301, 63%, 40%)">FROM</span><span class="token plain"> t2</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">;</span><br></span></code></pre></div></div>
</li>
</ul>
<p>See the <a href="https://datafusion.apache.org/blog/2025/03/24/datafusion-46.0.0/" target="_blank" rel="noopener noreferrer">DataFusion 46.0.0 release notes</a> for details.</p>
<p>Spice.ai adopts the latest minus one DataFusion release for quality assurance and stability. The upgrade to DataFusion v47 is planned for Spice v1.4.0 in June.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.3.0#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a></li>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a></li>
<li><a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a></li>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a></li>
<li><a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a></li>
<li><a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a></li>
<li><a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.3.0#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>The container image now always runs as a non-root user (UID/GID 65534) with minimal dependencies, resulting in a smaller, more secure image. Standard Linux tools, including <code>bash</code>, are no longer included.</p>
<p><strong>Kubernetes Deployments</strong>:</p>
<ul>
<li>
<p>Use of the v1.3.0+ Helm chart is required, which includes a <code>securityContext</code> ensuring the sandbox user has required file access.</p>
</li>
<li>
<p>For deployments using a lower version than the v1.3.0 Helm chart, add the following <code>securityContext</code> to the pod specification:</p>
</li>
</ul>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">securityContext</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">runAsUser</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">65534</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">runAsGroup</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">65534</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">fsGroup</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">65534</span><br></span></code></pre></div></div>
<p>See the <a href="https://spiceai.org/docs/deployment/docker/sandbox" target="_blank" rel="noopener noreferrer">Docker Sandbox Guide</a> for details on how to update custom Docker images to restore the previous behavior.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.3.0#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<ul>
<li>Added <a href="https://github.com/spiceai/cookbook/blob/trunk/views/README.md" target="_blank" rel="noopener noreferrer">Accelerated Views</a>: Pre-calculate and materialize data derived from one or more underlying datasets.</li>
</ul>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> now includes 67 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.3.0#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.3.0, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.3.0</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.3.0</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.3.0#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.3.0#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h2>
<ul>
<li><strong>DataFusion</strong>: <a href="https://datafusion.apache.org/blog/2025/03/24/datafusion-46.0.0/" target="_blank" rel="noopener noreferrer">Upgraded to v46</a></li>
<li><strong>Apache Arrow</strong>: <a href="https://github.com/apache/arrow-rs/releases/tag/54.3.0" target="_blank" rel="noopener noreferrer">Upgraded to v54.3.0</a></li>
<li><strong>delta_kernel</strong>: <a href="https://crates.io/crates/delta_kernel/0.10.0" target="_blank" rel="noopener noreferrer">Upgraded to v0.10.0</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.3.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h2>
<ul>
<li>update to 1.2.2 by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/5806" target="_blank" rel="noopener noreferrer">#5806</a></li>
<li>Move sandboxing logic to Dockerfile by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5808" target="_blank" rel="noopener noreferrer">#5808</a></li>
<li>Add note to run installation health workflow after release is marked as official by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/5797" target="_blank" rel="noopener noreferrer">#5797</a></li>
<li>ROADMAP updates May 13, 2025 by <a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a> in <a href="https://github.com/spiceai/spiceai/pull/5809" target="_blank" rel="noopener noreferrer">#5809</a></li>
<li>Update qa_analytics.csv by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/5810" target="_blank" rel="noopener noreferrer">#5810</a></li>
<li>post-release housekeeping by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/5811" target="_blank" rel="noopener noreferrer">#5811</a></li>
<li>Fix flaky DataBricks M2M integration tests by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5818" target="_blank" rel="noopener noreferrer">#5818</a></li>
<li>Add DataFusion request context extension to http routes by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5807" target="_blank" rel="noopener noreferrer">#5807</a></li>
<li>Use Utf8 for partition columns by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5820" target="_blank" rel="noopener noreferrer">#5820</a></li>
<li>Use full path for location metadata column by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5819" target="_blank" rel="noopener noreferrer">#5819</a></li>
<li>Remove the DataFusion reference from the flight service and use the reference from the request context instead by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5821" target="_blank" rel="noopener noreferrer">#5821</a></li>
<li>Upgrade delta_kernel to 0.10 by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5823" target="_blank" rel="noopener noreferrer">#5823</a></li>
<li>fix: Update benchmark snapshots by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/5827" target="_blank" rel="noopener noreferrer">#5827</a></li>
<li>Update qa_analytics.csv by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/5824" target="_blank" rel="noopener noreferrer">#5824</a></li>
<li>fix: Update benchmark snapshots by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/5826" target="_blank" rel="noopener noreferrer">#5826</a></li>
<li>fix: Update benchmark snapshots by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/5825" target="_blank" rel="noopener noreferrer">#5825</a></li>
<li>Fix dispatch spicepod reference for <code>file[parquet]-duckdb[file]-indexes</code> and <code>file[parquet]-duckdb[memory]-indexes</code> by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5837" target="_blank" rel="noopener noreferrer">#5837</a></li>
<li>Fix <code>spice run --http-endpoint</code> in CLI by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/5812" target="_blank" rel="noopener noreferrer">#5812</a></li>
<li>Prevent excessively copying RawCacheKey by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5838" target="_blank" rel="noopener noreferrer">#5838</a></li>
<li>Make DuckDB database attachments logic more robust by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5839" target="_blank" rel="noopener noreferrer">#5839</a></li>
<li>Simplify Databricks U2M auth flow, by moving user auth to the request context by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5842" target="_blank" rel="noopener noreferrer">#5842</a></li>
<li>Update to new MCP crate by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/5758" target="_blank" rel="noopener noreferrer">#5758</a></li>
<li>Disable the query tracker when task history is disabled by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5852" target="_blank" rel="noopener noreferrer">#5852</a></li>
<li>Set fsGroup on PodSpec to force volumes to be mounted with permission to docker image by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5854" target="_blank" rel="noopener noreferrer">#5854</a></li>
<li>Clarify Helm release steps by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5855" target="_blank" rel="noopener noreferrer">#5855</a></li>
<li>Avoid cloning cached results by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5853" target="_blank" rel="noopener noreferrer">#5853</a></li>
<li>Upgrade to DataFusion 46 by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5543" target="_blank" rel="noopener noreferrer">#5543</a></li>
<li>Update openapi.json by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/5856" target="_blank" rel="noopener noreferrer">#5856</a></li>
<li>Adapt to Arrow 54 changes in Dict IDs preserving (Arrow IPC) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5866" target="_blank" rel="noopener noreferrer">#5866</a></li>
<li>fix: Update benchmark snapshots by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/5867" target="_blank" rel="noopener noreferrer">#5867</a></li>
<li>Fix s3[parquet]-duckdb[file-many] benchmark Spicepod configuration by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5868" target="_blank" rel="noopener noreferrer">#5868</a></li>
<li>fix: Update benchmark snapshots by <a href="https://github.com/app/github-actions" target="_blank" rel="noopener noreferrer">@app/github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/5869" target="_blank" rel="noopener noreferrer">#5869</a></li>
<li>feat: Refactor caching, support hashing algorithms by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5859" target="_blank" rel="noopener noreferrer">#5859</a></li>
<li>Overried health checks for Databricks models in U2M auth mode by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5858" target="_blank" rel="noopener noreferrer">#5858</a></li>
<li>Update trunk to 1.4.0-unstable by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5878" target="_blank" rel="noopener noreferrer">#5878</a></li>
<li>fix: Pass parameters to testoperator explain plan by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5883" target="_blank" rel="noopener noreferrer">#5883</a></li>
<li>Disallow schema updates for existing accelerated tables by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5887" target="_blank" rel="noopener noreferrer">#5887</a></li>
<li>Deferrable registration for Databricks U2M datasets by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5860" target="_blank" rel="noopener noreferrer">#5860</a></li>
</ul>
<p>See the full list of changes at: <a href="https://github.com/spiceai/spiceai/compare/v1.2.2...v1.3.0" target="_blank" rel="noopener noreferrer">v1.2.2...v1.3.0</a></p>]]></content>
        <author>
            <name>Phillip LeBlanc</name>
            <uri>https://x.com/leblancphill</uri>
        </author>
        <category label="release" term="release"/>
        <category label="databricks" term="databricks"/>
        <category label="datafusion" term="datafusion"/>
        <category label="sql" term="sql"/>
        <category label="api" term="api"/>
        <category label="cache" term="cache"/>
        <category label="hashing" term="hashing"/>
        <category label="duckdb" term="duckdb"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.2.2 (May 13, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.2.2</id>
        <link href="https://spiceai.org/blog/releases/v1.2.2"/>
        <updated>2025-05-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.2.2! 🌟]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.2.2! 🌟</p>
<p>Spice v1.2.2 introduces support for Databricks Mosaic AI model serving and embeddings, alongside the existing Databricks catalog and dataset integrations. It adds configurable service ports in the Helm chart and resolves several bugs to improve stability and performance.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="highlights-in-v122">Highlights in v1.2.2<a href="https://spiceai.org/blog/releases/v1.2.2#highlights-in-v122" class="hash-link" aria-label="Direct link to Highlights in v1.2.2" title="Direct link to Highlights in v1.2.2">​</a></h2>
<ul>
<li>
<p><strong>Databricks Model &amp; Embedding Provider</strong>: Spice integrates with <a href="https://www.databricks.com/product/model-serving" target="_blank" rel="noopener noreferrer">Databricks Model Serving</a> for models and embeddings, enabling secure access via machine-to-machine (M2M) OAuth authentication with service principal credentials. The runtime automatically refreshes tokens using <code>databricks_client_id</code> and <code>databricks_client_secret</code>, ensuring uninterrupted operation. This feature supports Databricks-hosted large language models and embedding models.</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">models</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> databricks</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">databricks</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">llama</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">4</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">maverick</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> llama</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">4</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">maverick</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_endpoint</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> dbc</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">46470731</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">42e5.cloud.databricks.com</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_client_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">DATABRICKS_CLIENT_ID</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_client_secret</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">DATABRICKS_CLIENT_SECRET</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">embeddings</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> databricks</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">databricks</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">gte</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">large</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">en</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> gte</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">large</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">en</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_endpoint</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> dbc</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">42424242</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">4242.cloud.databricks.com</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_client_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">DATABRICKS_CLIENT_ID</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_client_secret</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">DATABRICKS_CLIENT_SECRET</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><br></span></code></pre></div></div>
<p>For detailed setup instructions, refer to the <a href="https://spiceai.org/docs/components/models/databricks" target="_blank" rel="noopener noreferrer">Databricks Model Provider documentation</a>.</p>
</li>
<li>
<p><strong>Configurable Helm Chart Service Ports</strong>: The Helm chart now supports custom ports for flexible network configurations for deployments. Specify non-default ports in your Helm values file.</p>
</li>
<li>
<p><strong>Resolved Issues</strong>:</p>
<ul>
<li>
<p><strong>MCP Nested Tool Calling</strong>: Fixed a bug preventing nested tool invocation when Spice operates as the MCP server federating to MCP clients.</p>
</li>
<li>
<p><strong>Dataset Load Concurrency</strong>: Corrected a failure to respect the <code>dataset_load_parallelism</code> setting during dataset loading.</p>
</li>
<li>
<p><strong>Acceleration Hot-Reload</strong>: Addressed an issue where changes to acceleration enable/disable settings were not detected during hot reload of Spicepod.yaml.</p>
</li>
</ul>
</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.2.2#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a></li>
<li><a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a></li>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a></li>
<li><a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a></li>
<li><a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a></li>
<li><a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.2.2#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>No breaking changes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.2.2#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<p>Updated cookbooks:</p>
<ul>
<li><a href="https://github.com/spiceai/cookbook/tree/trunk/catalogs/databricks/README.md" target="_blank" rel="noopener noreferrer">Databricks Catalogs</a>: Includes using Databricks Service Principal</li>
<li><a href="https://github.com/spiceai/cookbook/tree/trunk/databricks/README.md" target="_blank" rel="noopener noreferrer">Databricks</a>: Includes using M2M auth</li>
<li><a href="https://github.com/spiceai/cookbook/tree/trunk/clients/adbc/README.md" target="_blank" rel="noopener noreferrer">Python ADBC</a>: Adds a dataset to be queried over ADBC.</li>
</ul>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> now includes 68 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.2.2#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.2.2, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.2.2</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.2.2</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.2.2#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.2.2#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h2>
<ul>
<li>No major dependency changes.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.2.2#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update spark-connect-rs to override user agent string by @ewgenius in https://github.com/spiceai/spice/pull/5798</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Merge pull request by @ewgenius in https://github.com/spiceai/spice/pull/5796</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Pass the default user agent string to the Databricks Spark, Delta, and Unity clients by @ewgenius in https://github.com/spiceai/spice/pull/5717</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- bump to 1.2.2 by @Jeadie in https://github.com/spiceai/spice/pull/none</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Helm chart: support for service ports overrides by @sgrebnov in https://github.com/spiceai/spice/pull/5774</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update spice cli login command with client-id and client-secret flags for Databricks by @ewgenius in https://github.com/spiceai/spice/pull/5788</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix bug where setting Cache-Control: no-cache doesn't compute the cache key by @phillipleblanc in https://github.com/spiceai/spice/pull/5779</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update to datafusion-contrib/datafusion-table-providers#336 by @phillipleblanc in https://github.com/spiceai/spice/pull/5778</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Lru cache: limit single cached record size to u32::MAX (4GB) by @sgrebnov in https://github.com/spiceai/spice/pull/5772</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix LLMs calling nested MCP tools by @Jeadie in https://github.com/spiceai/spice/pull/5771</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- MySQL: Set the character_set_results/character_set_client/character_set_connection session variables on connection setup by @Sevenannn in https://github.com/spiceai/spice/pull/5770</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Control the parallelism of acceleration refresh datasets with runtime.dataset_load_parallelism by @phillipleblanc in https://github.com/spiceai/spice/pull/5763</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix Iceberg predicates not matching the Arrow type of columns read from parquet files by @phillipleblanc in https://github.com/spiceai/spice/pull/5761</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Use decimal_cmp for numerical BETWEEN in SQLite by @peasee in https://github.com/spiceai/spice/pull/5760</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Support product name override in databricks user agent string by @ewgenius in https://github.com/spiceai/spice/pull/5749</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Databricks U2M Token Provider support by @ewgenius in https://github.com/spiceai/spice/pull/5747</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Remove HTTP auth from LLM config and simplify Databricks models logic by using static headers by @Jeadie in https://github.com/spiceai/spice/pull/5742</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- clear plan cache when dataset updates by @kczimm in https://github.com/spiceai/spice/pull/5741</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Support Databricks M2M auth in LLMs + Embeddings by @Jeadie in https://github.com/spiceai/spice/pull/5720</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Retrieve Github App tokens in background; make TokenProvider not async by @Jeadie in https://github.com/spiceai/spice/pull/5718</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Make 'token_providers' crate by @Jeadie in https://github.com/spiceai/spice/pull/5716</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Databricks AI: Embedding models &amp; LLM streaming by @Jeadie in https://github.com/spiceai/spice/pull/5715</span><br></span></code></pre></div></div>
<p>See the full list of changes at: <a href="https://github.com/spiceai/spiceai/compare/v1.2.1...v1.2.2" target="_blank" rel="noopener noreferrer">v1.2.1...v1.2.2</a></p>]]></content>
        <author>
            <name>Jack Eadie</name>
            <uri>https://github.com/Jeadie</uri>
        </author>
        <category label="release" term="release"/>
        <category label="databricks" term="databricks"/>
        <category label="embeddings" term="embeddings"/>
        <category label="acceleration" term="acceleration"/>
        <category label="helm" term="helm"/>
        <category label="mcp" term="mcp"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.2.1 (May 6, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.2.1</id>
        <link href="https://spiceai.org/blog/releases/v1.2.1"/>
        <updated>2025-05-06T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.2.1! 🔥]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.2.1! 🔥</p>
<p>Spice v1.2.1 includes several data connector fixes and improves query performance for accelerated views. This release also introduces Databricks Service Principal (M2M OAuth) authentication and expands parameterized queries.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="highlights-in-v121">Highlights in v1.2.1<a href="https://spiceai.org/blog/releases/v1.2.1#highlights-in-v121" class="hash-link" aria-label="Direct link to Highlights in v1.2.1" title="Direct link to Highlights in v1.2.1">​</a></h2>
<ul>
<li>
<p><strong>Databricks Service Principal Support</strong>: Databricks datasets and catalogs now support Machine-to-Machine (M2M) OAuth authentication via Service Principals, enabling secure machine connections to Databricks.</p>
<p>Example <code>spicepod.yaml</code>:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> databricks</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">spiceai.datasets.my_awesome_table </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># A reference to a table in the Databricks unity catalog</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_delta_lake_table</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mode</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> delta_lake</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_endpoint</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> dbc</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">a1b2345c</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">d6e7.cloud.databricks.com</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_client_id</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">DATABRICKS_CLIENT_ID</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_client_secret</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">DATABRICKS_CLIENT_SECRET</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><br></span></code></pre></div></div>
<p>For details, see documentation for:</p>
<ul>
<li><a href="https://spiceai.org/docs/components/data-connectors/databricks" target="_blank" rel="noopener noreferrer">Databricks Data Connector</a></li>
<li><a href="https://spiceai.org/docs/components/catalogs/databricks" target="_blank" rel="noopener noreferrer">Databricks Unity Catalog Connector</a></li>
</ul>
</li>
<li>
<p><strong>Iceberg Data Connector</strong>: Now supports cross-account table access via the AWS Glue Catalog Connector and fixes an issue when querying data from append mode datasets.</p>
</li>
<li>
<p><strong>Iceberg Catalog API</strong>: Full compatibility with the Iceberg HTTP REST Catalog API to consume Spice datasets from Iceberg Catalog clients.</p>
<p>For details, see documentation for:</p>
<ul>
<li><a href="https://spiceai.org/docs/components/data-connectors/iceberg" target="_blank" rel="noopener noreferrer">Iceberg Data Connector</a></li>
<li><a href="https://spiceai.org/docs/components/data-connectors/s3" target="_blank" rel="noopener noreferrer">S3 Data Connector</a></li>
</ul>
</li>
<li>
<p><strong>Improved Parameterized Query Support</strong>: Expanded type inference for placeholders in:</p>
<ul>
<li><code>IN</code> list expressions</li>
<li><code>LIKE</code> patterns</li>
<li><code>SIMILAR TO</code> patterns</li>
<li><code>LIMIT</code> clauses</li>
<li>Subqueries</li>
</ul>
</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="new-contributors-">New Contributors 🎉<a href="https://spiceai.org/blog/releases/v1.2.1#new-contributors-" class="hash-link" aria-label="Direct link to New Contributors 🎉" title="Direct link to New Contributors 🎉">​</a></h2>
<ul>
<li><a href="https://github.com/nuvic" target="_blank" rel="noopener noreferrer">@nuvic</a> made their first contribution in <a href="https://github.com/spiceai/spiceai/pull/5673" target="_blank" rel="noopener noreferrer">#5673</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.2.1#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a></li>
<li><a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a></li>
<li><a href="https://github.com/karifabri" target="_blank" rel="noopener noreferrer">@karifabri</a></li>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a></li>
<li><a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a></li>
<li><a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a></li>
<li><a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a></li>
<li><a href="https://github.com/nuvic" target="_blank" rel="noopener noreferrer">@nuvic</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.2.1#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>No breaking changes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.2.1#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<p>New recipes for:</p>
<ul>
<li><a href="https://github.com/spiceai/cookbook/tree/trunk/evals/README.md" target="_blank" rel="noopener noreferrer">Language Model Evaluations</a>: Use Spice.ai OSS to evaluate language models.</li>
<li><a href="https://github.com/spiceai/cookbook/tree/trunk/llm-judge/README.md" target="_blank" rel="noopener noreferrer">LLM as a Judge</a>: Use LLM judge models to evaluate the performance of other language models.</li>
</ul>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> now includes 68 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.2.1#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.2.1, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.2.1</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.2.1</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.2.1#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.2.1#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<ul>
<li>No major dependency changes.</li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.2.1#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<ul>
<li>Fix: Specify metric type as a dimension for testoperator by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5630" target="_blank" rel="noopener noreferrer">#5630</a></li>
<li>Fix: Add option to run dispatch schedule by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5631" target="_blank" rel="noopener noreferrer">#5631</a></li>
<li>Infer placeholder datatype for InList, Like, and SimilarTo by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/5626" target="_blank" rel="noopener noreferrer">#5626</a></li>
<li>Add QA analytics for 1.2.0 by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5640" target="_blank" rel="noopener noreferrer">#5640</a></li>
<li>Fix: Use SPICED_COMMIT for spiced_commit_sha by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5632" target="_blank" rel="noopener noreferrer">#5632</a></li>
<li>New crates/tools by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/5121" target="_blank" rel="noopener noreferrer">#5121</a></li>
<li>Update openapi.json by <a href="https://github.com/github-actions" target="_blank" rel="noopener noreferrer">@github-actions</a> in <a href="https://github.com/spiceai/spiceai/pull/5643" target="_blank" rel="noopener noreferrer">#5643</a></li>
<li>Enable metrics reporting for models benchmarks (evals) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5639" target="_blank" rel="noopener noreferrer">#5639</a></li>
<li>Implement CatalogBuilder, add app and runtime references to catalog component, add runtime reference to connector params by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5641" target="_blank" rel="noopener noreferrer">#5641</a></li>
<li>Fix eventing bug in LLM progress; Add tool and worker progress by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/5619" target="_blank" rel="noopener noreferrer">#5619</a></li>
<li>Handle small precision differences in TPCH answer validation by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5642" target="_blank" rel="noopener noreferrer">#5642</a></li>
<li>Add TokenProviderRegistry to the runtime by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5651" target="_blank" rel="noopener noreferrer">#5651</a></li>
<li>Provide ModelContextLayer for evals by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/5648" target="_blank" rel="noopener noreferrer">#5648</a></li>
<li>Databricks data_components refactor. Databricks Spark connect - add set_token method and writable spark session by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5654" target="_blank" rel="noopener noreferrer">#5654</a></li>
<li>Extract AWS Glue warehouse for cross-account Iceberg tables by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5656" target="_blank" rel="noopener noreferrer">#5656</a></li>
<li>Refactor Dataset component by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5660" target="_blank" rel="noopener noreferrer">#5660</a></li>
<li>Fix Iceberg API returning 404 when schema contains a Dictionary by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5665" target="_blank" rel="noopener noreferrer">#5665</a></li>
<li>Fix dependencies: downgrade swagger-ui to v8; force zip to 2.3.0 by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/5664" target="_blank" rel="noopener noreferrer">#5664</a></li>
<li>Add DuckDB indexes spicepod, additional dispatches by <a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a> in <a href="https://github.com/spiceai/spiceai/pull/5633" target="_blank" rel="noopener noreferrer">#5633</a></li>
<li>Update readme: update data federation link by <a href="https://github.com/nuvic" target="_blank" rel="noopener noreferrer">@nuvic</a> in <a href="https://github.com/spiceai/spiceai/pull/5673" target="_blank" rel="noopener noreferrer">#5673</a></li>
<li>Support metadata columns for object-store based data connectors by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5661" target="_blank" rel="noopener noreferrer">#5661</a></li>
<li>Add model name to LLM judges, and add model_graded_scoring task by <a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a> in <a href="https://github.com/spiceai/spiceai/pull/5655" target="_blank" rel="noopener noreferrer">#5655</a></li>
<li>Add SF1000 TPCH test spicepods for delta lake by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/5606" target="_blank" rel="noopener noreferrer">#5606</a></li>
<li>Validate Github Connector resource existence before building the github connector graphql table by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/5674" target="_blank" rel="noopener noreferrer">#5674</a></li>
<li>Remove hard-coded embedding performance tests in CI by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/5675" target="_blank" rel="noopener noreferrer">#5675</a></li>
<li>Databricks M2M auth for spark connect data connector by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5659" target="_blank" rel="noopener noreferrer">#5659</a></li>
<li>Enable federated data refresh support for accelerated views by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5677" target="_blank" rel="noopener noreferrer">#5677</a></li>
<li>Add pods watcher integration test by <a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a> in <a href="https://github.com/spiceai/spiceai/pull/5681" target="_blank" rel="noopener noreferrer">#5681</a></li>
<li>Add m2m support for databricks delta connector by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5680" target="_blank" rel="noopener noreferrer">#5680</a></li>
<li>Update end_game.md by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5684" target="_blank" rel="noopener noreferrer">#5684</a></li>
<li>Update StaticTokenProvider to use SecretString instead of raw str value by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5686" target="_blank" rel="noopener noreferrer">#5686</a></li>
<li>Add M2M Auth support for Databricks catalog connector by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5687" target="_blank" rel="noopener noreferrer">#5687</a></li>
<li>Update UX to disable acceleration federation by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5682" target="_blank" rel="noopener noreferrer">#5682</a></li>
<li>Improve placeholder inference (LIMIT &amp; Expr::InSubquery) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5692" target="_blank" rel="noopener noreferrer">#5692</a></li>
<li>Tweak default log to ignore aws_config::imds::region by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5693" target="_blank" rel="noopener noreferrer">#5693</a></li>
<li>Make Spice properly Iceberg Catalog API compatible for load table API by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5695" target="_blank" rel="noopener noreferrer">#5695</a></li>
<li>Use deterministic queries for Databricks m2m catalog tests by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5696" target="_blank" rel="noopener noreferrer">#5696</a></li>
<li>Support retrieving the latest Iceberg table on table scan by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5704" target="_blank" rel="noopener noreferrer">#5704</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spiceai/spiceai/compare/v1.2.0...v1.2.1" target="_blank" rel="noopener noreferrer">v1.2.0...v1.2.1</a></p>]]></content>
        <author>
            <name>Sergei Grebnov</name>
            <uri>https://github.com/sgrebnov</uri>
        </author>
        <category label="release" term="release"/>
        <category label="databricks" term="databricks"/>
        <category label="data-connector" term="data-connector"/>
        <category label="parameterized queries" term="parameterized queries"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.2.0 (Apr 28, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.2.0</id>
        <link href="https://spiceai.org/blog/releases/v1.2.0"/>
        <updated>2025-04-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.2.0! 🚀]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.2.0! 🚀</p>
<p>Spice v1.2.0 is a significant update. It upgrades DataFusion to v45 and Arrow to v54. This release brings faster query performance, support for parameterized queries in SQL and HTTP APIs, and the ability to accelerate views. Several bugs have been fixed and dependencies updated for better stability and speed.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="datafusion-v45-highlights">DataFusion v45 Highlights<a href="https://spiceai.org/blog/releases/v1.2.0#datafusion-v45-highlights" class="hash-link" aria-label="Direct link to DataFusion v45 Highlights" title="Direct link to DataFusion v45 Highlights">​</a></h2>
<p>Spice.ai is built on the DataFusion query engine. The v45 release brings:</p>
<ul>
<li>
<p><strong>Faster Performance 🚀</strong>: DataFusion is now the fastest single-node engine for Apache Parquet files in the clickbench benchmark. Performance improved by over 33% from v33 to v45. Arrow StringView is now on by default, making string and binary data queries much faster, especially with Parquet files.</p>
</li>
<li>
<p><strong>Better Quality 📋</strong>: DataFusion now runs over 5 million SQL tests per push using the SQLite sqllogictest suite. There are new checks for logical plan correctness and more thorough pre-release testing.</p>
</li>
<li>
<p><strong>New SQL Functions ✨</strong>: Added <code>show functions</code>, <code>to_local_time</code>, <code>regexp_count</code>, <code>map_extract</code>, <code>array_distance</code>, <code>array_any_value</code>, <code>greatest</code>, <code>least</code>, and <code>arrays_overlap</code>.</p>
</li>
</ul>
<p>See the <a href="https://datafusion.apache.org/blog/2025/02/20/datafusion-45.0.0/" target="_blank" rel="noopener noreferrer">DataFusion 45.0.0 release notes</a> for details.</p>
<p>Spice.ai upgrades to the latest minus one DataFusion release to ensure adequate testing and stability. The next upgrade to DataFusion v46 is planned for Spice v1.3.0 in May.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-new-in-v120">What's New in v1.2.0<a href="https://spiceai.org/blog/releases/v1.2.0#whats-new-in-v120" class="hash-link" aria-label="Direct link to What's New in v1.2.0" title="Direct link to What's New in v1.2.0">​</a></h2>
<ul>
<li>
<p><strong>Parameterized Queries</strong>: Parameterized queries are now supported with the Flight SQL API and HTTP API. Positional and named arguments via <code>$1</code> and <code>:param</code> syntax are supported, respectively. Logical plans for SQL statements are cached for faster repeated queries.</p>
<p>Example Cookbook recipes:</p>
<ul>
<li><a href="https://github.com/spiceai/cookbook/tree/trunk/clients/adbc" target="_blank" rel="noopener noreferrer">Python ADBC Client with Parameterized Queries</a></li>
<li><a href="https://github.com/spiceai/cookbook/tree/trunk/clients/java" target="_blank" rel="noopener noreferrer">Java JDBC Client with Parameterized Queries</a></li>
<li><a href="https://github.com/spiceai/cookbook/tree/trunk/clients/scala" target="_blank" rel="noopener noreferrer">Scala JDBC Client with Parameterized Queries</a></li>
</ul>
<p>See the <a href="https://spiceai.org/docs/api/overview" target="_blank" rel="noopener noreferrer">API Documentation</a> for additional details.</p>
</li>
<li>
<p><strong>Accelerated Views</strong>: Views, not just datasets, can now be accelerated. This provides much better performance for views that perform heavy computation.</p>
<p>Example <code>spicepod.yaml</code>:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">views</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> accelerated_view</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">acceleration</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">engine</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> duckdb</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">primary_key</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> id</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">refresh_check_interval</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> 1h</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">sql</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">|</span><span class="token scalar string" style="color:hsl(119, 34%, 47%)"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token scalar string" style="color:hsl(119, 34%, 47%)">      select * from dataset_a</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token scalar string" style="color:hsl(119, 34%, 47%)">      union all</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token scalar string" style="color:hsl(119, 34%, 47%)">      select * from dataset_b</span><br></span></code></pre></div></div>
<p>See the <a href="https://spiceai.org/docs/features/data-acceleration/" target="_blank" rel="noopener noreferrer">Data Acceleration documentation</a>.</p>
</li>
<li>
<p><strong>Memory Usage Metrics &amp; Configuration</strong>: Runtime now tracks memory usage as a metric, and a new runtime <code>memory_limit</code> parameter is available. The memory limit parameter applies specifically to the runtime and should be used in addition to existing memory usage configuration, such as <code>duckdb_memory_limit</code>. Memory usage for queries beyond the memory limit will spill to disk.</p>
<p>See the <a href="https://spiceai.org/docs/reference/memory" target="_blank" rel="noopener noreferrer">Memory Reference</a> for details.</p>
</li>
<li>
<p><strong>New Worker Component</strong>: Workers are new configurable compute units in the Spice runtime. They help manage compute across models and tools, handle errors, and balance load. Workers are configured in the <code>workers</code> section of <code>spicepod.yaml</code>.</p>
<p>Example <code>spicepod.yaml</code>:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">workers</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> round</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">robin</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">description</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">|</span><span class="token scalar string" style="color:hsl(119, 34%, 47%)"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token scalar string" style="color:hsl(119, 34%, 47%)">      Distributes requests between 'foo' and 'bar' models in a round-robin fashion.</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">models</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> foo</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> bar</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> fallback</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">description</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">|</span><span class="token scalar string" style="color:hsl(119, 34%, 47%)"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token scalar string" style="color:hsl(119, 34%, 47%)">      Tries 'bar' first, then 'foo', then 'baz' if earlier models fail.</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">models</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> foo</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">order</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">2</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> bar</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">order</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> baz</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">order</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">3</span><br></span></code></pre></div></div>
<p>See the <a href="https://spiceai.org/docs/components/workers" target="_blank" rel="noopener noreferrer">Workers Documentation</a> for details.</p>
</li>
<li>
<p><strong>Databricks Model Provider</strong>: Databricks models can now be used with <code>from: databricks:model_name</code>.</p>
<p>Example <code>spicepod.yaml</code>:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">models</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> databricks</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">llama</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">3_2_1_1b_instruct</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> llama</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">instruct</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_endpoint</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> dbc</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">46470731</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">42e5.cloud.databricks.com</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">databricks_token</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">SPICE_DATABRICKS_TOKEN </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><br></span></code></pre></div></div>
</li>
</ul>
<p>See the <a href="https://spiceai.org/docs/components/models/filesystem" target="_blank" rel="noopener noreferrer">Databricks model documentation</a>.</p>
<ul>
<li>
<p><strong><code>spice chat</code> CLI Improvements</strong>: The <code>spice chat</code> command now supports an optional <code>--temperature</code> parameter. A one-shot chat can also be sent with <code>spice chat &lt;message&gt;</code>.</p>
</li>
<li>
<p><strong>More Type Support</strong>: Added support for Postgres JSON type and DuckDB Dictionary type.</p>
</li>
<li>
<p><strong>Other Improvements</strong>:</p>
<ul>
<li>New image tags let you pick memory allocators for different use-cases: <code>jemalloc</code>, <code>sysalloc</code>, and <code>mimalloc</code>.</li>
<li>Better error handling and logging for chat and model operations.</li>
</ul>
</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.2.0#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a></li>
<li><a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a></li>
<li><a href="https://github.com/Jeadie" target="_blank" rel="noopener noreferrer">@Jeadie</a></li>
<li><a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a></li>
<li><a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a></li>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a></li>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.2.0#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<p>New recipes for:</p>
<ul>
<li><a href="https://github.com/spiceai/cookbook/tree/trunk/clients/adbc" target="_blank" rel="noopener noreferrer">Python ADBC Client with Parameterized Queries</a>: Using Parameterized Queries from Python over ADBC.</li>
<li><a href="https://github.com/spiceai/cookbook/tree/trunk/clients/java" target="_blank" rel="noopener noreferrer">Java JDBC Client with Parameterized Queries</a>: Using Parameterized Queries from Java over JDBC.</li>
<li><a href="https://github.com/spiceai/cookbook/tree/trunk/clients/scala" target="_blank" rel="noopener noreferrer">Scala JDBC Client with Parameterized Queries</a>: Using Parameterized Queries from Scala over JDBC.</li>
</ul>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> now includes 68 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.2.0#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.2.0, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.2.0</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.2.0</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.2.0#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.2.0#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<ul>
<li><strong><a href="https://datafusion.apache.org/blog/2025/02/20/datafusion-45.0.0/" target="_blank" rel="noopener noreferrer">DataFusion</a>:</strong> upgraded to v45.</li>
<li><strong><a href="https://github.com/apache/arrow-rs/releases/tag/54.3.0" target="_blank" rel="noopener noreferrer">Apache Arrow</a>:</strong> Upgraded to v54.3.0.</li>
</ul>
<p>Spice is now built with <a href="https://blog.rust-lang.org/2025/02/20/Rust-1.85.0/" target="_blank" rel="noopener noreferrer">Rust 1.85.0 and Rust 2024</a>.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.2.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update end_game.md (#5312) by @peasee in https://github.com/spiceai/spiceai/pull/5312</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Add initial testoperator query validation (#5311) by @peasee in https://github.com/spiceai/spiceai/pull/5311</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update Helm + Prepare for next release (#5317) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5317</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update spicepod.schema.json (#5319) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5319</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- add integration test for reading encrypted PDFs from S3 (#5308) by @kczimm in https://github.com/spiceai/spiceai/pull/5308</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Stop `load_components` during runtime shutdown (#5306) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5306</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json (#5321) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5321</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Implement record batch data validation (#5331) by @peasee in https://github.com/spiceai/spiceai/pull/5331</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update QA analytics for v1.1.1 (#5320) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5320</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots (#5337) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5337</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Enforce pulls with Spice v1.0.4 (#5339) by @lukekim in https://github.com/spiceai/spiceai/pull/5339</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Upgrade to DataFusion 45, Arrow 54, Rust 1.85 &amp; Edition 2024 (#5334) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5334</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Allow validating testoperator in benchmark workflow (#5342) by @peasee in https://github.com/spiceai/spiceai/pull/5342</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Upgrade `delta_kernel` to 0.9 (#5343) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5343</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- deps: Update odbc-api (#5344) by @peasee in https://github.com/spiceai/spiceai/pull/5344</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix schema inference for Snowflake tables with large number of columns (#5348) by @ewgenius in https://github.com/spiceai/spiceai/pull/5348</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Update testoperator dispatch for validation, version metric (#5349) by @peasee in https://github.com/spiceai/spiceai/pull/5349</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: validate_results not validate (#5352) by @peasee in https://github.com/spiceai/spiceai/pull/5352</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- revert to previous pdf-extract; remove test for encrypted pdf support (#5355) by @kczimm in https://github.com/spiceai/spiceai/pull/5355</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Stablize the test `verify_similarity_search_chat_completion` (#5284) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5284</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Turn off `delta_kernel::log_segment` logging and refactor log filtering (#5367) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5367</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Upgrade to DuckDB 1.2.2 (#5375) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5375</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update Readme - fix broken and outdated links (#5376) by @ewgenius in https://github.com/spiceai/spiceai/pull/5376</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Upgrade dependabot dependencies (#5385) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5385</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Remove IMAP oauth (#5386) by @peasee in https://github.com/spiceai/spiceai/pull/5386</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Bump Helm chart to 1.1.2 (#5389) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5389</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Refactor accelerator registry as part of runtime. (#5318) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5318</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Include `vnd.spiceai.sql/nsql.v1+json` response examples (openapi docs) (#5388) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5388</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- docs: Update endgame template with SpiceQA, update qa analytics (#5391) by @peasee in https://github.com/spiceai/spiceai/pull/5391</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Make graceful shutdown timeout configurable (#5358) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5358</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- docs: Update release criteria with note on max columns (#5401) by @peasee in https://github.com/spiceai/spiceai/pull/5401</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json (#5392) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5392</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- FinanceBench: update scorer instructions and switch scoring model to `gpt-4.1` (#5395) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5395</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Write OTel metrics for testoperator (#5397) by @peasee in https://github.com/spiceai/spiceai/pull/5397</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update nsql openapi title (#5403) by @ewgenius in https://github.com/spiceai/spiceai/pull/5403</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Track `ai_inferences_count` with used tools flag. Extensible runtime request context. (#5393) by @ewgenius in https://github.com/spiceai/spiceai/pull/5393</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Include newly detected view as changed view (#5408) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5408</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Track used_tools in ai_inferences_with_spice_count as number (#5409) by @ewgenius in https://github.com/spiceai/spiceai/pull/5409</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json (#5406) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5406</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Tweak enforce pulls with Spice (#5411) by @lukekim in https://github.com/spiceai/spiceai/pull/5411</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Allow `flightsql` and `spiceai` connectors to override flight max message size (#5407) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5407</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Retry model graded scorer once on successful, empty response (#5405) by @Jeadie in https://github.com/spiceai/spiceai/pull/5405</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- use span task name in 'spice trace' tree, not span_id (#5412) by @Jeadie in https://github.com/spiceai/spiceai/pull/5412</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Rename to `track_ai_inferences_with_spice_count` in all places (#5410) by @ewgenius in https://github.com/spiceai/spiceai/pull/5410</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update qa_analytics.csv (#5421) by @peasee in https://github.com/spiceai/spiceai/pull/5421</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Remove the filter for the `list_datasets` tool in the AI inferences metric count. (#5417) by @ewgenius in https://github.com/spiceai/spiceai/pull/5417</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Testoperator uses an exact API key for benchmark metric submission (#5413) by @peasee in https://github.com/spiceai/spiceai/pull/5413</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Enable testoperator metrics in workflow (#5422) by @peasee in https://github.com/spiceai/spiceai/pull/5422</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Upgrade mistral.rs (#5404) by @Jeadie in https://github.com/spiceai/spiceai/pull/5404</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Include all FinanceBench documents in benchmark tests (#5426) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5426</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Handle second Ctrl-C to force runtime termination (#5427) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5427</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add optional `--temperature` parameter for `spice chat` CLI command (#5429) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5429</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Remove `with_runtime_status` from the `RuntimeBuilder` (#5430) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5430</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix spice chat error handling (#5433) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5433</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add more test models to FinanceBench benchmark (#5431) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5431</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- support 'from: databricks:model_name' (#5434) by @Jeadie in https://github.com/spiceai/spiceai/pull/5434</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Upgrade Pulls with Spice to v1.0.6 and add concurrency control (#5442) by @lukekim in https://github.com/spiceai/spiceai/pull/5442</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Upgrade DataFusion table providers (#5443) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5443</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Test spice chat in e2e_test_spice_cli (#5447) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5447</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Allow for one-shot chat request using `spice chat &lt;message&gt;` (#5444) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5444</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Enable parallel data sampling for NSQL (#5449) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5449</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Upgrade Go from v1.23.4 to v1.24.2 (#5462) by @lukekim in https://github.com/spiceai/spiceai/pull/5462</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update PULL_REQUEST_TEMPLATE.md (#5465) by @lukekim in https://github.com/spiceai/spiceai/pull/5465</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Enable captured outputs by default when spiced is started by the CLI (spice run) (#5464) by @lukekim in https://github.com/spiceai/spiceai/pull/5464</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Parameterized queries via Flight SQL API (#5420) by @kczimm in https://github.com/spiceai/spiceai/pull/5420</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmarks readme badge (#5466) by @peasee in https://github.com/spiceai/spiceai/pull/5466</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- delay auth check for binding parameterized queries (#5475) by @kczimm in https://github.com/spiceai/spiceai/pull/5475</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add support for `?` placeholder syntax in parameterized queries (#5463) by @kczimm in https://github.com/spiceai/spiceai/pull/5463</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- enable task name override for non static span names (#5423) by @Jeadie in https://github.com/spiceai/spiceai/pull/5423</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Allow parameter queries with no parameters (#5481) by @kczimm in https://github.com/spiceai/spiceai/pull/5481</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Support unparsing UNION for distinct results (#5483) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5483</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- add rust-toolchain.toml (#5485) by @kczimm in https://github.com/spiceai/spiceai/pull/5485</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add parameterized query support to the HTTP API (#5484) by @kczimm in https://github.com/spiceai/spiceai/pull/5484</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- E2E test for spice chat &lt;message&gt; behavior (#5451) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5451</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Renable and fix huggingface models integration tests (#5478) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5478</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json (#5488) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5488</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Record memory usage as a metric (#5489) by @peasee in https://github.com/spiceai/spiceai/pull/5489</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: update dispatcher to run all benchmarks, rename metric, update spicepods, add scale factor (#5500) by @peasee in https://github.com/spiceai/spiceai/pull/5500</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix ILIKE filters support (#5502) by @ewgenius in https://github.com/spiceai/spiceai/pull/5502</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update test spicepod locations and names (#5505) by @peasee in https://github.com/spiceai/spiceai/pull/5505</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots (#5508) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5508</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots (#5512) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5512</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix Delta Lake bug for: Found unmasked nulls for non-nullable StructArray field "predicate" (#5515) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5515</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: working directory for duckdb e2e test spicepods (#5510) by @peasee in https://github.com/spiceai/spiceai/pull/5510</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Tweaks to README.md (#5516) by @lukekim in https://github.com/spiceai/spiceai/pull/5516</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Cache logical plans of SQL statements (#5487) by @kczimm in https://github.com/spiceai/spiceai/pull/5487</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix `content-type: application/json` (#5517) by @Jeadie in https://github.com/spiceai/spiceai/pull/5517</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Validate postgres results in testoperator dispatch (#5504) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5504</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots (#5511) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5511</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix results cache by SQL with prepared statements (#5518) by @kczimm in https://github.com/spiceai/spiceai/pull/5518</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add initial support for views acceleration (#5509) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5509</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots (#5527) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5527</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Support switching the memory allocator Spice uses via `alloc-*` features. (#5528) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5528</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots (#5525) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5525</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add test spicepod for tpch mysql-duckdb[file acceleration] (#5521) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5521</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix nightly arm build - change tag `-default` to `-models` (#5529) by @ewgenius in https://github.com/spiceai/spiceai/pull/5529</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- LLM router via `worker` spicepod component (#5513) by @Jeadie in https://github.com/spiceai/spiceai/pull/5513</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Apply Spice advanced acceleration logic and params support to accelerated views (#5526) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5526</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Enable DatasetCheckpoint logic for accelerated views (#5533) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5533</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix public '.model' name for router workers (#5535) by @Jeadie in https://github.com/spiceai/spiceai/pull/5535</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Add Runtime memory limit parameter (#5536) by @peasee in https://github.com/spiceai/spiceai/pull/5536</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- For fallback worker, check first item in `chat/completion` stream. (#5537) by @Jeadie in https://github.com/spiceai/spiceai/pull/5537</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Move rate limit check to after parameterized query binding (#5540) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5540</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update spicepod.schema.json (#5545) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5545</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Accelerate views: refresh_on_startup, ready_state, jitter params support (#5547) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5547</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add integration test for accelerated views (#5550) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5550</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Don't install make or expect on spiceai-macos runners (#5554) by @lukekim in https://github.com/spiceai/spiceai/pull/5554</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- `event_stream` crate for emitting events from tracing::Span; used in v1/chat/completions streaming. (#5474) by @Jeadie in https://github.com/spiceai/spiceai/pull/5474</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix typo in method (#5559) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5559</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Run test operator every day and current and previous commits (#5557) by @lukekim in https://github.com/spiceai/spiceai/pull/5557</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add aws_allow_http parameter for delta lake connector (#5541) by @Sevenannn in https://github.com/spiceai/spiceai/pull/5541</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Add branch name to metric dimensions in testoperator (#5563) by @peasee in https://github.com/spiceai/spiceai/pull/5563</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update the tpch benchmark snapshots for: ./test/spicepods/tpch/sf1/federated/odbc[databricks].yaml (#5565) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5565</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Split scheduled dispatch into a separate job (#5567) by @peasee in https://github.com/spiceai/spiceai/pull/5567</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Use outputs.SPICED_COMMIT (#5568) by @peasee in https://github.com/spiceai/spiceai/pull/5568</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Use refs in testoperator dispatch instead of commits (#5569) by @peasee in https://github.com/spiceai/spiceai/pull/5569</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: actions/checkout ref does not take a full ref (#5571) by @peasee in https://github.com/spiceai/spiceai/pull/5571</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Testoperator dispatch (#5572) by @peasee in https://github.com/spiceai/spiceai/pull/5572</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Respect `update-snapshots` when running all benchmarks manually (#5577) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5577</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Use FETCH_HEAD instead of ${{ inputs.ref }} to list commits in setup_spiced (#5579) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5579</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add additional test scenarios for benchmarks (#5582) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5582</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update the tpch benchmark snapshots for: test/spicepods/tpch/sf1/accelerated/databricks[delta_lake]-duckdb[file].yaml (#5590) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5590</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update the tpch benchmark snapshots for: test/spicepods/tpch/sf1/accelerated/mysql-duckdb[file].yaml (#5591) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5591</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix Snowflake data connector rows ordering (#5599) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5599</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots (#5595) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5595</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update the tpch benchmark snapshots for: test/spicepods/tpch/sf1/accelerated/databricks[delta_lake]-arrow.yaml (#5594) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5594</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots (#5589) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5589</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots (#5583) by @app/github-actions in https://github.com/spiceai/spiceai/pull/5583</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Downgrade DuckDB to 1.1.3 (#5607) by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5607</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add prepared statement integration tests (#5544) by @kczimm in https://github.com/spiceai/spiceai/pull/5544</span><br></span></code></pre></div></div>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spiceai/spiceai/compare/v1.1.2...v1.2.0" target="_blank" rel="noopener noreferrer">v1.1.2...v1.2.0</a></p>]]></content>
        <author>
            <name>Evgenii Khramkov</name>
            <uri>https://github.com/ewgenius</uri>
        </author>
        <category label="release" term="release"/>
        <category label="datafusion" term="datafusion"/>
        <category label="arrow" term="arrow"/>
        <category label="sql" term="sql"/>
        <category label="adbc" term="adbc"/>
        <category label="parameterized queries" term="parameterized queries"/>
        <category label="memory" term="memory"/>
        <category label="workers" term="workers"/>
        <category label="databricks" term="databricks"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.1.2 (Apr 14, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.1.2</id>
        <link href="https://spiceai.org/blog/releases/v1.1.2"/>
        <updated>2025-04-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.1.2! 🔗]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.1.2! 🔗</p>
<p>Spice v1.1.2 improves Delta Lake Data Connector performance, introduces new Accept headers for the <code>/v1/sql</code> and <code>/v1/nsql</code> endpoints to include query metadata with results, and resolves an issue with the Snowflake Data Connector when handling wide tables (&gt;600 columns).</p>
<p>The official Tableau Connector for Spice.ai v0.1 has been released, making it easy to connect to both self-hosted Spice.ai and Spice Cloud instances using Tableau.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-new-in-v112">What's New in v1.1.2<a href="https://spiceai.org/blog/releases/v1.1.2#whats-new-in-v112" class="hash-link" aria-label="Direct link to What's New in v1.1.2" title="Direct link to What's New in v1.1.2">​</a></h2>
<ul>
<li>
<p><strong>Tableau Connector for Spice.ai</strong>: Released the initial version (v0.1) of the official Tableau Taco Connector (fully open-source), enabling data visualization and analytics in Tableau with self-hosted Spice.ai and Spice Cloud deployments.</p>
<ul>
<li>Official Release: <a href="https://github.com/spicehq/tableau-connector/releases/tag/v0.1.0" target="_blank" rel="noopener noreferrer">github.com/spicehq/tableau-connector/releases/tag/v0.1.0</a></li>
<li>Docs: <a href="https://spiceai.org/docs/clients/tableau" target="_blank" rel="noopener noreferrer">spiceai.org/docs/clients/tableau</a></li>
<li>Open Source Repository: <a href="https://github.com/spiceai/tableau-connector" target="_blank" rel="noopener noreferrer">github.com/spiceai/tableau-connector</a></li>
</ul>
</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Query Spice.ai using Tableau" src="https://spiceai.org/assets/images/tableau-spice-example-27a6686286692e02aa5001c210af1db2.png" width="2876" height="1618" class="img_ev3q"></p>
<ul>
<li>
<p><strong>Delta Lake Data Connector</strong>: Upgraded <code>delta_kernel</code> to v0.9, and optimized scan operations, reducing query execution time by up to 20% on large datasets.</p>
</li>
<li>
<p><strong>Snowflake Data Connector</strong>: Fixed a bug that caused failures when loading tables with more than 600 columns.</p>
</li>
<li>
<p><strong>Query Metadata (SQL and NSQL)</strong>: Added support for the <code>application/vnd.spiceai.sql.v1+json</code> Accept header on the <code>/v1/sql</code> endpoint, and the <code>application/vnd.spiceai.nsql.v1+json</code> Accept header on the <code>/v1/nsql</code> endpoint, enabling responses to include metadata such as the executed SQL query and schema alongside results.</p>
</li>
</ul>
<p>Example:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token function" style="color:hsl(221, 87%, 60%)">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-XPOST</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"http://localhost:8090/v1/nsql"</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-H</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"Content-Type: application/json"</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-H</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"Accept: application/vnd.spiceai.nsql.v1+json"</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-d</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'{</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)">    "query": "What’s the highest tip any passenger gave?"</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)">  }'</span><span class="token plain"> </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> jq</span><br></span></code></pre></div></div>
<p>Example response:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token property" style="color:hsl(5, 74%, 59%)">"row_count"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">1</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token property" style="color:hsl(5, 74%, 59%)">"schema"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token property" style="color:hsl(5, 74%, 59%)">"fields"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token property" style="color:hsl(5, 74%, 59%)">"name"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"highest_tip"</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token property" style="color:hsl(5, 74%, 59%)">"data_type"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"Float64"</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token property" style="color:hsl(5, 74%, 59%)">"nullable"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token boolean" style="color:hsl(35, 99%, 36%)">true</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token property" style="color:hsl(5, 74%, 59%)">"dict_id"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">0</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token property" style="color:hsl(5, 74%, 59%)">"dict_is_ordered"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token boolean" style="color:hsl(35, 99%, 36%)">false</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token property" style="color:hsl(5, 74%, 59%)">"metadata"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token property" style="color:hsl(5, 74%, 59%)">"metadata"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token property" style="color:hsl(5, 74%, 59%)">"data"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token property" style="color:hsl(5, 74%, 59%)">"highest_tip"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">428.0</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token property" style="color:hsl(5, 74%, 59%)">"sql"</span><span class="token operator" style="color:hsl(221, 87%, 60%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">"SELECT MAX(\"tip_amount\") AS \"highest_tip\"\nFROM \"spice\".\"public\".\"taxi_trips\""</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><br></span></code></pre></div></div>
<p>For details, see the <a href="https://spiceai.org/docs/api/HTTP/post-sql" target="_blank" rel="noopener noreferrer">SQL Query API</a> and <a href="https://spiceai.org/docs/api/HTTP/post-nsql" target="_blank" rel="noopener noreferrer">NSQL API</a> documentation.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.1.2#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a></li>
<li><a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a></li>
<li><a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a></li>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a></li>
<li><a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a></li>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.1.2#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>No breaking changes in this release.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.1.2#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<p>No major cookbook additions.</p>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> now includes 65 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.1.2#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.1.2, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.1.2</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.1.2</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.1.2#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.1.2#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<ul>
<li><strong><a href="https://crates.io/crates/delta_kernel/0.9.0" target="_blank" rel="noopener noreferrer">delta_kernel</a>:</strong> updated to v0.9.0.</li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.1.2#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<ul>
<li>Backport - Fix schema inference for Snowflake tables with large number of columns #5348 by <a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a> in <a href="https://github.com/spiceai/spiceai/pull/5350" target="_blank" rel="noopener noreferrer">#5350</a></li>
<li>Upgrade <code>delta_kernel</code> to 0.9 (#5343) by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5356" target="_blank" rel="noopener noreferrer">#5356</a></li>
<li>Add basic support for <code>application/vnd.spiceai.sql.v1+json</code> format (#5333) by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5333" target="_blank" rel="noopener noreferrer">#5333</a></li>
<li>Convert DataFusion filters to Delta Kernel predicates by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5362" target="_blank" rel="noopener noreferrer">#5362</a></li>
<li>revert to previous pdf-extract; remove test for encrypted pdf support by <a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> in <a href="https://github.com/spiceai/spiceai/pull/5355" target="_blank" rel="noopener noreferrer">#5355</a></li>
<li>Turn off <code>delta_kernel::log_segment</code> logging and refactor log filtering by <a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a> in <a href="https://github.com/spiceai/spiceai/pull/5367" target="_blank" rel="noopener noreferrer">#5367</a></li>
<li>Extend <code>application/vnd.spiceai.sql.v1+json</code> with <code>schema</code> and <code>row_count</code> fields by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5365" target="_blank" rel="noopener noreferrer">#5365</a></li>
<li>Make separate <code>vnd.spiceai.sql.v1+json</code> and <code>vnd.spiceai.nsql.v1+json</code> MIME types by <a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a> in <a href="https://github.com/spiceai/spiceai/pull/5382" target="_blank" rel="noopener noreferrer">#5382</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spiceai/spiceai/compare/v1.1.1...v1.1.2" target="_blank" rel="noopener noreferrer">v1.1.1...v1.1.2</a></p>]]></content>
        <author>
            <name>Phillip LeBlanc</name>
            <uri>https://x.com/leblancphill</uri>
        </author>
        <category label="release" term="release"/>
        <category label="delta" term="delta"/>
        <category label="tableau" term="tableau"/>
        <category label="snowflake" term="snowflake"/>
        <category label="sql" term="sql"/>
        <category label="nsql" term="nsql"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.1.1 (Apr 7, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.1.1</id>
        <link href="https://spiceai.org/blog/releases/v1.1.1"/>
        <updated>2025-04-08T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.1.1! 📊]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.1.1! 📊</p>
<p>Spice v1.1.1 introduces several key updates, including a new Component Metrics System, improved Delta Data Connector performance, improved MCP tool descriptions, and expanded runtime results caching options. This release also adds detailed MySQL connection pool metrics for better observability. Component Metrics are Prometheus-compatible and accessible via the metrics endpoint.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="highlights-v111">Highlights v1.1.1<a href="https://spiceai.org/blog/releases/v1.1.1#highlights-v111" class="hash-link" aria-label="Direct link to Highlights v1.1.1" title="Direct link to Highlights v1.1.1">​</a></h2>
<ul>
<li><strong>Component Metrics System</strong>: A new system for monitoring components, starting with MySQL connection pool metrics. These metrics provide insights into MySQL connection performance and can be selectively enabled in the dataset configuration. Metrics are exposed in Prometheus format via the metrics endpoint.</li>
</ul>
<p>For more details, see the <a href="https://spiceai.org/docs/features/observability/component_metrics" target="_blank" rel="noopener noreferrer">Component Metrics documentation</a>.</p>
<ul>
<li><strong>Results Caching Enhancements</strong>: Added a <code>cache_key_type</code> option for runtime results caching. Options include:<!-- -->
<ul>
<li><strong><code>plan</code> (Default):</strong> Uses the query's logical plan as the cache key. Matches semantically equivalent queries but requires query parsing.</li>
<li><strong><code>sql</code>:</strong> Uses the raw SQL string as the cache key. Provides faster lookups but requires exact string matches. Use <code>sql</code> for predictable queries without dynamic functions like <code>NOW()</code>.</li>
</ul>
</li>
</ul>
<p>Example <code>spicepod.yaml</code> configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">runtime</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">results_cache</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">cache_max_size</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> 128MiB</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">cache_key_type</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> sql </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># Use SQL for the results cache key</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">item_ttl</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> 1s</span><br></span></code></pre></div></div>
<p>For more details, see the <a href="https://spiceai.org/docs/reference/spicepod/runtime.md" target="_blank" rel="noopener noreferrer">runtime configuration documentation</a>.</p>
<ul>
<li>
<p><strong>Delta Data Connector</strong>: Improved scan performance for faster query performance.</p>
</li>
<li>
<p><strong>MCP Tools</strong>: Improved descriptions for built-in MCP tools to improve usability.</p>
</li>
<li>
<p><strong>MySQL Component Metrics</strong>: Added detailed metrics for monitoring MySQL connections, such as connection count and pool activity.</p>
</li>
</ul>
<p>Example <code>spicepod.yaml</code> configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> mysql</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">my_table</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_dataset</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">metrics</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> connection_count</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> connections_in_pool</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> active_wait_requests</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mysql_host</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> localhost</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mysql_tcp_port</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token number" style="color:hsl(35, 99%, 36%)">3306</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mysql_user</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> root</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mysql_pass</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">MYSQL_PASS</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><br></span></code></pre></div></div>
<p>For more details, see the <a href="https://spiceai.org/docs/components/data-connectors/mysql" target="_blank" rel="noopener noreferrer">MySQL Data Connector documentation</a>.</p>
<ul>
<li><strong>spice.js SDK:</strong> The <a href="https://github.com/spiceai/spice.js/releases/v2.0.1" target="_blank" rel="noopener noreferrer"><code>spice.js</code> SDK</a> has been updated to v2.0.1 and includes several important security updates.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="new-contributors-">New Contributors 🎉<a href="https://spiceai.org/blog/releases/v1.1.1#new-contributors-" class="hash-link" aria-label="Direct link to New Contributors 🎉" title="Direct link to New Contributors 🎉">​</a></h2>
<ul>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a> made their first contribution in <a href="https://github.com/spiceai/spiceai/pull/5243" target="_blank" rel="noopener noreferrer">#5243</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.1.1#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li><a href="https://github.com/peasee" target="_blank" rel="noopener noreferrer">@peasee</a></li>
<li><a href="https://github.com/lukekim" target="_blank" rel="noopener noreferrer">@lukekim</a></li>
<li><a href="https://github.com/phillipleblanc" target="_blank" rel="noopener noreferrer">@phillipleblanc</a></li>
<li><a href="https://github.com/Sevenannn" target="_blank" rel="noopener noreferrer">@Sevenannn</a></li>
<li><a href="https://github.com/sgrebnov" target="_blank" rel="noopener noreferrer">@sgrebnov</a></li>
<li><a href="https://github.com/ewgenius" target="_blank" rel="noopener noreferrer">@ewgenius</a></li>
<li><a href="https://github.com/kczimm" target="_blank" rel="noopener noreferrer">@kczimm</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.1.1#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>No breaking changes in this release.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.1.1#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> now includes 65 recipes to help you get started with Spice quickly and easily.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.1.1#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.1.1, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.1.1</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.1.1</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.1.1#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.1.1#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<ul>
<li>No major dependency changes.</li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.1.1#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Testoperator DuckDB, SQLite, Postgres, Spicecloud by [@peasee](https://github.com/peasee) in [#5190](https://github.com/spiceai/spiceai/pull/5190)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update Helm Chart and SECURITY.md to v1.1.0 by [@lukekim](https://github.com/lukekim) in [#5223](https://github.com/spiceai/spiceai/pull/5223)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update version.txt to v1.1.1-unstable by [@lukekim](https://github.com/lukekim) in [#5224](https://github.com/spiceai/spiceai/pull/5224)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update Cargo.lock to v1.1.1-unstable by [@lukekim](https://github.com/lukekim) in [#5225](https://github.com/spiceai/spiceai/pull/5225)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add tests for `verify_schema_source_path` in `ListingTableConnector` by [@phillipleblanc](https://github.com/phillipleblanc) in [#5221](https://github.com/spiceai/spiceai/pull/5221)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Reduce noise from debug logging by [@phillipleblanc](https://github.com/phillipleblanc) in [#5227](https://github.com/spiceai/spiceai/pull/5227)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Improve `openai_test_chat_messages` integration test reliability by [@Sevenannn](https://github.com/Sevenannn) in [#5222](https://github.com/spiceai/spiceai/pull/5222)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Verify the checkpoints existence before shutting down runtime in integration tests directly querying checkpoint by [@Sevenannn](https://github.com/Sevenannn) in [#5232](https://github.com/spiceai/spiceai/pull/5232)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix CORS support for json content-type api by [@sgrebnov](https://github.com/sgrebnov) in [#5241](https://github.com/spiceai/spiceai/pull/5241)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix ModelGradedScorer error: The 'metadata' parameter is only allowed when 'store' is enabled. by [@sgrebnov](https://github.com/sgrebnov) in [#5231](https://github.com/spiceai/spiceai/pull/5231)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Use `pulls-with-spice-action` and switch to `spiceai-macos` runners by [@peasee](https://github.com/peasee) in [#5238](https://github.com/spiceai/spiceai/pull/5238)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Use v1.0.3 pulls with spice action by [@lukekim](https://github.com/lukekim) in [#5244](https://github.com/spiceai/spiceai/pull/5244)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Build ODBC binaries, run testoperator on ODBC by [@peasee](https://github.com/peasee) in [#5237](https://github.com/spiceai/spiceai/pull/5237)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Bump timeout for several integration test runtime load_components &amp; readiness check by [@Sevenannn](https://github.com/Sevenannn) in [#5229](https://github.com/spiceai/spiceai/pull/5229)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Validate port is available before binding port for docker container in integration tests by [@Sevenannn](https://github.com/Sevenannn) in [#5248](https://github.com/spiceai/spiceai/pull/5248)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update datafusion-table-providers to fix the schema for PostgreSQL materialized views by [@ewgenius](https://github.com/ewgenius) in [#5259](https://github.com/spiceai/spiceai/pull/5259)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Verify flight server is ready for flight integration tests by [@Sevenannn](https://github.com/Sevenannn) in [#5240](https://github.com/spiceai/spiceai/pull/5240)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Publish to MinIO inside of matrix on build_and_release by [@peasee](https://github.com/peasee) in [#5258](https://github.com/spiceai/spiceai/pull/5258)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: TPCDS on zero results benchmarks by [@peasee](https://github.com/peasee) in [#5263](https://github.com/spiceai/spiceai/pull/5263)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Use model as a judge scorer for Financebench by [@sgrebnov](https://github.com/sgrebnov) in [#5264](https://github.com/spiceai/spiceai/pull/5264)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix FinanceBench llm scorer secret name by [@sgrebnov](https://github.com/sgrebnov) in [#5276](https://github.com/spiceai/spiceai/pull/5276)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Implements support for `runtime.results_cache.cache_key_type` by [@phillipleblanc](https://github.com/phillipleblanc) in [#5265](https://github.com/spiceai/spiceai/pull/5265)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Testoperator MS SQL, query overrides, dispatcher by [@peasee](https://github.com/peasee) in [#5279](https://github.com/spiceai/spiceai/pull/5279)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- refactor: Delete old benchmarks by [@peasee](https://github.com/peasee) in [#5283](https://github.com/spiceai/spiceai/pull/5283)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Imporve embedding column parsing performance test by [@Sevenannn](https://github.com/Sevenannn) in [#5268](https://github.com/spiceai/spiceai/pull/5268)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add Support for AWS Session Token in S3 Data Connector by [@kczimm](https://github.com/kczimm) in [#5243](https://github.com/spiceai/spiceai/pull/5243)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Implement Component Metrics system + MySQL connection pool metrics by [@phillipleblanc](https://github.com/phillipleblanc) in [#5290](https://github.com/spiceai/spiceai/pull/5290)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add default descriptions to built-in MCP tools by [@lukekim](https://github.com/lukekim) in [#5293](https://github.com/spiceai/spiceai/pull/5293)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Vector search with cased columns by [@peasee](https://github.com/peasee) in [#5295](https://github.com/spiceai/spiceai/pull/5295)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Run delta kernel scan in a blocking Tokio thread. by [@phillipleblanc](https://github.com/phillipleblanc) in [#5296](https://github.com/spiceai/spiceai/pull/5296)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Expose the `mysql_pool_min` and `mysql_pool_max` connection pool parameters by [@phillipleblanc](https://github.com/phillipleblanc) in [#5297](https://github.com/spiceai/spiceai/pull/5297)</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- use patched pdf-extract by [@kczimm](https://github.com/kczimm) in [#5270](https://github.com/spiceai/spiceai/pull/5270)</span><br></span></code></pre></div></div>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spiceai/spiceai/compare/v1.1.0...v1.1.1" target="_blank" rel="noopener noreferrer">v1.1.0...v1.1.1</a></p>]]></content>
        <author>
            <name>Phillip LeBlanc</name>
            <uri>https://x.com/leblancphill</uri>
        </author>
        <category label="release" term="release"/>
        <category label="caching" term="caching"/>
        <category label="mcp" term="mcp"/>
        <category label="spice.js" term="spice.js"/>
        <category label="node.js" term="node.js"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.1.0 (Mar 31, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.1.0</id>
        <link href="https://spiceai.org/blog/releases/v1.1.0"/>
        <updated>2025-04-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Model-Context-Protocol (MCP) support in Spice.ai Open Source]]></summary>
        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" alt="Model-Context-Protocol (MCP) support in Spice.ai Open Source" src="https://spiceai.org/assets/images/mcp-ea1443c9eb03219835e6945023b5b036.png" width="1480" height="928" class="img_ev3q"></p>
<p>Announcing the release of Spice v1.1.0! 🤖</p>
<p>Spice v1.1.0 introduces full support for the <a href="https://modelcontextprotocol.io/" target="_blank" rel="noopener noreferrer">Model-Context-Protocol (MCP)</a>, expanding how models and tools connect. Spice can now act as both an MCP Server, with the new <code>/v1/mcp/sse</code> API, and an MCP Client, supporting stdio and SSE-based servers. This release also introduces a new Web Search tool with Perplexity model support, advanced evaluation workflows with custom eval scorers, including LLM-as-a-judge, and adds an IMAP Data Connector for federated SQL queries across email servers. Alongside these features, v1.1.0 includes automatic NSQL query retries, expanded task tracing, request drains for HTTP server shutdowns, delivering improved reliability, flexibility, and observability.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="highlights-in-v110">Highlights in v1.1.0<a href="https://spiceai.org/blog/releases/v1.1.0#highlights-in-v110" class="hash-link" aria-label="Direct link to Highlights in v1.1.0" title="Direct link to Highlights in v1.1.0">​</a></h2>
<ul>
<li>
<p><strong>Spice as an MCP Server and Client</strong>: Spice now supports the <a href="https://modelcontextprotocol.io/" target="_blank" rel="noopener noreferrer">Model Context Protocol (MCP)</a>, for expanded tool discovery and connectivity. Spice can:</p>
<ol>
<li>Run stdio-based MCP servers internally.</li>
<li>Connect to external MCP servers over SSE protocol (Streamable HTTP is coming soon!)</li>
</ol>
<p>For more details, see the <a href="https://spiceai.org/docs/components/tools/mcp" target="_blank" rel="noopener noreferrer">MCP documentation</a>.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="usage">Usage<a href="https://spiceai.org/blog/releases/v1.1.0#usage" class="hash-link" aria-label="Direct link to Usage" title="Direct link to Usage">​</a></h3>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">tools</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> google_maps</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> mcp</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">npx</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mcp_args</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">y @modelcontextprotocol/server</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">google</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">maps</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="spice-as-an-mcp-server">Spice as an MCP Server<a href="https://spiceai.org/blog/releases/v1.1.0#spice-as-an-mcp-server" class="hash-link" aria-label="Direct link to Spice as an MCP Server" title="Direct link to Spice as an MCP Server">​</a></h3>
<p>Tools in Spice can be accessed via MCP. For example, connecting from an IDE like Cursor or Windsurf to Spice. Set the MCP Server URL to <code>http://localhost:8090/v1/mcp/sse</code>.</p>
</li>
<li>
<p><strong>Perplexity Model Support</strong>: Spice now supports Perplexity-hosted models, enabling advanced web search and retrieval capabilities. Example configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">models</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> webs</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> perplexity</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">sonar</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">perplexity_auth_token</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">SPICE_PERPLEXITY_AUTH_TOKEN </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">perplexity_search_domain_filter</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> docs.spiceai.org</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">        </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> huggingface.co</span><br></span></code></pre></div></div>
<p>For more details, see the <a href="https://spiceai.org/docs/components/models/perplexity" target="_blank" rel="noopener noreferrer">Perplexity documentation</a>.</p>
</li>
<li>
<p><strong>Web Search Tool</strong>: The new Web Search Tool enables Spice models to search the web for information using search engines like Perplexity. Example configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">tools</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> the_internet</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> websearch</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">description</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'Search the web for information.'</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">engine</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> perplexity</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">perplexity_auth_token</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">SPICE_PERPLEXITY_AUTH_TOKEN </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><br></span></code></pre></div></div>
<p>For more details, see the <a href="https://spiceai.org/docs/components/tools/websearch" target="_blank" rel="noopener noreferrer">Web Search Tool documentation</a>.</p>
</li>
<li>
<p><strong>Eval Scorers</strong>: Eval scorers assess model performance on evaluation cases. Spice includes built-in scorers:</p>
<ul>
<li><code>match</code>: Exact match.</li>
<li><code>json_match</code>: JSON equivalence.</li>
<li><code>includes</code>: Checks if actual output includes expected output.</li>
<li><code>fuzzy_match</code>: Normalized subset matching.</li>
<li><code>levenshtein</code>: Levenshtein distance.</li>
</ul>
<p>Custom scorers can use embedding models or LLMs as judges. Example:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">evals</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> australia</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">dataset</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> cricket_questions</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">scorers</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> hf_minilm</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> judge</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> match</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">embeddings</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> hf_minilm</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> huggingface</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">huggingface.co/sentence</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">transformers/all</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">MiniLM</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">L6</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">v2</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">models</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> judge</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> openai</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">gpt</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">4o</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">openai_api_key</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">OPENAI_API_KEY </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">system_prompt</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">|</span><span class="token scalar string" style="color:hsl(119, 34%, 47%)"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token scalar string" style="color:hsl(119, 34%, 47%)">        Compare these stories and score their similarity (0.0 to 1.0).</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token scalar string" style="color:hsl(119, 34%, 47%)">        Story A: {{ .actual }}</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token scalar string" style="color:hsl(119, 34%, 47%)">        Story B: {{ .ideal }}</span><br></span></code></pre></div></div>
<p>For more details, see the <a href="https://spiceai.org/docs/features/large-language-models/evals#Eval-Scorers" target="_blank" rel="noopener noreferrer">Eval Scorers documentation</a>.</p>
</li>
<li>
<p><strong>IMAP Data Connector</strong>: Query emails stored in IMAP servers using federated SQL. Example:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> imap</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">myawesomeemail@gmail.com</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> emails</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">imap_access_token</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain">secrets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">IMAP_ACCESS_TOKEN</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><br></span></code></pre></div></div>
<p>For more details, see the <a href="https://spiceai.org/docs/components/data-connectors/imap" target="_blank" rel="noopener noreferrer">IMAP Data Connector documentation</a>.</p>
</li>
<li>
<p><strong>Automatic NSQL Query Retries</strong>: Failed NSQL queries are now automatically retried, improving reliability for federated queries. For more details, see the <a href="https://spiceai.org/docs/reference/nsql" target="_blank" rel="noopener noreferrer">NSQL documentation</a>.</p>
</li>
<li>
<p><strong>Enhanced Task Tracing</strong>: Task history now includes chat completion IDs, and runtime readiness is traced for better observability. Use the <code>runtime.task_history</code> table to query task details. See the <a href="https://spiceai.org/docs/reference/task_history" target="_blank" rel="noopener noreferrer">Task History documentation</a>.</p>
</li>
<li>
<p><strong>Vector Search with Keyword Filtering:</strong> The vector search API now includes an optional list of keywords as a parameter, to pre-filter SQL results before performing a vector search. When vector searching via a chat completion, models will automatically generate keywords relevant to the search. See the <a href="https://spiceai.org/docs/api/HTTP/post-search" target="_blank" rel="noopener noreferrer">Vector Search API documentation</a>.</p>
</li>
<li>
<p><strong>Improved Refresh Behavior on Startup</strong>: Spice won't automatically refresh an accelerated dataset on startup if it doesn't need to. See the <a href="https://spiceai.org/docs/features/data-acceleration/data-refresh#refresh-on-startup" target="_blank" rel="noopener noreferrer">Refresh on Startup documentation</a>.</p>
</li>
<li>
<p><strong>Graceful Shutdown for HTTP Server</strong>: The HTTP server now drains requests for graceful shutdowns, ensuring smoother runtime termination.</p>
</li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="new-contributors-">New Contributors 🎉<a href="https://spiceai.org/blog/releases/v1.1.0#new-contributors-" class="hash-link" aria-label="Direct link to New Contributors 🎉" title="Direct link to New Contributors 🎉">​</a></h3>
<ul>
<li>@Garamda made their first contribution in <a href="https://github.com/spiceai/spiceai/pull/4840" target="_blank" rel="noopener noreferrer">github.com/spiceai/spiceai/pull/4840</a></li>
<li>@sergey-shandar made their first contribution in <a href="https://github.com/spiceai/spiceai/pull/4868" target="_blank" rel="noopener noreferrer">github.com/spiceai/spiceai/pull/4868</a></li>
<li>@benrussell made their first contribution in <a href="https://github.com/spiceai/spiceai/pull/5126" target="_blank" rel="noopener noreferrer">github.com/spiceai/spiceai/pull/5126</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.1.0#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li>@sgrebnov</li>
<li>@phillipleblanc</li>
<li>@peasee</li>
<li>@Jeadie</li>
<li>@lukekim</li>
<li>@benrussell</li>
<li>@Sevenannn</li>
<li>@sergey-shandar</li>
<li>@Garamda</li>
<li>@johnnynunez</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.1.0#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>No breaking changes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.1.0#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<ul>
<li>New <a href="https://github.com/spiceai/cookbook/mcp/index.md" target="_blank" rel="noopener noreferrer">Model-Context-Protocol (MCP) Recipe</a></li>
<li>New <a href="https://github.com/spiceai/cookbook/imap/index.md" target="_blank" rel="noopener noreferrer">IMAP Data Connector Recipe</a></li>
</ul>
<p>The <a href="https://spiceai.org/cookbook" target="_blank" rel="noopener noreferrer">Spice Cookbook</a> now has 74 recipes that make it easy to get started with Spice!</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.1.0#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.1.0, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the <code>spiceai/spiceai:1.1.0</code> image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.1.0</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.1.0#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.1.0#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<ul>
<li>No major dependency changes.</li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.1.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- release: Bump chart, and versions for next release by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4464&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Schedule testoperator by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4503&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Remove on zero results arguments from benchmarks by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4533&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Don't snapshot clickbench benchmarks by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4534&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- docs: v1.0.1 release note by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/4529&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update acknowledgements by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/4535&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- In spiced_docker, propagate setup to publish-cuda by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4543&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Upgrade Rust to 1.84 by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4541&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Upgrade dependencies by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4546&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Revert "Use OpenAI golang client in `spice chat` (#4491)" by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4564&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: add schema inference for the Spice.ai Data Connector by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4579&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Remove 'tools: builtin' by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4607&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Add initial IMAP connector by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4587&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Add email content loading by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4616&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Add SSL and Auth parameters for IMAP by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4613&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Change /v1/models to be OpenAI compatible by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4624&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Use `pdf-extract` crate to extract text from PDF documents by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4615&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/4628&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add 1.0.2 release notes by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4627&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix cuda::ffi by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4649&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update spicepod.schema.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/4654&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Spice.ai schema inference by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4674&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add SQL Benchmark with sample eval configuration based on TPCH by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4549&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update Helm chart to Spice v1.0.2 by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4655&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update v1.0.2 release notes by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4639&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix E2E AI release install test on self-hosted runners (macos) by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4675&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Main performance metrics calculation for Text to SQL Benchmark by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4681&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add eval datasets / test scripts for model grading criteria by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/4663&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/4684&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add testoperator for `evals` running by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4688&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add GH Workflow to run Text to SQL benchmark by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4689&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add 1.0.2 as supported version to SECURITY.md by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4695&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Text-To-SQL benchmark: trace failed tests by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4705&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Text-To-SQL benchmark: extend list of benchmarking models by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4707&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Text-To-SQL: increase sql coverage, add more advanced tests by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4713&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Use model that supports tools in hf_test by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4712&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix Spice.ai E2E test by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4723&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Return non-existing model for v1/chat endpoint by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/4718&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update Helm chart for 1.0.3 by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4742&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update dependencies by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4740&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update spicepod.schema.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/4744&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update SECURITY.md with 1.0.3 by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4745&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add basic smoke test of perplexity LLM to llm integration tests. by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4735&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Don't run integration tests on PRs when only CLI is changed by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4751&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Prompt user to upgrade through brew / do another clean install when spice is installed through homebrew / at non-standard path by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/4746&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Search with keyword filtering by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4759&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix search benchmark by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4765&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Add IMAP access token parameter by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4769&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/4774&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Mark trunk builds as unstable by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4776&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Release Spice.ai RC by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4753&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Validate columns and keywords in search by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4775&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Run models E2E tests on PR by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4798&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: models runtime not required for cloud chat by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4781&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Only open one PR for openapi.json by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4807&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- docs: Release IMAP Alpha by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4797&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add Results-Cache-Status to indicate query result came from cache by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4809&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Initial spice cli e2e tests with spice upgrade tests by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/4764&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Log CLI and Runtime Versions on startup by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4816&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Sort keys for openai by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4766&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Remove docs index trigger from the endgame template by @ewgenius in &lt;https://github.com/spiceai/spiceai/pull/4832&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Release notes for v1.0.4 by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4827&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update SECURITY.md by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4829&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update spicepod.schema.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/4831&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Don't print URL by @lukekim in &lt;https://github.com/spiceai/spiceai/pull/4838&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- add 'eval_run' to 'spice trace' by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4841&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Run benchmark tests w/o uploading test results (pending improvements) by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4843&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix 'actual" and "output" columns in `eval.results`. by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4835&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix string escaping of system prompt by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4844&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- update helm chart to v1.0.4 by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4828&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/4806&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Skip sccache in PR for external users by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4851&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Return BAD_REQUEST when not embeddings are configured by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4804&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Debug log cuda detection failure in spice by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/4852&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Set RUSTC wrapper explicitly by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4854&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Improve trace UX for `ai_completion`, fix infinite tool calls by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4853&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Allow homebrew spice cli to upgrade the runtime by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/4811&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add support for MCP tools by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4808&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Rustc wrapper actions by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4867&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Provide link to supported OS list when user platform is not supported by @Garamda in &lt;https://github.com/spiceai/spiceai/pull/4840&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Always download spice runtime version matched with spice cli version by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/4761&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Disable flaky integration test by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4871&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: sccache actions setup by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4873&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fixing Go installation in the setup script for Linux Arm64 by @sergey-shandar in &lt;https://github.com/spiceai/spiceai/pull/4868&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/4864&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- DuckDB acceleration: Use temp table only for append with conflict resolution by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4874&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Trace the output of streamed `chat/completions` to runtime.task_history. by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4845&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Always pass `X-API-Key` in spice api calls header if detected in env by @ewgenius in &lt;https://github.com/spiceai/spiceai/pull/4878&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Revert "DuckDB acceleration: Use temp table only for append with conflict resolution" by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4886&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Allow overriding spicerack base url in the CLI by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4892&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add test Spicepod for DuckDB full acceleration with constraints by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4891&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Refactor Parameter Handling by @Advayp in &lt;https://github.com/spiceai/spiceai/pull/4833&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add test Spicepod for DuckDB append acceleration with constraints by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4898&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update to latest async-openai fork. Update secrecy by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/4911&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix mcp tools build by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4916&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add more test spicepods by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/4923&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- task: Add more dispatch files by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4933&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- run spiceai benchmark test using test operator by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/4920&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Convert sequential search code block to parallel async by @Garamda in &lt;https://github.com/spiceai/spiceai/pull/4936&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Throughput metric calculation by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4938&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update dependabot dependencies &amp; `cargo update` by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4872&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Improve servers shutdown sequence during runtime termination by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4942&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Semantic model for views. Views visible in `table_schema` &amp; `list_datasets` tools. by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4946&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- update openai-async by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4948&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/4961&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Redundant results snapshotting by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4956&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Create schema for views if not exist by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4957&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Bump Jimver/cuda-toolkit from 0.2.21 to 0.2.22 by @dependabot in &lt;https://github.com/spiceai/spiceai/pull/4969&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- List available operations in `spice trace &lt;operation&gt;` by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4953&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Initial commit of release analytics by @lukekim in &lt;https://github.com/spiceai/spiceai/pull/4975&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Remove spaces from CSV by @lukekim in &lt;https://github.com/spiceai/spiceai/pull/4977&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix Spice pods watcher by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4984&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Add appendable data sources for the testoperator by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4949&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Omit timestamp when warning regarding datasets with hyphens by @Advayp in &lt;https://github.com/spiceai/spiceai/pull/4987&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update helm chart to v1.0.5 by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4990&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- docs: Update qa_analytics.csv by @peasee in &lt;https://github.com/spiceai/spiceai/pull/4989&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update end_game template by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4991&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update spicepod.schema.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/4993&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add v1.0.5 release notes by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4994&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Supported Versions: include v1.0.5 by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4995&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Dependabot updates by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/4992&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Switch to basic markdown formatting for vector search by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/4934&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- docs: Update qa_analytics.csv by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5001&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Add TPCDS FileAppendableSource for testoperator by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5002&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update `ring` by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/5003&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- docs: Update qa_analytics.csv by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5006&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Add ClickBench FileAppendableSource for testoperator by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5004&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Validate append test table counts by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5008&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Add append spicepods by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5009&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Improve Vector Search performance for large content w/o primary key defined by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5010&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Don't try to downgrade Arc in test_acceleration_duckdb_single_instance by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/5014&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Add an initial testoperator vector search command by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5011&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Update testoperator workflows for automatic snapshot updates by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5018&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix Vector Search when additional columns include embedding column by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5022&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Include test for primary key passed as additional column in Vector Search by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5024&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/5020&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- upgrade mistral.rs by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/4952&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Indexes for TPCDS SQLite Spicepod by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5038&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/5035&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Include local files in generated Spicepod package by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5041&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- update mistral.rs to 'spiceai' branch rev by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/5029&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Configure spiced as an MCP SSE server by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/5039&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/5052&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Disable benchmarks schedule, enable testoperator schedule by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5058&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/5060&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update ROADMAP.md March 2025 by @lukekim in &lt;https://github.com/spiceai/spiceai/pull/5061&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Testoperator data setup by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5068&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: All HTTP endpoints to hang when adding an invalid dataset with --pods-watcher-enabled by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5050&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/5073&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Integration tests for MCP tooling by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/5053&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- OpenAPI docs for MCP by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/5057&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Acceleration federation test by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5090&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Allow spiced commit in testoperator dispatch by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5098&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Use RefreshOverrides for the refresh API definition by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5095&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/5094&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Increase tries for refresh_status_change_to_ready test by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5099&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- feat: Testoperator reports on max and median memory usage by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5101&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update openapi.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/5105&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Fail testoperator on failed queries by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5106&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update Helm chart to 1.0.6 by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/5107&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update SECURITY.md to include 1.0.6 by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/5109&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update spicepod.schema.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/5108&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add QA analytics for 1.0.6 by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/5110&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- add env variables to tools, usable in MCP stdio by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/5097&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- HF downloads obey SIGTERM by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/5044&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add v1.0.6 release notes into trunk by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5111&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Remove redundant mod name for iceberg integration tests by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/5112&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Use fixed data directory for test operator by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/5103&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Improvements for evals by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/5040&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Make McpProxy trait for MCP passthrough by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/5115&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Properly handle '/' for tool names. by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/5116&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Use retry logic when loading tools by @Jeadie in &lt;https://github.com/spiceai/spiceai/pull/5120&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Exclude slow tests from regular pr runs by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/5119&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix test operator snapshot update by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/5130&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- spice init: Fixes windows bug where full path is used for spicepod name by @benrussell in &lt;https://github.com/spiceai/spiceai/pull/5126&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Update benchmark snapshots by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/5131&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Implement graceful shutdown for HTTP server by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5102&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update enhancement.md by @lukekim in &lt;https://github.com/spiceai/spiceai/pull/5142&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add GitHub Workflow and PoC Spicepod configuration to run FinanceBench tests by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5145&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix Postgres and MySQL installation on macos14-runner (E2E CI) by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5155&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- De-duplicate attachments in DuckDBAttachments by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/5156&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- v1.0.7 release note by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/5153&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update spicepod.schema.json by @github-actions in &lt;https://github.com/spiceai/spiceai/pull/5160&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update Helm chart to 1.0.7 by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/5159&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add github token to macos test release download tasks by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/5161&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- update security.md for 1.0.7 by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/5162&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update roadmap.md by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/5163&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add a performance comparison section for 1.0.7 by @phillipleblanc in &lt;https://github.com/spiceai/spiceai/pull/5164&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- docs: Add snafu error variant point to style guide by @peasee in &lt;https://github.com/spiceai/spiceai/pull/5167&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix 1.0.7 release note by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/5168&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Adjust DuckDB connection pool size based on DuckDB accelerator instances usage by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/5117&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add automatic retry for NSQL queries by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5169&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Include chat completion id to task history by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5170&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Trace when all runtime components are ready by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5171&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update qa_analytics.csv for 1.0.7 by @Sevenannn in &lt;https://github.com/spiceai/spiceai/pull/5165&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Set default tool recursion limit to 10 to prevent infinite loops by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5173&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add support for `schema_source_path` param for object-store data connectors by @sgrebnov in &lt;https://github.com/spiceai/spiceai/pull/5178&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Run license check and check changes on self-hosted macOS runners by @lukekim in &lt;https://github.com/spiceai/spiceai/pull/5179&gt;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add MCP by @lukekim in &lt;https://github.com/spiceai/spiceai/pull/5183&gt;</span><br></span></code></pre></div></div>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spiceai/spiceai/compare/v1.0.0...release/1.1" target="_blank" rel="noopener noreferrer">github.com/spiceai/spiceai/compare/v1.0.0...release/1.1</a></p>]]></content>
        <author>
            <name>Luke Kim</name>
            <uri>https://x.com/0xLukeKim</uri>
        </author>
        <category label="release" term="release"/>
        <category label="duckdb" term="duckdb"/>
        <category label="arrow" term="arrow"/>
        <category label="dremio" term="dremio"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.0.7 (Mar 26, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.0.7</id>
        <link href="https://spiceai.org/blog/releases/v1.0.7"/>
        <updated>2025-03-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.0.7 🏎️]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.0.7 🏎️</p>
<p>Spice v1.0.7 improves memory usage when using DuckDB, improves schema inference performance when using object-store based data connectors, and fixes a bug in Dremio schema inference.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="highlights-in-v107">Highlights in v1.0.7<a href="https://spiceai.org/blog/releases/v1.0.7#highlights-in-v107" class="hash-link" aria-label="Direct link to Highlights in v1.0.7" title="Direct link to Highlights in v1.0.7">​</a></h2>
<ul>
<li>
<p><strong>DuckDB Memory Usage</strong>: Memory usage when using DuckDB has been significantly improved for data loads and refreshes through expanded use of zero-copy Arrow and multi-threading for data loads. When a <code>duckdb_memory_limit</code> is specified, disk spilling has been improved for greater-than-memory workloads. In addition, a new <code>temp_directory</code> runtime parameter supports storing temporary files to alternative location than the DuckDB data file for higher throughput. For example, <code>temp_directory</code> could be set to a different high-IOPs IO2 EBS volume that is separate from the <code>duckdb_file_path</code>.</p>
<p>Automated end-to-end tests for the DuckDB Accelerator coverage has been <a href="https://github.com/spiceai/spiceai/pull/5146" target="_blank" rel="noopener noreferrer">significantly expanded</a>.</p>
<p>For configuration details, see the documentation for <a href="https://spiceai.org/docs/reference/spicepod#runtime" target="_blank" rel="noopener noreferrer">runtime parameters</a> and the <a href="https://spiceai.org/docs/components/data-accelerators/duckdb" target="_blank" rel="noopener noreferrer">DuckDB Data Accelerator</a>.</p>
</li>
<li>
<p><strong>Schema Inference Performance for Object-Store Data Connectors</strong>: Schema inference performance has been improved, especially for large numbers of objects (1M+ objects) when using object-store based data connectors by making the object-listing and selection more efficient.</p>
</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="performance">Performance<a href="https://spiceai.org/blog/releases/v1.0.7#performance" class="hash-link" aria-label="Direct link to Performance" title="Direct link to Performance">​</a></h2>
<p>When compared to previous versions, Spice v1.0.7 loads DuckDB accelerated datasets significantly faster. When using the TPCH lineitem dataset at Scale Factor 100 (600M rows):</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="without-indexes">Without Indexes<a href="https://spiceai.org/blog/releases/v1.0.7#without-indexes" class="hash-link" aria-label="Direct link to Without Indexes" title="Direct link to Without Indexes">​</a></h3>
<p>5x faster, 28% less memory usage.</p>
<p><img decoding="async" loading="lazy" src="https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/68efa3c6-caa8-447d-25ee-5081e4c47800/public" alt="v1.0.6" class="img_ev3q">
<img decoding="async" loading="lazy" src="https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/f25b66cd-1826-4f3d-6233-466228858300/public" alt="v1.0.7" class="img_ev3q"></p>
<table><thead><tr><th>Version</th><th>Load Time</th><th>Peak Memory Usage</th></tr></thead><tbody><tr><td>v1.0.6</td><td>16m 3s</td><td>32GB</td></tr><tr><td>v1.0.7</td><td>3m 149ms</td><td>24.4GB</td></tr></tbody></table>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="with-indexes">With Indexes<a href="https://spiceai.org/blog/releases/v1.0.7#with-indexes" class="hash-link" aria-label="Direct link to With Indexes" title="Direct link to With Indexes">​</a></h3>
<p>2.5x faster. Higher memory usage in v1.0.7 is due to better resource utilization to achieve faster load times. Use the <code>duckdb_memory_limit</code> parameter to control memory usage.</p>
<table><thead><tr><th>Version</th><th>Load Time</th><th>Peak Memory Usage</th></tr></thead><tbody><tr><td>v1.0.6</td><td>27m 9s</td><td>50GB</td></tr><tr><td>v1.0.7</td><td>11m 30s</td><td>77GB</td></tr></tbody></table>
<p><img decoding="async" loading="lazy" src="https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/104e7dcf-5f85-47ee-ad6c-7417b0aa8800/public" alt="v1.0.6 with indexes" class="img_ev3q">
<img decoding="async" loading="lazy" src="https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/402c41b4-d81f-4ef4-8878-a06da6916f00/public" alt="v1.0.7 with indexes" class="img_ev3q"></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="documentation">Documentation<a href="https://spiceai.org/blog/releases/v1.0.7#documentation" class="hash-link" aria-label="Direct link to Documentation" title="Direct link to Documentation">​</a></h2>
<ul>
<li><a href="https://spiceai.org/docs/components/data-accelerators/duckdb" target="_blank" rel="noopener noreferrer">DuckDB Data Accelerator</a>: Has been expanded with additional resource usage guidance.</li>
<li><a href="https://spiceai.org/docs/reference/memory" target="_blank" rel="noopener noreferrer">Memory</a>: A new section for memory considerations has been added to the Reference section.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.0.7#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li>@phillipleblanc</li>
<li>@sgrebnov</li>
<li>@peasee</li>
<li>@Sevenannn</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.0.7#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>No breaking changes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.0.7#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.0.7, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the spiceai/spiceai:1.0.7 image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.0.7</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.0.7#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.0.7#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<ul>
<li><a href="https://github.com/datafusion-contrib/datafusion-table-providers" target="_blank" rel="noopener noreferrer">DataFusion Table Providers</a>: Upgraded from <code>760ece6ac52b7d180d697f347642af403c2e711c</code> to <code>9ba9dce19a1fdbd5e22cc2e445c5b3ea731944b4</code>.</li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.0.7#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Remove on zero results arguments from benchmarks by @peasee in https://github.com/spiceai/spiceai/pull/4533</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Run benchmark tests w/o uploading test results (pending improvements) by @sgrebnov in https://github.com/spiceai/spiceai/pull/4843</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Return BAD_REQUEST when not embeddings are configured by @peasee in https://github.com/spiceai/spiceai/pull/4804</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix Dremio schema inference by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5114</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Improve performance of schema inference for object-store data connectors by @sgrebnov in https://github.com/spiceai/spiceai/pull/5124</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Always download spice runtime version matched with spice cli version by @Sevenannn in https://github.com/spiceai/spiceai/pull/4761</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix go lint errors by @sgrebnov in https://github.com/spiceai/spiceai/pull/5147</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Make DuckDB acceleration E2E tests more comprehensive by @sgrebnov in https://github.com/spiceai/spiceai/pull/5146</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Enable Spice to load larger than memory datasets into DuckDB accelerations by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5149</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add `temp_directory` runtime parameter and insert it for DuckDB accelerations by @phillipleblanc in https://github.com/spiceai/spiceai/pull/5152</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix Postgres and MySQL installation on macos14-runner (E2E CI) by @sgrebnov in https://github.com/spiceai/spiceai/pull/5155</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Enable E2E for DuckDB full mode acceleration with indexes only in CI by @sgrebnov in https://github.com/spiceai/spiceai/pull/5154</span><br></span></code></pre></div></div>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spiceai/spiceai/compare/v1.0.6...v1.0.7" target="_blank" rel="noopener noreferrer">github.com/spiceai/spiceai/compare/v1.0.6...v1.0.7</a></p>]]></content>
        <author>
            <name>Phillip LeBlanc</name>
            <uri>https://x.com/leblancphill</uri>
        </author>
        <category label="release" term="release"/>
        <category label="duckdb" term="duckdb"/>
        <category label="arrow" term="arrow"/>
        <category label="dremio" term="dremio"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.0.6 (Mar 17, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.0.6</id>
        <link href="https://spiceai.org/blog/releases/v1.0.6"/>
        <updated>2025-03-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.0.6 ⚡]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.0.6 ⚡</p>
<p>Spice v1.0.6 improves stability for DuckDB acceleration, Iceberg Data/Catalog connector improvements when using AWS Glue, and fixes an issue with the <code>ready_state: on_registration</code> federation fallback when using DuckDB. In addition, redundant data refreshes on startup are avoided for accelerations with persistent data.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="highlights-in-v106">Highlights in v1.0.6<a href="https://spiceai.org/blog/releases/v1.0.6#highlights-in-v106" class="hash-link" aria-label="Direct link to Highlights in v1.0.6" title="Direct link to Highlights in v1.0.6">​</a></h2>
<ul>
<li>
<p><strong>Iceberg Data/Catalog Connector Improvements</strong>: Improves Iceberg data &amp; catalog connector reliability, including bug fixes for AWS Glue API rate-limiting and compatibility, REST API pagination support, explicit AWS credential handling, and support for AWS STS role assumption.</p>
</li>
<li>
<p><strong>Fixes On-Registration Fallback when using DuckDB</strong>: Previously, when using DuckDB as a data accelerator and the <code>ready_state: on_registration</code> configuration, queries made during the initial data refresh did not properly fallback to the federated source. This is now fixed.</p>
</li>
<li>
<p><strong>DuckDB downgraded for Stability</strong>: DuckDB has been downgraded to v1.1.3 due to a regression in memory handling tracked by <a href="https://github.com/duckdb/duckdb/issues/16640" target="_blank" rel="noopener noreferrer">duckdb/duckdb issue #16640</a>. Once resolved and validated, Spice will re-upgrade to v1.2.x.</p>
</li>
<li>
<p><strong>Expanded Integration Tests</strong>: Additional integration tests covering federated accelerator behavior and graceful shutdown processes have been added.</p>
</li>
<li>
<p><strong>Optimized Data Refresh for Persistent Accelerations</strong>: Changed behavior in v1.0.6. When using persistent (file-mode) acceleration without a defined refresh interval, Spice performs a full refresh at startup only if no previously accelerated data is available. This ensures efficient startup behavior by avoiding unnecessary refreshes. This logic applies only to full refreshes when no refresh interval is specified.</p>
</li>
</ul>
<p>To maintain the previous behavior and always refresh on every startup, set:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">acceleration</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">refresh_on_startup</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> always</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.0.6#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li>@peasee</li>
<li>@phillipleblanc</li>
<li>@sgrebnov</li>
<li>@lukekim</li>
<li>@Sevenannn</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.0.6#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>Starting from v1.0.6 when using persistent (file-mode) acceleration without a defined refresh interval, Spice performs a full refresh at startup only if no previously accelerated data is available. To maintain the previous behavior and always refresh on every startup, set:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">acceleration</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">refresh_on_startup</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> always</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.0.6#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<p>No new recipes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.0.6#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.0.6, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the spiceai/spiceai:1.0.6 image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.0.6</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.0.6#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.0.6#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<ul>
<li><a href="https://crates.io/crates/duckdb" target="_blank" rel="noopener noreferrer">duckdb-rs</a>: Downgraded from 1.2.0 to 1.1.3</li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.0.6#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<ul>
<li>Implement proper ready_state: on_registration for federation enabled accelerators by @phillipleblanc in <a href="https://github.com/spiceai/spiceai/pull/5019" target="_blank" rel="noopener noreferrer">#5019</a></li>
<li>Add indexes and primary keys mismatch detection for DuckDB Acceleration by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/5045" target="_blank" rel="noopener noreferrer">#5045</a></li>
<li>Add comprehensive integration tests for the ready_state behavior by @phillipleblanc in <a href="https://github.com/spiceai/spiceai/pull/5042" target="_blank" rel="noopener noreferrer">#5042</a></li>
<li>Add test Spicepod for acceleration with constraints by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/4891" target="_blank" rel="noopener noreferrer">#4891</a></li>
<li>Add test Spicepod for DuckDB append acceleration with constraints by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/4898" target="_blank" rel="noopener noreferrer">#4898</a></li>
<li>Add DuckDB graceful shutdown test to E2E CI tests by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/5047" target="_blank" rel="noopener noreferrer">#5047</a></li>
<li>Update duckdb_append_with_pk_and_indexes.yaml (work for duckdb 1.1.x) by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/5067" target="_blank" rel="noopener noreferrer">#5067</a></li>
<li>fix: Downgrade to DuckDB 1.1.3 by @peasee in <a href="https://github.com/spiceai/spiceai/pull/5055" target="_blank" rel="noopener noreferrer">#5055</a></li>
<li>fix: Acceleration federation integration test by @peasee in <a href="https://github.com/spiceai/spiceai/pull/5070" target="_blank" rel="noopener noreferrer">#5070</a></li>
<li>Improvements to Iceberg Catalog/Data Connector by @phillipleblanc in <a href="https://github.com/spiceai/spiceai/pull/5071" target="_blank" rel="noopener noreferrer">#5071</a></li>
<li>Add Results-Cache-Status to indicate query result came from cache by @phillipleblanc in <a href="https://github.com/spiceai/spiceai/pull/4809" target="_blank" rel="noopener noreferrer">#4809</a></li>
<li>fix: Spice.ai schema inference by @peasee in <a href="https://github.com/spiceai/spiceai/pull/4674" target="_blank" rel="noopener noreferrer">#4674</a></li>
<li>Add <code>refresh_on_startup</code> Spicepod configuration param by @phillipleblanc and @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/5086" target="_blank" rel="noopener noreferrer">#5086</a></li>
<li>Test restart behavior of DuckDB file acceleration against glue iceberg table by @Sevenannn <a href="https://github.com/spiceai/spiceai/pull/5075" target="_blank" rel="noopener noreferrer">#5075</a></li>
<li>Run Iceberg Data Connector - DuckDB File mode integration test by @Sevenannn <a href="https://github.com/spiceai/spiceai/pull/5069" target="_blank" rel="noopener noreferrer">#5069</a></li>
<li>Integration test for glue iceberg catalog by @Sevenannn <a href="https://github.com/spiceai/spiceai/pull/5077" target="_blank" rel="noopener noreferrer">#5077</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spiceai/spiceai/compare/v1.0.5...v1.0.6" target="_blank" rel="noopener noreferrer">https://github.com/spiceai/spiceai/compare/v1.0.5...v1.0.6</a></p>]]></content>
        <author>
            <name>Sergei Grebnov</name>
            <uri>https://github.com/sgrebnov</uri>
        </author>
        <category label="release" term="release"/>
        <category label="duckdb" term="duckdb"/>
        <category label="iceberg" term="iceberg"/>
        <category label="awsglue" term="awsglue"/>
        <category label="acceleration" term="acceleration"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.0.5 (Mar 11, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.0.5</id>
        <link href="https://spiceai.org/blog/releases/v1.0.5"/>
        <updated>2025-03-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.0.5 🧊]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.0.5 🧊</p>
<p>Spice v1.0.5 expands Iceberg support with the introduction of the <strong>Iceberg Data Connector</strong>, in addition to the existing Iceberg Catalog Connector. This new connector enables direct dataset creation and configuration for specific Iceberg objects, enabling federated and accelerated SQL queries on <a href="https://iceberg.apache.org/" target="_blank" rel="noopener noreferrer">Apache Iceberg</a> tables.</p>
<p>Performance improvements include object-store optimized Parquet pruning in append mode, where object-store metadata is now leveraged alongside Hive partitioning to optimize file pruning. This results in faster and more efficient queries.</p>
<p>DuckDB has been upgraded to v1.2.0, along with additional stability improvements, including improved graceful shutdown and the ability to configure the DuckDB memory limit.</p>
<p>Additional updates include support for the Arrow Map type.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="highlights-in-v105">Highlights in v1.0.5<a href="https://spiceai.org/blog/releases/v1.0.5#highlights-in-v105" class="hash-link" aria-label="Direct link to Highlights in v1.0.5" title="Direct link to Highlights in v1.0.5">​</a></h2>
<ul>
<li>
<p><strong>New Iceberg Data Connector</strong>: Enables direct dataset creation and querying of Iceberg tables.</p>
<p>Example usage in <code>spicepod.yaml</code>:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> iceberg</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">https</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">//iceberg</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">catalog</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain">host.com/v1/namespaces/my_namespace/tables/my_table</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_table</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># Same as Iceberg Catalog Connector</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">acceleration</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">      </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><br></span></code></pre></div></div>
<p>For detailed setup instructions, authentication options, and configuration parameters, refer to the <a href="https://spiceai.org/docs/components/data-connectors/iceberg" target="_blank" rel="noopener noreferrer">Iceberg Data Connector documentation</a>.</p>
</li>
<li>
<p><strong>Improved Parquet pruning in append mode</strong>: Uses object-store metadata for more efficient file pruning.</p>
</li>
<li>
<p><strong>DuckDB upgrade to v1.2.0 with improved graceful shutdown</strong>: Read the <a href="https://duckdb.org/2025/02/05/announcing-duckdb-120.html" target="_blank" rel="noopener noreferrer">DuckDB v1.2.0 announcement</a> for details, including breaking changes for <code>map</code> and <code>list_reduce</code>. Graceful shutdown of DuckDB has been improved for better stability across restarts.</p>
</li>
<li>
<p><strong>Configurable DuckDB memory limit</strong>: Use the <code>duckdb_memory_limit</code> parameter to set the DuckDB acceleration memory limit:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> spice.ai</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">path.to.my_dataset</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">   </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_dataset</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">   </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">acceleration</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">     </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">params</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">       </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">duckdb_memory_limit</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">'2GB'</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">     </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">enabled</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:hsl(230, 8%, 24%);font-weight:bold">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">     </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">engine</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> duckdb</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">     </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">mode</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> file</span><br></span></code></pre></div></div>
</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.0.5#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li>@peasee</li>
<li>@phillipleblanc</li>
<li>@sgrebnov</li>
<li>@lukekim</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.0.5#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<ul>
<li><a href="https://duckdb.org/2025/02/05/announcing-duckdb-120.html" target="_blank" rel="noopener noreferrer">DuckDB v1.2.0</a> has breaking changes.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.0.5#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.0.5, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the spiceai/spiceai:1.0.5 image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.0.5</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.0.5#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.0.5#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<ul>
<li><a href="https://crates.io/crates/duckdb" target="_blank" rel="noopener noreferrer">duckdb-rs</a>: Upgraded from 1.1.1 to 1.2.0</li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.0.5#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<ul>
<li>fix: Update OpenAI model health check by @peasee in <a href="https://github.com/spiceai/spiceai/pull/4849" target="_blank" rel="noopener noreferrer">#4849</a></li>
<li>fix: Allow metrics endpoint setting in CLI by @peasee in <a href="https://github.com/spiceai/spiceai/pull/4939" target="_blank" rel="noopener noreferrer">#4939</a></li>
<li>DuckDB acceleration: fix Decimal with zero scale support by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/4922" target="_blank" rel="noopener noreferrer">#4922</a></li>
<li>Introduce runtime shutdown state by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/4917" target="_blank" rel="noopener noreferrer">#4917</a></li>
<li>Add support for Flight and HTTP endpoints configuration to Spice CLI (run and sql) by @sgrebnov and @lukekim in <a href="https://github.com/spiceai/spiceai/pull/4913" target="_blank" rel="noopener noreferrer">#4913</a></li>
<li>Fix Datafusion resources deallocation during shutdown by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/4912" target="_blank" rel="noopener noreferrer">#4912</a></li>
<li>DuckDB: fix error handling during record batch insertion by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/4894" target="_blank" rel="noopener noreferrer">#4894</a></li>
<li>DuckDB: add support for Map Arrow type for DuckDB acceleration by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/4887" target="_blank" rel="noopener noreferrer">#4887</a></li>
<li>Upgrade to DuckDB v1.2.0 by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/4842" target="_blank" rel="noopener noreferrer">#4842</a></li>
<li>Gracefully shutdown the runtime and deallocate static resources by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/4879" target="_blank" rel="noopener noreferrer">#4879</a></li>
<li>Implement an Iceberg Data Connector by @phillipleblanc in <a href="https://github.com/spiceai/spiceai/pull/4941" target="_blank" rel="noopener noreferrer">#4941</a></li>
<li>Don't trace canceled dataset refresh during runtime termination by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/4958" target="_blank" rel="noopener noreferrer">#4958</a></li>
<li>Use metadata column last_modified when specified as a time_column by @phillipleblanc in  <a href="https://github.com/spiceai/spiceai/pull/4970" target="_blank" rel="noopener noreferrer">#4970</a></li>
<li>Add duckdb_memory_limit param support for DuckDB acceleration by @sgrebnov in <a href="https://github.com/spiceai/spiceai/pull/4971" target="_blank" rel="noopener noreferrer">#4971</a></li>
<li>Add Iceberg dataset integration test by @phillipleblanc in <a href="https://github.com/spiceai/spiceai/pull/4950" target="_blank" rel="noopener noreferrer">#4950</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spiceai/spiceai/compare/v1.0.4...v1.0.5" target="_blank" rel="noopener noreferrer">https://github.com/spiceai/spiceai/compare/v1.0.4...v1.0.5</a></p>]]></content>
        <author>
            <name>Sergei Grebnov</name>
            <uri>https://github.com/sgrebnov</uri>
        </author>
        <category label="release" term="release"/>
        <category label="iceberg" term="iceberg"/>
        <category label="parquet" term="parquet"/>
        <category label="duckdb" term="duckdb"/>
        <category label="arrow" term="arrow"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.0.4 (Feb 17, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.0.4</id>
        <link href="https://spiceai.org/blog/releases/v1.0.4"/>
        <updated>2025-02-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.0.4 🏎️]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.0.4 🏎️</p>
<p>Spice v1.0.4 improves partition pruning for Delta Lake tables, significantly increasing scan efficiency and reducing overhead. xAI tool calling is more robust and the <code>spice trace</code> CLI command now provides expanded, detailed output for deeper analysis. Additionally, a bug has been fixed to correctly apply column name case-sensitivity in refresh SQL, indexes, and primary keys.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="highlights-in-v104">Highlights in v1.0.4<a href="https://spiceai.org/blog/releases/v1.0.4#highlights-in-v104" class="hash-link" aria-label="Direct link to Highlights in v1.0.4" title="Direct link to Highlights in v1.0.4">​</a></h2>
<ul>
<li><strong>Improved Append-Based Refresh</strong> When using an append-based acceleration where the <code>time_column</code> format differs from the physical partition, two new dataset configuration options, <code>time_partition_column</code> and <code>time_partition_format</code> can be configured to improve partition pruning and exclude irrelevant partitions during the refreshes.</li>
</ul>
<p>For example, when the <code>time_column</code> format is <code>timestamp</code> and the physical data partition is <code>date</code> such as below:</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">my_delta_table/</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">├── _delta_log/</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">├── </span><span class="token assign-left variable" style="color:hsl(221, 87%, 60%)">date_col</span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token number" style="color:hsl(35, 99%, 36%)">2023</span><span class="token plain">-12-31/</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">├── </span><span class="token assign-left variable" style="color:hsl(221, 87%, 60%)">date_col</span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token number" style="color:hsl(35, 99%, 36%)">2024</span><span class="token plain">-02-04/</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">├── </span><span class="token assign-left variable" style="color:hsl(221, 87%, 60%)">date_col</span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token number" style="color:hsl(35, 99%, 36%)">2025</span><span class="token plain">-01-01/</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">└── </span><span class="token assign-left variable" style="color:hsl(221, 87%, 60%)">date_col</span><span class="token operator" style="color:hsl(221, 87%, 60%)">=</span><span class="token number" style="color:hsl(35, 99%, 36%)">2030</span><span class="token plain">-06-15/</span><br></span></code></pre></div></div>
<p>Partition pruning can be optimized using the configuration:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token key atrule" style="color:hsl(35, 99%, 36%)">datasets</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">from</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> delta_lake</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain">//my_delta_table</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">name</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> my_delta_table</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">time_column</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> created_at </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># A fine-grained timestamp</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">time_format</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> timestamp</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">time_partition_column</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> date_col </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># Data is physically partitioned by `date_col`</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">    </span><span class="token key atrule" style="color:hsl(35, 99%, 36%)">time_partition_format</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">:</span><span class="token plain"> date</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">sgrebnov marked this conversation as resolved.</span><br></span></code></pre></div></div>
<ul>
<li><strong>Expanded <code>spice trace</code> output</strong>: The <code>spice trace</code> CLI command now includes additional details, such as task status, and optional flags <code>--include-input</code> and <code>--include-output</code> for detailed tracing.</li>
</ul>
<p>Example <code>spice trace</code> output:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">TREE                   STATUS DURATION   TASK</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">a97f52ccd7687e64       ✅       673.14ms ai_chat</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  ├── 4eebde7b04321803 ✅         0.04ms tool_use::list_datasets</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  └── 4c9049e1bf1c3500 ✅       671.91ms ai_completion</span><br></span></code></pre></div></div>
<p>Example <code>spice trace --include-input --include-output</code> output:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">TREE                   STATUS DURATION   TASK                    OUTPUT</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">a97f52ccd7687e64       ✅       673.14ms ai_chat                 The capital of New York is Albany.</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  ├── 4eebde7b04321803 ✅         0.04ms tool_use::list_datasets []</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">  └── 4c9049e1bf1c3500 ✅       671.91ms ai_completion           [{"content":"The capital of New York is Albany.","refusal":null,"tool_calls":null,"role":"assistant","function_call":null,"audio":null}]</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.0.4#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li>@Jeadie</li>
<li>@peasee</li>
<li>@phillipleblanc</li>
<li>@Sevenannn</li>
<li>@sgrebnov</li>
<li>@lukekim</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.0.4#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>No breaking changes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.0.4#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<p>No new recipes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.0.4#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.0.4, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the spiceai/spiceai:1.0.4 image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.0.4</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.0.4#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.0.4#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<p>No major dependency changes.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.0.4#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Do not return underlying content of chunked embedding column by default during tool_use::document_similarity by @Jeadie in https://github.com/spiceai/spiceai/pull/4802</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix Snowflake Case-Sensitive Identifiers support by @sgrebnov in https://github.com/spiceai/spiceai/pull/4813</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Prepare for 1.0.4 by @sgrebnov in https://github.com/spiceai/spiceai/pull/4801</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add support for a time_partition_column by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4784</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Prevent the automatic normalization of refresh_sql columns to lowercase by @sgrebnov in https://github.com/spiceai/spiceai/pull/4787</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Implement partition pruning for Delta Lake tables by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4783</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix constraint verification for columns with uppercase letters by @sgrebnov in https://github.com/spiceai/spiceai/pull/4785</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add truncate command for spice trace by @peasee in https://github.com/spiceai/spiceai/pull/4771</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Implement Cache-Control: no-cache to bypass results cache by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4763</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Prompt user to download runtime when running spice sql by @Sevenannn in https://github.com/spiceai/spiceai/pull/4747</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Add vector search tracing by @peasee in https://github.com/spiceai/spiceai/pull/4757</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update spice trace output format by @Jeadie in https://github.com/spiceai/spiceai/pull/4750</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix tool call arguments in Grok messages by @Jeadie in https://github.com/spiceai/spiceai/pull/4741</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">**Full Changelog**: https://github.com/spiceai/spiceai/compare/v1.0.3...v1.0.4</span><br></span></code></pre></div></div>]]></content>
        <author>
            <name>Jack Eadie</name>
            <uri>https://github.com/Jeadie</uri>
        </author>
        <category label="release" term="release"/>
        <category label="embedding" term="embedding"/>
        <category label="vector-search" term="vector-search"/>
        <category label="delta-lake" term="delta-lake"/>
        <category label="cli" term="cli"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Spice v1.0.3 (Feb 10, 2025)]]></title>
        <id>https://spiceai.org/blog/releases/v1.0.3</id>
        <link href="https://spiceai.org/blog/releases/v1.0.3"/>
        <updated>2025-02-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Announcing the release of Spice v1.0.3 🛠️]]></summary>
        <content type="html"><![CDATA[<p>Announcing the release of Spice v1.0.3 🛠️</p>
<p>Spice v1.0.3 provides several bug fixes, including a fix for the initial data load period when a retention policy has been set, and a new <code>unsupported_type_action: string</code> parameter to auto-convert unsupported types to strings.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="highlights-in-v103">Highlights in v1.0.3<a href="https://spiceai.org/blog/releases/v1.0.3#highlights-in-v103" class="hash-link" aria-label="Direct link to Highlights in v1.0.3" title="Direct link to Highlights in v1.0.3">​</a></h2>
<ul>
<li><strong>PostgreSQL Data Connector</strong>: New <code>unsupported_type_action: string</code> parameter that auto-converts unsupported types such as JSONB to strings.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="contributors">Contributors<a href="https://spiceai.org/blog/releases/v1.0.3#contributors" class="hash-link" aria-label="Direct link to Contributors" title="Direct link to Contributors">​</a></h2>
<ul>
<li>@phillipleblanc</li>
<li>@Sevenannn</li>
<li>@sgrebnov</li>
<li>@peasee</li>
<li>@Jeadie</li>
<li>@lukekim</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="breaking-changes">Breaking Changes<a href="https://spiceai.org/blog/releases/v1.0.3#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes">​</a></h2>
<p>No breaking changes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="cookbook-updates">Cookbook Updates<a href="https://spiceai.org/blog/releases/v1.0.3#cookbook-updates" class="hash-link" aria-label="Direct link to Cookbook Updates" title="Direct link to Cookbook Updates">​</a></h2>
<ul>
<li>Updated <a href="https://github.com/spiceai/cookbook/blob/trunk/kubernetes/README.md" target="_blank" rel="noopener noreferrer">Kubernetes Deployment Recipe</a></li>
<li>Updated <a href="https://github.com/spiceai/cookbook/blob/trunk/retention/README.md" target="_blank" rel="noopener noreferrer">Data Retention Recipe</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="upgrading">Upgrading<a href="https://spiceai.org/blog/releases/v1.0.3#upgrading" class="hash-link" aria-label="Direct link to Upgrading" title="Direct link to Upgrading">​</a></h2>
<p>To upgrade to v1.0.3, use one of the following methods:</p>
<p><strong>CLI</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">spice upgrade</span><br></span></code></pre></div></div>
<p><strong>Homebrew</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">brew upgrade spiceai/spiceai/spice</span><br></span></code></pre></div></div>
<p><strong>Docker</strong>:</p>
<p>Pull the spiceai/spiceai:1.0.3 image:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">docker pull spiceai/spiceai:1.0.3</span><br></span></code></pre></div></div>
<p>For available tags, see <a href="https://hub.docker.com/r/spiceai/spiceai/tags" target="_blank" rel="noopener noreferrer">DockerHub</a>.</p>
<p><strong>Helm</strong>:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm repo update</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">helm upgrade spiceai spiceai/spiceai</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whats-changed">What's Changed<a href="https://spiceai.org/blog/releases/v1.0.3#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dependencies">Dependencies<a href="https://spiceai.org/blog/releases/v1.0.3#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h3>
<p>No major dependency changes.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="changelog">Changelog<a href="https://spiceai.org/blog/releases/v1.0.3#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- For local models, use 'content=""' instead of None by @Jeadie and @phillipleblanc in https://github.com/spiceai/spiceai/pull/4646</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Perplexity Sonar LLM component by @Jeadie and @lukekim in https://github.com/spiceai/spiceai/pull/4673</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update async openai fork &amp; support reasoning effort parameter by @Sevenannn and @phillipleblanc in https://github.com/spiceai/spiceai/pull/4679</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Web search tool by @Jeadie and @lukekim in https://github.com/spiceai/spiceai/pull/4687</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Setup tpc-extension by @ewgenius and @phillipleblanc in https://github.com/spiceai/spiceai/pull/4690</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- fix: Use PostgreSQL interval style for Spice.ai by @peasee and @phillipleblanc in https://github.com/spiceai/spiceai/pull/4716</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix spice upgrade command by @Sevenannn and @sgrebnov in https://github.com/spiceai/spiceai/pull/4699</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix bug: Ensure refresh only retrieves data within the retention period by @sgrebnov and @phillipleblanc in https://github.com/spiceai/spiceai/pull/4717</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Implement unsupported_type_action: string for Postgres JSONB support by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4719</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Fix the get latest release logic by @Sevenannn and @phillipleblanc in https://github.com/spiceai/spiceai/pull/4721</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- add 'accelerated_refresh' to 'spice trace' allowlist by @Jeadie and @phillipleblanc in https://github.com/spiceai/spiceai/pull/4711</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Update version to 1.0.3 by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4731</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Truncate embedding columns within sampling tool by @Jeadie in https://github.com/spiceai/spiceai/pull/4722</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">- Validate primary key columns during accelerated dataset initialization by @sgrebnov in https://github.com/spiceai/spiceai/pull/4736</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">**Full Changelog**: https://github.com/spiceai/spiceai/compare/v1.0.2...v1.0.3</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="resources">Resources<a href="https://spiceai.org/blog/releases/v1.0.3#resources" class="hash-link" aria-label="Direct link to Resources" title="Direct link to Resources">​</a></h2>
<ul>
<li><a href="https://docs.spiceai.org/getting-started/" target="_blank" rel="noopener noreferrer">Getting started with Spice.ai</a></li>
<li><a href="https://docs.spiceai.org/" target="_blank" rel="noopener noreferrer">Documentation</a></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="community">Community<a href="https://spiceai.org/blog/releases/v1.0.3#community" class="hash-link" aria-label="Direct link to Community" title="Direct link to Community">​</a></h2>
<p>Spice.ai started with the vision to make AI easy for developers. We are building Spice.ai in the open and with the community. Reach out on Discord or by email to get involved.</p>
<ul>
<li>Twitter: <a href="https://twitter.com/spice_ai" target="_blank" rel="noopener noreferrer">@spice_ai</a></li>
<li>Discord: <a href="https://discord.gg/kZnTfneP5u" target="_blank" rel="noopener noreferrer">https://discord.gg/kZnTfneP5u</a></li>
<li>Telegram: <a href="https://t.me/spiceaichat" target="_blank" rel="noopener noreferrer">Spice AI Discussion</a></li>
<li>Reddit: <a href="https://www.reddit.com/r/spiceai" target="_blank" rel="noopener noreferrer">https://www.reddit.com/r/spiceai</a></li>
<li>Email: <a href="mailto:hey@spice.ai" target="_blank" rel="noopener noreferrer">hey@spice.ai</a></li>
</ul>]]></content>
        <author>
            <name>Phillip LeBlanc</name>
            <uri>https://x.com/leblancphill</uri>
        </author>
        <category label="cli" term="cli"/>
        <category label="runtime" term="runtime"/>
        <category label="performance" term="performance"/>
        <category label="postgres" term="postgres"/>
        <category label="configuration" term="configuration"/>
        <category label="release" term="release"/>
    </entry>
</feed>