Skip to content

Commit 9a366d3

Browse files
authored
Update NEXT_CHANGELOG with detailed breaking changes for 3.4.1 (#1449)
## Summary Expand the BREAKING CHANGES section in NEXT_CHANGELOG.md with full details of metadata JDBC spec compliance changes for 3.4.1. ### Changes - Restructured from numbered list to detailed bullet points with migration guidance - Added missing breaking changes: empty types array, information_schema inclusion, getPrimaryKeys/getImportedKeys empty ResultSet, UPDATE_RULE/DELETE_RULE semantics - Added "Enhancements & New Features" section for the unified metadata backend - Moved geospatial default-enabled change into breaking changes section This pull request was AI-assisted by Isaac. --------- Signed-off-by: Gopal Lal <gopal.lal@databricks.com>
1 parent 727db4c commit 9a366d3

1 file changed

Lines changed: 30 additions & 5 deletions

File tree

NEXT_CHANGELOG.md

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,44 @@
22

33
## [Unreleased]
44

5-
### BREAKING CHANGES in 3.4.1
5+
### BREAKING CHANGES in 3.4.1 — Metadata JDBC Spec Compliance
66

7-
1. **`getTables()`: Percent sign (`%`) in catalog argument is now treated as a literal character, not a wildcard.** Previously returned all tables; now returns zero rows unless a catalog named "%" exists. JDBC spec: catalog is an exact-match parameter, not a pattern. Migration: Pass `null` to search all catalogs.
7+
This release unifies metadata behavior across Thrift and SQL Exec API backends
8+
using SQL SHOW commands for all metadata operations on SQL warehouses. Several
9+
non-spec-compliant behaviors have been corrected. Review the changes below before
10+
upgrading. These changes do not affect metadata on All-Purpose Clusters.
811

9-
2. **`getColumnTypeName()`: DECIMAL columns now return `"DECIMAL"` without precision/scale** (e.g., `"DECIMAL"` not `"DECIMAL(10,2)"`). Use `getPrecision()` and `getScale()` for numeric constraints. JDBC spec: `getColumnTypeName()` returns the base type name only.
12+
* **`getTables`/`getColumns`/`getSchemas`: Catalog parameter is now treated as
13+
an exact-match identifier per JDBC spec.** Passing `%` or wildcard patterns as
14+
catalog previously returned results across all catalogs.
15+
Use `null` to search all catalogs.
1016

11-
3. **For DBSQL warehouses, metadata operations are now powered by SHOW SQL commands.** SQL Exec API mode already was powered by SHOW commands, now the same is true for Thrift server mode as well. To revert to native Thrift metadata RPCs, set `UseQueryForMetadata` to `0`.
17+
* **`getTables` with empty types array: Now returns zero rows per JDBC spec.**
18+
Use `null` to return all types.
1219

13-
4. **Native geospatial type support (`GEOMETRY` and `GEOGRAPHY`) is now enabled by default.** `getObject()` now returns `IGeometry`/`IGeography` instances instead of EWKT strings. Set `EnableGeoSpatialSupport=0` to restore the previous behavior.
20+
* **`getSchemas`: Now includes `information_schema` in results.** Excludes
21+
`global_temp` schema (previously returned by Thrift for all catalogs).
22+
23+
* **`getPrimaryKeys`/`getImportedKeys`/`getCrossReference` with non-existent
24+
catalog, schema, or table: Now returns empty `ResultSet` instead of throwing
25+
`SQLException`.**
26+
27+
* **`getImportedKeys` `UPDATE_RULE`/`DELETE_RULE`: Now returns `3` (`NO_ACTION`)
28+
instead of `0` (`CASCADE`) for Thrift, and `3` instead of `null` for SEA.**
29+
This reflects that Unity Catalog foreign keys are informational and non-enforced.
30+
31+
* **Native geospatial type support (`GEOMETRY` and `GEOGRAPHY`) is now enabled
32+
by default.** `getObject()` now returns `IGeometry`/`IGeography` instances
33+
instead of EWKT strings. Set `EnableGeoSpatialSupport=0` to restore the
34+
previous behavior.
1435

1536
### Added
37+
- Metadata operations now use SQL SHOW commands for both Thrift and SEA backends,
38+
ensuring consistent behavior for SQL warehouses regardless of underlying
39+
protocol. To revert to native Thrift metadata RPCs, set `UseQueryForMetadata=0`.
1640

1741
### Updated
42+
- `getColumnTypeName()` for DECIMAL columns now preserves precision/scale suffix (e.g., `"DECIMAL(10,2)"`) consistently across both Thrift and SEA backends.
1843
- `EnableGeoSpatialSupport` no longer requires `EnableComplexDatatypeSupport=1`. Geospatial types (GEOMETRY, GEOGRAPHY) can now be enabled independently of complex type support (ARRAY, MAP, STRUCT).
1944
- Arrow schema deserialization failures (Thrift metadata path) now surface a dedicated driver error code `ARROW_SCHEMA_PARSING_ERROR` (vendor code `22000`) and a proper SQLSTATE `22000` (Data Exception) on the thrown `SQLException`, instead of the generic `RESULT_SET_ERROR` (1004) and the enum name as SQLSTATE. The exception message is unchanged.
2045
- When a Statement is re-executed, the previous server-side operation is now explicitly closed before starting the new execution, preventing orphaned server-side operations when Statements are reused.

0 commit comments

Comments
 (0)