Releases: databricks/databricks-sql-nodejs
1.4.0
- 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
1.2.1
1.2.0
1.1.1
Fix: patch needed for improved error handling wasn't applied when installing v1.1.0
1.1.0
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 genericerror
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
What's Changed
- [PECO-237] Direct results support for all operations by @kravets-levko in #63
- [PECO-217] DBSQLClient.openSession refactoring by @kravets-levko in #64
- Fixed bug with spread operator crashing memory if chunk is too big by @nithinkdb in #66
- [PECO-217] Expose runAsync option for operations that support it by @kravets-levko in #65
- Enforce minimum TLS version by @kravets-levko in #69
- Remove deprecated option
confOverlay
by @kravets-levko in #68 - Make IOperation.getSchema wait for operation to complete by @kravets-levko in #67
- Add TSDoc comments for all public APIs. by @nithinkdb in #71
- Add client side logging by @nithinkdb in #72
- Fix e2e tests by @kravets-levko in #79
- [PECO-348] Enable direct results by default by @kravets-levko in #70
- Removed old APIs by @nithinkdb in #81
- Updated version by @nithinkdb in #80
- Fix mistake in test by @kravets-levko in #82
- Fixed bug in Logger, cleaned up types by @nithinkdb in #83
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
- 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
'sclientId
option - Connection now uses keep-alive (not configurable at this moment)
DBSQLClient
now prepends slash to path when neededDBSQLOperation
: 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.