@@ -72,14 +72,24 @@ export const engineCatalogRules: Record<EngineId, EngineRule> = {
7272 hive : { support : 'full' , limitations : [ ] } ,
7373 s3tables : { support : 'none' , limitations : [ ] } ,
7474 unity : { support : 'full' , limitations : [ ] } ,
75- ducklake : { support : 'none' , limitations : [ ] } ,
75+ ducklake : { support : 'partial' , limitations : [
76+ 'Requires the DuckLake Spark client (maintained by MotherDuck)' ,
77+ 'DuckDB-backed catalog must be served via Quack for remote access — local DuckDB file not directly accessible' ,
78+ ] , sourceUrls : [
79+ 'https://ducklake.select/' ,
80+ 'https://motherduck.com/blog/announcing-ducklake-1-0-on-motherduck/' ,
81+ ] } ,
7682 vendor_bridge : { support : 'none' , limitations : [ ] } ,
7783 } ,
7884 duckdb : {
7985 glue : { support : 'none' , limitations : [ ] } ,
8086 rest : { support : 'partial' , limitations : [
81- 'DuckDB Iceberg REST catalog write support added in v1.4.0 — still maturing' ,
87+ 'REST catalog write added in v1.4.0; standard SQL syntax (INSERT/UPDATE/DELETE) requires v1.4.2+' ,
88+ 'UPDATE and DELETE only supported on non-partitioned, non-sorted tables' ,
89+ 'Merge-on-read semantics only — no copy-on-write' ,
8290 'Not recommended for production write workloads' ,
91+ ] , sourceUrls : [
92+ 'https://duckdb.org/2025/11/28/iceberg-writes-in-duckdb' ,
8393 ] } ,
8494 hive : { support : 'none' , limitations : [ ] } ,
8595 s3tables : { support : 'partial' , limitations : [
@@ -91,7 +101,13 @@ export const engineCatalogRules: Record<EngineId, EngineRule> = {
91101 'Known issues with HTTP 500 errors on some commit operations' ,
92102 'Not recommended for production write workloads' ,
93103 ] } ,
94- ducklake : { support : 'none' , limitations : [ ] } ,
104+ ducklake : { support : 'partial' , limitations : [
105+ 'Requires the ducklake extension: INSTALL ducklake; LOAD ducklake;' ,
106+ 'Local DuckDB file catalog is single-writer; a Quack catalog server is required for concurrent or cross-engine writers' ,
107+ ] , sourceUrls : [
108+ 'https://ducklake.select/' ,
109+ 'https://duckdb.org/2026/05/12/quack-remote-protocol' ,
110+ ] } ,
95111 vendor_bridge : { support : 'none' , limitations : [ ] } ,
96112 } ,
97113 redshift : {
@@ -120,7 +136,12 @@ export const engineCatalogRules: Record<EngineId, EngineRule> = {
120136 'Trino connects to Unity Catalog via Iceberg REST, but write requires security mode adjustments and is not GA in OSS Trino' ,
121137 'Writes via Unity Catalog Iceberg REST create Managed Iceberg tables only — existing Delta tables are read-only via this interface' ,
122138 ] } ,
123- ducklake : { support : 'none' , limitations : [ ] } ,
139+ ducklake : { support : 'partial' , limitations : [
140+ 'Requires a DuckLake Trino connector' ,
141+ 'DuckDB-backed catalog must be served via Quack for remote access — local DuckDB file not directly accessible' ,
142+ ] , sourceUrls : [
143+ 'https://ducklake.select/' ,
144+ ] } ,
124145 vendor_bridge : { support : 'none' , limitations : [ ] } ,
125146 } ,
126147 athena : {
@@ -189,8 +210,12 @@ export const pairOverrides: Partial<Record<PairKey, EngineRule>> = {
189210 'duckdb__duckdb' : {
190211 glue : { support : 'none' , limitations : [ ] } ,
191212 rest : { support : 'partial' , limitations : [
192- 'DuckDB REST catalog write support added in v1.4.0 — still maturing' ,
213+ 'REST catalog write added in v1.4.0; standard SQL syntax (INSERT/UPDATE/DELETE) requires v1.4.2+' ,
214+ 'UPDATE and DELETE only supported on non-partitioned, non-sorted tables' ,
215+ 'Merge-on-read semantics only — no copy-on-write' ,
193216 'Not recommended for production workloads' ,
217+ ] , sourceUrls : [
218+ 'https://duckdb.org/2025/11/28/iceberg-writes-in-duckdb' ,
194219 ] } ,
195220 hive : { support : 'none' , limitations : [ ] } ,
196221 s3tables : { support : 'partial' , limitations : [
@@ -203,9 +228,12 @@ export const pairOverrides: Partial<Record<PairKey, EngineRule>> = {
203228 'Not recommended for production write workloads' ,
204229 ] } ,
205230 ducklake : { support : 'partial' , limitations : [
206- 'DuckLake stores catalog metadata in a DuckDB database file — not accessible by other engines' ,
207231 'Requires the ducklake extension: INSTALL ducklake; LOAD ducklake;' ,
208- 'Designed for single-engine local use cases — not suitable for cross-platform sharing' ,
232+ 'Local DuckDB file catalog is single-writer only' ,
233+ 'Concurrent multi-writer access requires a Quack catalog server (beta in v1.5, GA planned with DuckDB v2.0)' ,
234+ ] , sourceUrls : [
235+ 'https://ducklake.select/2026/04/13/ducklake-10/' ,
236+ 'https://duckdb.org/2026/05/12/quack-remote-protocol' ,
209237 ] } ,
210238 vendor_bridge : { support : 'none' , limitations : [ ] } ,
211239 } ,
0 commit comments