Skip to content

Releases: databricks/databricks-sql-nodejs

1.4.0

18 Aug 12:25
67bea27
Compare
Choose a tag to compare
  • Added Cloud Fetch support (#158)
  • Improved handling of closed sessions and operations (#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.

Full diff: 1.3.0...1.4.0

Notes:

Cloud Fetch is disabled by default. To use it, pass useCloudFetch: true to IDBSQLSession.executeStatement(). For example:

// 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:

do {
  const chunk = await operation.fetchChunk({ maxRows: 100000 });
  // process chunk here
} while (await operation.hasMoreRows());

1.3.0

01 Aug 18:40
6de01cb
Compare
Choose a tag to compare
  • Implemented automatic retry for some HTTP errors (429, 503) (#127)
  • Implemented request timeout + added option to configure it (#148)
  • Added OAuth (U2M) support for AWS and Azure (#147 and #154)
  • Fixed bug: for Arrow results, null values were ignored (@ivan-parada #151)

1.2.1

20 Apr 15:30
a4bc14c
Compare
Choose a tag to compare
  • Added Azure AD support (#126)
  • Improved direct results handling (#134)
  • Updated API endpoint references in docs and samples (#137)
  • Code refactoring to improve maintainability

1.2.0

21 Mar 16:58
eb11e53
Compare
Choose a tag to compare

What's Changed

  • Added Apache Arrow support (#94)
  • Auth provider is now configurable (#120)

1.1.1

13 Feb 19:52
2e22c8f
Compare
Choose a tag to compare

Fix: patch needed for improved error handling wasn't applied when installing v1.1.0

1.1.0

25 Jan 08:05
045bb28
Compare
Choose a tag to compare

What's Changed

  • Fix: now library will not attempt to parse column names and will use ones provided by server
    (#84)
  • Better error handling: more errors can now be handled in specific .catch() handlers instead of being
    emitted as a generic error event (#99)
  • Fixed error logging bug (attempt to serialize circular structures) (#89)
  • Fixed some minor bugs and regressions

Full Changelog: 1.0.0...1.1.0

Upgrading

No specific actions required. Revisit error handling code if you used an error event - now most errors will be handled in specific .catch() handlers

1.0.0

27 Oct 00:34
ca4f539
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.1.8-beta.2...1.0.0

Upgrading

All statements now execute with direct results by default. To turn off direct results, set the maxRows option to null in ExecuteStatementOptions.
The Node.js Connector is officially released!

0.1.8-beta.2

07 Sep 19:17
328e04b
Compare
Choose a tag to compare
  • Operations will wait for cluster to start instead of failing
  • Added support for DirectResults, which speeds up data fetches by reducing the number of server roundtrips when possible
  • DBSQLOperation interface simplified: HiveUtils were removed and replaced with new methods
    DBSQLOperation.fetchChunk/DBSQLOperation.fetchAll. New API implements all necessary waiting
    and data conversion routines internally
  • Better TypeScript support
  • Thrift definitions updated to support additional Databricks features
  • User-agent string updated; a part of user-agent string is configurable through DBSQLClient's clientId option
  • Connection now uses keep-alive (not configurable at this moment)
  • DBSQLClient now prepends slash to path when needed
  • DBSQLOperation: default chunk size for data fetching increased from 100 to 100.000

Upgrading

DBSQLClient.utils was permanently removed. Code which used utils.waitUntilReady, utils.fetchAll
and utils.getResult to get data should now be replaced with the single DBSQLOperation.fetchAll method.
Progress reporting, previously supported by utils.waitUntilReady, is now configurable via
DBSQLOperation.fetchChunk/DBSQLOperation.fetchAll options. DBSQLOperation.setMaxRows also became
an option of methods mentioned above.