Skip to content

Commit 70c0e58

Browse files
committed
fix: prevent snowflake→snowflake vendor_bridge false positive; improve Databricks limitations
Add read-side none override for snowflake on vendor_bridge to prevent combine(full, full) = full for the snowflake→snowflake pair. Sharpen DBR version string and add manual refresh limitation.
1 parent 8378781 commit 70c0e58

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

src/data/compatibility.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,4 +213,8 @@ describe('vendor_bridge catalog', () => {
213213
expect(entry?.sourceUrl).toBeDefined();
214214
expect(entry?.sourceUrl?.length).toBeGreaterThan(0);
215215
});
216+
217+
it('snowflake cannot read vendor_bridge (not a Catalog Federation consumer)', () => {
218+
expect(engineReadRules.snowflake?.vendor_bridge?.support).toBe('none');
219+
});
216220
});

src/data/compatibility.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,9 @@ export const engineCatalogRules: Record<EngineId, EngineRule> = {
144144
// Read-side overrides: where an engine's READ catalog capability differs from its WRITE capability.
145145
// Most engines: same rules both ways. Exceptions captured here.
146146
export const engineReadRules: Partial<Record<EngineId, Partial<EngineRule>>> = {
147+
snowflake: {
148+
vendor_bridge: { support: 'none', limitations: [] },
149+
},
147150
databricks: {
148151
// Databricks can READ from external REST catalogs (including BigLake Metastore) via Spark,
149152
// even though it cannot WRITE to them.
@@ -164,10 +167,11 @@ export const engineReadRules: Partial<Record<EngineId, Partial<EngineRule>>> = {
164167
]},
165168
vendor_bridge: { support: 'partial', limitations: [
166169
'Requires Snowflake Catalog Federation configured in Unity Catalog (foreign catalog)',
167-
'Databricks Runtime 13.3 LTS+ or Databricks SQL 2023.40+ required',
170+
'Databricks Runtime 13.3 LTS+ or Databricks SQL 2023.40+ required; DBR 16.4 LTS+ recommended for full feature support',
168171
'External location in Unity Catalog must cover the Snowflake table storage path',
169172
'Non-Iceberg Snowflake tables permanently fall back to JDBC query federation (slower)',
170173
'Tables with URI-incompatible locations or unsupported storage schemes also fall back to JDBC',
174+
'Foreign Iceberg tables require manual metadata refresh (ALTER TABLE) to reflect Snowflake writes in Databricks',
171175
], sourceUrl: 'https://docs.databricks.com/aws/en/query-federation/snowflake-catalog-federation' },
172176
},
173177
};

0 commit comments

Comments
 (0)