Skip to content

Commit 6317c1e

Browse files
gopalldbclaude
andauthored
Release v3.0.5 (#1095)
## Description Release v3.0.5 ## Changes This release includes: ### Added - Added support for high-performance batched writes with parameter interpolation: - `supportManyParameters=1`: Enables parameter interpolation to bypass 256-parameter limit (default: 0) - `EnableBatchedInserts=1`: Enables multi-row INSERT batching (default: 0) - `BatchInsertSize=<SIZE>`: Maximum rows per batch (default: 1000) - Note: Large batches are chunked for execution. If a chunk fails, previous chunks remain committed (no transaction rollback). Consider using staging tables for critical workflows. - Added Feature-flag integration for SQL Exec API rollout - Call statements will return result sets in response ### Updated - Minimized OAuth requests by reducing calls in feature flags and telemetry. ### Fixed - Fix: SQLInterpolator failing to escape temporal fields and special characters. - Fixed: Errors in table creation when using BIGINT, SMALLINT, TINYINT, or VOID types. - Fixed: PreparedStatement.getMetaData() now correctly reports TINYINT columns as Types.TINYINT (java.lang.Byte) instead of Types.SMALLINT (java.lang.Integer). - Fixed: TINYINT to String conversion to return numeric representation (e.g., "65") instead of character representation (e.g., "A"). - Fixed: Complex types (Structs, arrays, maps) now show detailed type information in metadata calls in Thrift mode ## Testing Version bump and release notes have been updated across all relevant files. OVERRIDE_FREEZE=true --------- Co-authored-by: Claude <[email protected]>
1 parent 3f2099c commit 6317c1e

File tree

14 files changed

+67
-44
lines changed

14 files changed

+67
-44
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ If available, share redacted client side logs
2626
- OS: [e.g. Windows]
2727
- Java version [e.g. Java 21]
2828
- Java vendor [e.g. OpenJDK]
29-
- Driver Version [e.g. 3.0.4]
29+
- Driver Version [e.g. 3.0.5]
3030
- BI Tool (if used) [e.g. DBeaver]
3131
- BI Tool version (if applicable) [e.g. 24.3.5]
3232

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,31 @@
11
# Version Changelog
2+
## [v3.0.5] - 2025-11-20
3+
4+
### Added
5+
- Added support for high-performance batched writes with parameter interpolation:
6+
- `supportManyParameters=1`: Enables parameter interpolation to bypass 256-parameter limit (default: 0)
7+
- `EnableBatchedInserts=1`: Enables multi-row INSERT batching (default: 0)
8+
- `BatchInsertSize=<SIZE>`: Maximum rows per batch (default: 1000)
9+
- Note: Large batches are chunked for execution. If a chunk fails, previous chunks remain committed (no transaction rollback). Consider using staging tables for critical workflows.
10+
- Added Feature-flag integration for SQL Exec API rollout
11+
- Call statements will return result sets in response
12+
- Add a gating flag for enabling GeoSpatial support: `EnableGeoSpatialSupport`. By default, it will be disabled
13+
14+
### Updated
15+
- Minimized OAuth requests by reducing calls in feature flags and telemetry.
16+
- Geospatial `getWKB()` now returns OGC-compliant WKB values.
17+
18+
### Fixed
19+
- Fix: SQLInterpolator failing to escape temporal fields and special characters.
20+
- Fixed: Errors in table creation when using BIGINT, SMALLINT, TINYINT, or VOID types.
21+
- Fixed: PreparedStatement.getMetaData() now correctly reports TINYINT columns as Types.TINYINT (java.lang.Byte) instead of Types.SMALLINT (java.lang.Integer).
22+
- Fixed: TINYINT to String conversion to return numeric representation (e.g., "65") instead of character representation (e.g., "A").
23+
- Fixed: Complex types (Structs, arrays, maps) now show detailed type information in metadata calls in Thrift mode
24+
- Fixed: incorrect chunk download/processing status codes.
25+
- Shade SLF4J to avoid conflicts with user applications.
26+
27+
---
28+
229
## [v3.0.4] - 2025-11-12
330

431
### Added

NEXT_CHANGELOG.md

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,10 @@
33
## [Unreleased]
44

55
### Added
6-
- Added support for geospatial data types.
7-
- Added support for telemetry log levels, which can be controlled via the connection parameter `TelemetryLogLevel`. This allows users to configure the verbosity of telemetry logging from OFF to TRACE.
8-
- Added full support for JDBC transaction control methods in Databricks. Transaction support in Databricks is currently available as a Private Preview. The `IgnoreTransactions` connection parameter can be set to `1` to disable or no-op transaction control methods.
9-
- Added support for high-performance batched writes with parameter interpolation:
10-
- `supportManyParameters=1`: Enables parameter interpolation to bypass 256-parameter limit (default: 0)
11-
- `EnableBatchedInserts=1`: Enables multi-row INSERT batching (default: 0)
12-
- `BatchInsertSize=<SIZE>`: Maximum rows per batch (default: 1000)
13-
- Note: Large batches are chunked for execution. If a chunk fails, previous chunks remain committed (no transaction rollback). Consider using staging tables for critical workflows.
14-
- Added a new config attribute `DisableOauthRefreshToken` to control whether refresh tokens are requested in OAuth exchanges. By default, the driver does not include the `offline_access` scope. If `offline_access` is explicitly provided by the user, it is preserved and not removed.
15-
- Added Feature-flag integration for SQL Exec API rollout
16-
- Add a gating flag for enabling GeoSpatial support: `EnableGeoSpatialSupport`. By default, it will be disabled
17-
- Call statements will return result sets in response
186

197
### Updated
20-
- Geospatial `getWKB()` now returns OGC-compliant WKB values.
21-
- Minimized OAuth requests by reducing calls in feature flags and telemetry.
228

239
### Fixed
24-
- Fixed SQL syntax error when LIKE queries contain empty ESCAPE clauses.
25-
- Fix: driver failing to authenticate on token update in U2M flow.
26-
- Fix: driver failing to parse complex data types with nullable attributes.
27-
- Fixed: Resolved SDK token-caching regression causing token refresh on every call. SDK is now configured once to avoid excessive token endpoint hits and rate limiting.
28-
- Fixed: TimestampConverter.toString() returning ISO8601 format with timezone conversion instead of SQL standard format.
29-
- Fixed: Driver not loading complete JSON result in the case of SEA Inline without Arrow
30-
- Fix: SQLInterpolator failing to escape temporal fields and special characters.
31-
- Fixed: Errors in table creation when using BIGINT, SMALLINT, TINYINT, or VOID types.
32-
- Fixed: PreparedStatement.getMetaData() now correctly reports TINYINT columns as Types.TINYINT (java.lang.Byte) instead of Types.SMALLINT (java.lang.Integer).
33-
- Fixed: TINYINT to String conversion to return numeric representation (e.g., "65") instead of character representation (e.g., "A").
34-
- Fixed: Complex types (Structs, arrays, maps) now show detailed type information in metadata calls in Thrift mode
35-
- Fixed: incorrect chunk download/processing status codes.
36-
- Shade SLF4J to avoid conflicts with user applications.
10+
3711
---
38-
*Note: When making changes, please add your change under the appropriate section with a brief description.*
12+
*Note: When making changes, please add your change under the appropriate section with a brief description.*

development/.release-freeze.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"freeze": false,
3-
"reason": ""
2+
"freeze": true,
3+
"reason": "Release freeze for v3.0.5"
44
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<groupId>com.databricks</groupId>
66
<artifactId>databricks-jdbc</artifactId>
77
<!-- This value may be modified by a release script to reflect the current version of the driver. -->
8-
<version>3.0.4</version>
8+
<version>3.0.5</version>
99
<packaging>jar</packaging>
1010
<name>Databricks JDBC Driver</name>
1111
<description>Databricks JDBC Driver.</description>

release-notes.txt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,28 @@ The release notes summarize enhancements, new features, known issues, workflow c
66

77
Version History ==============================================================
88

9+
3.0.5 ========================================================================
10+
Released 2025-11-20
11+
12+
Enhancements & New Features
13+
14+
* Added support for high-performance batched writes with parameter interpolation:
15+
- `supportManyParameters=1`: Enables parameter interpolation to bypass 256-parameter limit (default: 0)
16+
- `EnableBatchedInserts=1`: Enables multi-row INSERT batching (default: 0)
17+
- `BatchInsertSize=<SIZE>`: Maximum rows per batch (default: 1000)
18+
- Note: Large batches are chunked for execution. If a chunk fails, previous chunks remain committed (no transaction rollback). Consider using staging tables for critical workflows.
19+
* Added Feature-flag integration for SQL Exec API rollout
20+
* Call statements will return result sets in response
21+
* Minimized OAuth requests by reducing calls in feature flags and telemetry.
22+
23+
Resolved Issues
24+
25+
* Fix: SQLInterpolator failing to escape temporal fields and special characters.
26+
* Fixed: Errors in table creation when using BIGINT, SMALLINT, TINYINT, or VOID types.
27+
* Fixed: PreparedStatement.getMetaData() now correctly reports TINYINT columns as Types.TINYINT (java.lang.Byte) instead of Types.SMALLINT (java.lang.Integer).
28+
* Fixed: TINYINT to String conversion to return numeric representation (e.g., "65") instead of character representation (e.g., "A").
29+
* Fixed: Complex types (Structs, arrays, maps) now show detailed type information in metadata calls in Thrift mode
30+
931
3.0.4 ========================================================================
1032
Released 2025-11-12
1133

src/main/java/com/databricks/jdbc/common/util/DriverUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
public class DriverUtil {
2121

2222
private static final JdbcLogger LOGGER = JdbcLoggerFactory.getLogger(DriverUtil.class);
23-
private static final String DRIVER_VERSION = "3.0.4";
23+
private static final String DRIVER_VERSION = "3.0.5";
2424
private static final String DRIVER_NAME = "oss-jdbc";
2525
private static final String JDBC_VERSION = "4.3";
2626

src/test/java/com/databricks/jdbc/api/impl/DatabricksDatabaseMetaDataTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,7 @@ public void testGetDriverName() throws SQLException {
813813
@Test
814814
public void testGetDriverVersion() throws SQLException {
815815
String result = metaData.getDriverVersion();
816-
assertEquals("3.0.4", result);
816+
assertEquals("3.0.5", result);
817817
}
818818

819819
@Test

src/test/java/com/databricks/jdbc/common/safe/DatabricksDriverFeatureFlagsContextTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class DatabricksDriverFeatureFlagsContextTest {
3737
@Mock private ObjectMapper objectMapperMock;
3838
private static final String FEATURE_FLAG_NAME = "featureFlagName";
3939
private static final String FEATURE_FLAGS_ENDPOINT =
40-
"https://test-host/api/2.0/connector-service/feature-flags/OSS_JDBC/3.0.4";
40+
"https://test-host/api/2.0/connector-service/feature-flags/OSS_JDBC/3.0.5";
4141

4242
private DatabricksDriverFeatureFlagsContext context;
4343

src/test/java/com/databricks/jdbc/common/util/DriverUtilTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ public class DriverUtilTest {
1414
public void testGetDriverVersion() {
1515
String version = DriverUtil.getDriverVersion();
1616
assertNotNull(version);
17-
assertEquals("3.0.4", version);
17+
assertEquals("3.0.5", version);
1818
}
1919

2020
@Test
2121
public void testGetDriverVersionWithoutOSSSuffix() {
2222
String version = DriverUtil.getDriverVersionWithoutOSSSuffix();
2323
assertNotNull(version);
24-
assertEquals("3.0.4", version);
24+
assertEquals("3.0.5", version);
2525
}
2626

2727
@Test

0 commit comments

Comments
 (0)