From ae813d53888657adf8b41e4a39ddd67b015a814f Mon Sep 17 00:00:00 2001 From: Levko Kravets Date: Wed, 16 Aug 2023 14:26:21 +0300 Subject: [PATCH 1/2] Prepare release v1.4.0 Signed-off-by: Levko Kravets --- CHANGELOG.md | 4 ++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 892fc8b6..332aa2fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Release History +## 1.4.0 + +- Added Cloud Fetch support (databricks/databricks-sql-nodejs#158) + ## 1.3.0 - Implemented automatic retry for some HTTP errors (429, 503) (databricks/databricks-sql-nodejs#127) diff --git a/package-lock.json b/package-lock.json index 68b39763..5d8169dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@databricks/sql", - "version": "1.3.0", + "version": "1.4.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@databricks/sql", - "version": "1.3.0", + "version": "1.4.0", "hasInstallScript": true, "license": "Apache 2.0", "dependencies": { diff --git a/package.json b/package.json index aa82c095..25ca6459 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@databricks/sql", - "version": "1.3.0", + "version": "1.4.0", "description": "Driver for connection to Databricks SQL via Thrift API.", "main": "dist/index.js", "types": "dist/index.d.ts", From 9d06004478f8b000925e0e5bcf3f055bd7728821 Mon Sep 17 00:00:00 2001 From: Levko Kravets Date: Thu, 17 Aug 2023 09:37:40 +0300 Subject: [PATCH 2/2] Update changelog Signed-off-by: Levko Kravets --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 332aa2fa..e7aa2961 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,34 @@ ## 1.4.0 - Added Cloud Fetch support (databricks/databricks-sql-nodejs#158) +- Improved handling of closed sessions and operations (databricks/databricks-sql-nodejs#129). + Now, when session gets closed, all operations associated with it are immediately closed. + Similarly, if client gets closed - all associated sessions (and their operations) are closed as well. + +**Notes**: + +Cloud Fetch is disabled by default. To use it, pass `useCloudFetch: true` +to `IDBSQLSession.executeStatement()`. For example: + +```ts +// obtain session object as usual +const operation = session.executeStatement(query, { + runAsync: true, + useCloudFetch: true, +}); +``` + +Note that Cloud Fetch is effectively enabled only for really large datasets, so if +the query returns only few thousands records, Cloud Fetch won't be enabled no matter +what `useCloudFetch` setting is. Also gentle reminder that for large datasets +it's better to use `fetchChunk` instead of `fetchAll` to avoid OOM errors: + +```ts +do { + const chunk = await operation.fetchChunk({ maxRows: 100000 }); + // process chunk here +} while (await operation.hasMoreRows()); +``` ## 1.3.0