Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
a403fbe
init changes
shivam2680 May 8, 2025
e5654a8
working code
shivam2680 May 9, 2025
b70c233
use AsyncRequestBuilder
shivam2680 May 9, 2025
8946ec9
working async operations
shivam2680 May 12, 2025
f33cc2b
add telemetry logs
shivam2680 May 13, 2025
da1bc49
updated smthng.
shivam2680 May 14, 2025
7b59efb
working performant code
shivam2680 May 14, 2025
68aced1
cleaning code
shivam2680 May 14, 2025
510f67a
added unit tests
shivam2680 May 14, 2025
a3355ae
added unit tests
shivam2680 May 14, 2025
7d1aee1
add integration tests
shivam2680 May 14, 2025
ce9e858
add stubs
shivam2680 May 14, 2025
f0bef47
restore
shivam2680 May 14, 2025
4cc0ebd
update stubs and add routing for global sync client
shivam2680 May 16, 2025
bee9c6e
update puObject stubs
shivam2680 May 16, 2025
434d8ad
added comments
shivam2680 May 16, 2025
6c75a0d
used java.nio.file
shivam2680 May 27, 2025
3ce5cb4
improved InputStreamFixedLenProducer
shivam2680 May 27, 2025
b1857c2
Merge branch 'main' into dbfs-async
samikshya-db Jun 24, 2025
a5922dc
Merge branch 'main' into dbfs-async
samikshya-db Jun 24, 2025
5fffd8d
address few comments
shivam2680 Jul 3, 2025
4669408
refactored retry handling; fixed semaphore usage
shivam2680 Jul 3, 2025
d1a82d6
corrected logs
shivam2680 Jul 3, 2025
4f6c0a4
renamed fullPath to ucVolumePath to clear intent.
shivam2680 Jul 3, 2025
3096a87
address more comments
shivam2680 Jul 3, 2025
ed997ed
address more comments
shivam2680 Jul 4, 2025
184693d
address more comments
shivam2680 Jul 7, 2025
2bf61c6
removed stubbings
shivam2680 Jul 14, 2025
fad0b20
address comments
shivam2680 Jul 14, 2025
96165a5
honor uc volume retry params
shivam2680 Jul 14, 2025
8674672
resolve conflicts
shivam2680 Jul 14, 2025
85fdc72
increase test cov;update next_changelog.md
shivam2680 Jul 14, 2025
e7d8045
resolve conflicts
shivam2680 Jul 21, 2025
227aa7d
spotless
shivam2680 Jul 21, 2025
c17932c
spell mistake
shivam2680 Jul 21, 2025
991c97c
comments
shivam2680 Jul 22, 2025
3789e7b
Merge remote-tracking branch 'databricks/main' into dbfs-async
shivam2680 Jul 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions NEXT_CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
### Added
- Added DCO (Developer Certificate of Origin) check workflow for pull requests to ensure all commits are properly signed-off
- Added support for SSL client certificate authentication via parameter: SSLTrustStoreProvider
- Added putFiles methods in DBFSVolumeClient for async multi-file upload.

### Updated
- Column name support for JDBC ResultSet operations is now case-insensitive
Expand Down
48 changes: 48 additions & 0 deletions src/main/java/com/databricks/jdbc/api/IDatabricksVolumeClient.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.databricks.jdbc.api;

import com.databricks.jdbc.exception.DatabricksSQLFeatureNotSupportedException;
import com.databricks.jdbc.model.client.filesystem.VolumePutResult;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.List;
Expand Down Expand Up @@ -162,4 +164,50 @@ boolean putObject(
*/
boolean deleteObject(String catalog, String schema, String volume, String objectPath)
throws SQLException;

/**
* Uploads multiple files from input streams to specified paths within a UC Volume.
*
* @param catalog the catalog name in Unity Catalog
* @param schema the schema name in the specified catalog
* @param volume the volume name in the specified schema
* @param objectPaths the list of destination paths in the volume where the data should be
* uploaded
* @param inputStreams the list of input streams containing the data to upload
* @param contentLengths the list of lengths of the data in bytes
* @param toOverwrite whether to overwrite the objects if they already exist
* @return a list of results indicating the success or failure of each upload operation
* @throws DatabricksSQLFeatureNotSupportedException if the operation is not supported
*/
List<VolumePutResult> putFiles(
String catalog,
String schema,
String volume,
List<String> objectPaths,
List<InputStream> inputStreams,
List<Long> contentLengths,
boolean toOverwrite)
Comment thread
shivam2680 marked this conversation as resolved.
throws DatabricksSQLFeatureNotSupportedException;

/**
* Uploads multiple files from local paths to specified paths within a UC Volume.
*
* @param catalog the catalog name in Unity Catalog
* @param schema the schema name in the specified catalog
* @param volume the volume name in the specified schema
* @param objectPaths the list of destination paths in the volume where the files should be
* uploaded
* @param localPaths the list of local file paths to upload
* @param toOverwrite whether to overwrite the objects if they already exist
* @return a list of results indicating the success or failure of each upload operation
* @throws DatabricksSQLFeatureNotSupportedException if the operation is not supported
*/
List<VolumePutResult> putFiles(
String catalog,
String schema,
String volume,
List<String> objectPaths,
List<String> localPaths,
boolean toOverwrite)
throws DatabricksSQLFeatureNotSupportedException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -813,6 +813,18 @@ public int getDefaultStringColumnLength() {
}
}

@Override
public int getMaxDBFSConcurrentPresignedRequests() {
try {
return Integer.parseInt(
getParameter(DatabricksJdbcUrlParams.MAX_CONCURRENT_PRESIGNED_REQUESTS));
} catch (NumberFormatException e) {
LOGGER.warn(
"Invalid number format for MaxVolumeOperationConcurrentPresignedRequests. Falling back to default value 50.");
return DEFAULT_MAX_CONCURRENT_PRESIGNED_REQUESTS;
}
}

@Override
public boolean isComplexDatatypeSupportEnabled() {
return getParameter(DatabricksJdbcUrlParams.ENABLE_COMPLEX_DATATYPE_SUPPORT).equals("1");
Expand Down
Loading
Loading