1"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([["123643"],{365433(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>s,toc:()=>o});var s=n(211849),a=n(474848),r=n(28453);let t={date:new Date("2025-03-17T00:00:00.000Z"),title:"Spice v1.0.6 (Mar 17, 2025)",type:"blog",authors:["sgrebnov"],tags:["release","duckdb","iceberg","awsglue","acceleration"]},l,c={authorsImageUrls:[void 0]},o=[{value:"Highlights in v1.0.6",id:"highlights-in-v106",level:2},{value:"Contributors",id:"contributors",level:2},{value:"Breaking Changes",id:"breaking-changes",level:2},{value:"Cookbook Updates",id:"cookbook-updates",level:2},{value:"Upgrading",id:"upgrading",level:2},{value:"What's Changed",id:"whats-changed",level:2},{value:"Dependencies",id:"dependencies",level:3},{value:"Changelog",id:"changelog",level:3}];function d(e){let i={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.p,{children:"Announcing the release of Spice v1.0.6 \u26A1"}),"\n",(0,a.jsxs)(i.p,{children:["Spice v1.0.6 improves stability for DuckDB acceleration, Iceberg Data/Catalog connector improvements when using AWS Glue, and fixes an issue with the ",(0,a.jsx)(i.code,{children:"ready_state: on_registration"})," federation fallback when using DuckDB. In addition, redundant data refreshes on startup are avoided for accelerations with persistent data."]}),"\n",(0,a.jsx)(i.h2,{id:"highlights-in-v106",children:"Highlights in v1.0.6"}),"\n",(0,a.jsxs)(i.ul,{children:["\n",(0,a.jsxs)(i.li,{children:["\n",(0,a.jsxs)(i.p,{children:[(0,a.jsx)(i.strong,{children:"Iceberg Data/Catalog Connector Improvements"}),": Improves Iceberg data & 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."]}),"\n"]}),"\n",(0,a.jsxs)(i.li,{children:["\n",(0,a.jsxs)(i.p,{children:[(0,a.jsx)(i.strong,{children:"Fixes On-Registration Fallback when using DuckDB"}),": Previously, when using DuckDB as a data accelerator and the ",(0,a.jsx)(i.code,{children:"ready_state: on_registration"})," configuration, queries made during the initial data refresh did not properly fallback to the federated source. This is now fixed."]}),"\n"]}),"\n",(0,a.jsxs)(i.li,{children:["\n",(0,a.jsxs)(i.p,{children:[(0,a.jsx)(i.strong,{children:"DuckDB downgraded for Stability"}),": DuckDB has been downgraded to v1.1.3 due to a regression in memory handling tracked by ",(0,a.jsx)(i.a,{href:"https://github.com/duckdb/duckdb/issues/16640",children:"duckdb/duckdb issue #16640"}),". Once resolved and validated, Spice will re-upgrade to v1.2.x."]}),"\n"]}),"\n",(0,a.jsxs)(i.li,{children:["\n",(0,a.jsxs)(i.p,{children:[(0,a.jsx)(i.strong,{children:"Expanded Integration Tests"}),": Additional integration tests covering federated accelerator behavior and graceful shutdown processes have been added."]}),"\n"]}),"\n",(0,a.jsxs)(i.li,{children:["\n",(0,a.jsxs)(i.p,{children:[(0,a.jsx)(i.strong,{children:"Optimized Data Refresh for Persistent Accelerations"}),": 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 efficie
1nt startup behavior by avoiding unnecessary refreshes. This logic applies only to full refreshes when no refresh interval is specified."]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(i.p,{children:"To maintain the previous behavior and always refresh on every startup, set:"}),"\n",(0,a.jsx)(i.pre,{children:(0,a.jsx)(i.code,{className:"language-yaml",children:"acceleration:\n refresh_on_startup: always\n"})}),"\n",(0,a.jsx)(i.h2,{id:"contributors",children:"Contributors"}),"\n",(0,a.jsxs)(i.ul,{children:["\n",(0,a.jsx)(i.li,{children:"@peasee"}),"\n",(0,a.jsx)(i.li,{children:"@phillipleblanc"}),"\n",(0,a.jsx)(i.li,{children:"@sgrebnov"}),"\n",(0,a.jsx)(i.li,{children:"@lukekim"}),"\n",(0,a.jsx)(i.li,{children:"@Sevenannn"}),"\n"]}),"\n",(0,a.jsx)(i.h2,{id:"breaking-changes",children:"Breaking Changes"}),"\n",(0,a.jsx)(i.p,{children:"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:"}),"\n",(0,a.jsx)(i.pre,{children:(0,a.jsx)(i.code,{className:"language-yaml",children:"acceleration:\n refresh_on_startup: always\n"})}),"\n",(0,a.jsx)(i.h2,{id:"cookbook-updates",children:"Cookbook Updates"}),"\n",(0,a.jsx)(i.p,{children:"No new recipes."}),"\n",(0,a.jsx)(i.h2,{id:"upgrading",children:"Upgrading"}),"\n",(0,a.jsx)(i.p,{children:"To upgrade to v1.0.6, use one of the following methods:"}),"\n",(0,a.jsxs)(i.p,{children:[(0,a.jsx)(i.strong,{children:"CLI"}),":"]}),"\n",(0,a.jsx)(i.pre,{children:(0,a.jsx)(i.code,{className:"language-console",children:"spice upgrade\n"})}),"\n",(0,a.jsxs)(i.p,{children:[(0,a.jsx)(i.strong,{children:"Homebrew"}),":"]}),"\n",(0,a.jsx)(i.pre,{children:(0,a.jsx)(i.code,{className:"language-console",children:"brew upgrade spiceai/spiceai/spice\n"})}),"\n",(0,a.jsxs)(i.p,{children:[(0,a.jsx)(i.strong,{children:"Docker"}),":"]}),"\n",(0,a.jsx)(i.p,{children:"Pull the spiceai/spiceai:1.0.6 image:"}),"\n",(0,a.jsx)(i.pre,{children:(0,a.jsx)(i.code,{className:"language-console",children:"docker pull spiceai/spiceai:1.0.6\n"})}),"\n",(0,a.jsxs)(i.p,{children:["For available tags, see ",(0,a.jsx)(i.a,{href:"https://hub.docker.com/r/spiceai/spiceai/tags",children:"DockerHub"}),"."]}),"\n",(0,a.jsxs)(i.p,{children:[(0,a.jsx)(i.strong,{children:"Helm"}),":"]}),"\n",(0,a.jsx)(i.pre,{children:(0,a.jsx)(i.code,{className:"language-console",children:"helm repo update\nhelm upgrade spiceai spiceai/spiceai\n"})}),"\n",(0,a.jsx)(i.h2,{id:"whats-changed",children:"What's Changed"}),"\n",(0,a.jsx)(i.h3,{id:"dependencies",children:"Dependencies"}),"\n",(0,a.jsxs)(i.ul,{children:["\n",(0,a.jsxs)(i.li,{children:[(0,a.jsx)(i.a,{href:"https://crates.io/crates/duckdb",children:"duckdb-rs"}),": Downgraded from 1.2.0 to 1.1.3"]}),"\n"]}),"\n",(0,a.jsx)(i.h3,{id:"changelog",children:"Changelog"}),"\n",(0,a.jsxs)(i.ul,{children:["\n",(0,a.jsxs)(i.li,{children:["Implement proper ready_state: on_registration for federation enabled accelerators by @phillipleblanc in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/5019",children:"#5019"})]}),"\n",(0,a.jsxs)(i.li,{children:["Add indexes and primary keys mismatch detection for DuckDB Acceleration by @sgrebnov in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/5045",children:"#5045"})]}),"\n",(0,a.jsxs)(i.li,{children:["Add comprehensive integration tests for the ready_state behavior by @phillipleblanc in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/5042",children:"#5042"})]}),"\n",(0,a.jsxs)(i.li,{children:["Add test Spicepod for acceleration with constraints by @sgrebnov in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/4891",children:"#4891"})]}),"\n",(0,a.jsxs)(i.li,{children:["Add test Spicepod for DuckDB append acceleration with constraints by @sgrebnov in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/4898",children:"#4898"})]}),"\n",(0,a.jsxs)(i.li,{children:["Add DuckDB graceful shutdown test to E2E CI tests by @sgrebnov in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/5047",children:"#5047"})]}),"\n",(0,a.jsxs)(i.li,{children:["Update duckdb_append_with_pk_and_indexes.yaml (work for duckdb 1.1.x) by @sgrebnov in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/5067",children:"#5067"})]}),"\n",(0,a.jsxs)(i.li,{children:["fix: Downgrade to DuckDB 1.1.3 by @peasee in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/5055",children:"#5055"})]}),"\n",(0,a.jsxs)(i.li,{children:["fix: Acceleration federation integration test by @peasee in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/5070",children:"#5070"})]}),"\n",(0,a.jsxs)(i.li,{children:["Improvements to Iceberg Catalog/Data Connector by @phillipleblanc in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/5071",children:"#5071"})]}),"\n",(0,a.jsxs)(i.li,{children:["Add Results-Cache-Status to indicate query result came from cache by @phillipleblanc in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/4809",children:"#4809"})]}),"\n",(0,a.jsxs)(i.li,{children:["fix: Spice.ai schema inference by @peasee in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/4674",children:"#4674"})]}
1),"\n",(0,a.jsxs)(i.li,{children:["Add ",(0,a.jsx)(i.code,{children:"refresh_on_startup"})," Spicepod configuration param by @phillipleblanc and @sgrebnov in ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/5086",children:"#5086"})]}),"\n",(0,a.jsxs)(i.li,{children:["Test restart behavior of DuckDB file acceleration against glue iceberg table by @Sevenannn ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/5075",children:"#5075"})]}),"\n",(0,a.jsxs)(i.li,{children:["Run Iceberg Data Connector - DuckDB File mode integration test by @Sevenannn ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/5069",children:"#5069"})]}),"\n",(0,a.jsxs)(i.li,{children:["Integration test for glue iceberg catalog by @Sevenannn ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/pull/5077",children:"#5077"})]}),"\n"]}),"\n",(0,a.jsxs)(i.p,{children:[(0,a.jsx)(i.strong,{children:"Full Changelog"}),": ",(0,a.jsx)(i.a,{href:"https://github.com/spiceai/spiceai/compare/v1.0.5...v1.0.6",children:"https://github.com/spiceai/spiceai/compare/v1.0.5...v1.0.6"})]})]})}function h(e={}){let{wrapper:i}={...(0,r.R)(),...e.components};return i?(0,a.jsx)(i,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},28453(e,i,n){n.d(i,{R:()=>t,x:()=>l});var s=n(296540);let a={},r=s.createContext(a);function t(e){let i=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:t(e.components),s.createElement(r.Provider,{value:i},e.children)}},211849(e){e.exports=JSON.parse('{"permalink":"/releases/v1.0.6","editUrl":"https://github.com/spiceai/docs/edit/trunk/website/releases/v1.0.6.md","source":"@site/releases/v1.0.6.md","title":"Spice v1.0.6 (Mar 17, 2025)","description":"Announcing the release of Spice v1.0.6 \u26A1","date":"2025-03-17T00:00:00.000Z","tags":[{"inline":false,"label":"release","permalink":"/releases/tags/releases","description":"Release notes and updates"},{"inline":false,"label":"duckdb","permalink":"/releases/tags/duckdb","description":"DuckDB database topics and usage"},{"inline":false,"label":"iceberg","permalink":"/releases/tags/iceberg","description":"Iceberg Catalong Connector related topics and usage"},{"inline":false,"label":"AWS Glue","permalink":"/releases/tags/awsglue","description":"AWS Glue related topics and usage."},{"inline":false,"label":"acceleration","permalink":"/releases/tags/acceleration","description":"Topics related to acceleration techniques and tools"}],"readingTime":3.38,"hasTruncateMarker":false,"authors":[{"name":"Sergei Grebnov","title":"Member of Technical Staff at Spice AI","url":"https://github.com/sgrebnov","page":{"permalink":"/releases/authors/sgrebnov"},"socials":{"github":"https://github.com/sgrebnov","linkedin":"https://www.linkedin.com/in/sgrebnov/"},"imageURL":"https://github.com/sgrebnov.png","key":"sgrebnov"}],"frontMatter":{"date":"2025-03-17T00:00:00.000Z","title":"Spice v1.0.6 (Mar 17, 2025)","type":"blog","authors":["sgrebnov"],"tags":["release","duckdb","iceberg","awsglue","acceleration"]},"unlisted":false,"lastUpdatedAt":1790868039000,"lastUpdatedBy":"emma","prevItem":{"title":"Spice v1.0.7 (Mar 26, 2025)","permalink":"/releases/v1.0.7"},"nextItem":{"title":"Spice v1.0.5 (Mar 11, 2025)","permalink":"/releases/v1.0.5"}}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.