Skip to content

Releases: keboola/jdbc-driver

v2.3.0

Choose a tag to compare

@MiroCillik MiroCillik released this 20 Aug 12:07
8f807b1

What's Changed

  • feat(jdbc): AJDA-2842 docs & packaging + URL query string support by @sykora-ji in #31
  • feat(jdbc): AJDA-3061 tag queries with Snowflake QUERY_TAG for usage tracking by @MiroCillik in #39

New Contributors

Full Changelog: v2.2.4...v2.3.0

What's Changed

  • feat(jdbc): AJDA-2842 docs & packaging + URL query string support by @sykora-ji in #31
  • feat(jdbc): AJDA-3061 tag queries with Snowflake QUERY_TAG for usage tracking by @MiroCillik in #39

New Contributors

Full Changelog: v2.2.4...v2.3.0

v2.2.4

Choose a tag to compare

@github-actions github-actions released this 26 Jun 09:26

Full Changelog: v2.2.2...v2.2.4

v2.2.2

Choose a tag to compare

@github-actions github-actions released this 03 Jun 10:10
bd8fa63

What's Changed

  • fix(ci): release only the freshly built jar/vsix, not dist/ by @sykora-ji in #30

Full Changelog: v2.2.1...v2.2.2

v2.2.1

Choose a tag to compare

@github-actions github-actions released this 03 Jun 08:24
99e0637

What's Changed

  • fix(vscode): compile before packaging the VSIX by @sykora-ji in #29

Full Changelog: v2.2.0...v2.2.1

v3.0.3-experimental

v3.0.3-experimental Pre-release
Pre-release

Choose a tag to compare

@padak padak released this 08 Apr 21:30

What's Changed

Backport fixes from v2.1.4 stable release:

  • Fix DATE/TIME/TIMESTAMP display -- Converts Snowflake epoch representations to proper date/time values (#15)
  • Fix result pagination -- Results no longer stop at 1000 rows

Download

  • JDBC Driver: keboola-jdbc-driver-3.0.3-experimental.jar (78 MB, includes DuckDB backend)

Acknowledgments

Thanks to @TomasRachunek and Ales Moravec for reporting!

v2.1.4

Choose a tag to compare

@padak padak released this 08 Apr 20:33
6eef678

What's Changed

Bug Fixes

  • Fix DATE/TIME/TIMESTAMP display -- Query Service /results endpoint returns Snowflake internal epoch representations (days since 1970 for DATE, seconds.nanoseconds for TIMESTAMP, seconds since midnight for TIME). Both JDBC driver and VSCode extension now convert these to proper human-readable values. (#15)
  • Fix result pagination -- The Query Service API does not return a hasMorePages flag, causing the JDBC driver to stop after the first 1000 rows. Now uses page-size heuristic to fetch all result pages.

Downloads

  • JDBC Driver: keboola-jdbc-driver-2.1.4.jar
  • VSCode Extension: sqltools-keboola-driver-2.1.4.vsix

Both attached below.

Acknowledgments

Thanks to @TomasRachunek for reporting the date conversion issue (#15) and to Ales Moravec for additional feedback!

v2.1.3 - VSCode SQLTools Extension

Choose a tag to compare

@padak padak released this 09 Mar 14:11

What's New

This release adds the VSCode SQLTools Extension alongside the existing JDBC driver. Both projects now share the same version number.

VSCode SQLTools Extension (NEW)

  • Connect to any Keboola stack (AWS US/EU, GCP US/EU, Azure EU, custom/single-tenant)
  • QuickPick selection for branch and workspace on first connect (auto-saved to settings)
  • Browse buckets, tables, and columns in the sidebar explorer
  • Execute SQL queries with async polling and pagination (up to 10,000 rows)
  • Virtual _keboola.* tables: components, events, jobs, tables, buckets
  • KEBOOLA HELP, SHOW HISTORY, USE SCHEMA/DATABASE commands
  • Query cancellation from Command Palette
  • Schema cache with 60s TTL and stale-on-error fallback
  • Autocomplete for SQL keywords, Keboola commands, and virtual tables
  • 147 unit tests + 9 integration tests

Install:

code --install-extension sqltools-keboola-driver-2.1.3.vsix

Requires SQLTools extension.

JDBC Driver

  • Version bump to 2.1.3 (no functional changes from 2.1.2)

Downloads

  • JDBC Driver: keboola-jdbc-driver-2.1.3.jar
  • VSCode Extension: sqltools-keboola-driver-2.1.3.vsix

Acknowledgements

VSCode SQLTools extension inspired by @Vfisa's keboola-sqltools-adapter.

v2.1.2

Choose a tag to compare

@padak padak released this 06 Mar 17:23

Filter SNOWFLAKE_SAMPLE_DATA from sidebar

Added SNOWFLAKE_SAMPLE_DATA to the list of hidden Snowflake system databases. This demo database is not part of the Keboola project and was cluttering the database navigator in DBeaver/DataGrip.

Now filtered alongside SNOWFLAKE and SNOWFLAKE_LEARNING_DB.

Download

Attach the JAR below to your DBeaver/DataGrip driver configuration.

v2.1.1

Choose a tag to compare

@padak padak released this 06 Mar 15:16

What's Changed

Server-side schema/catalog tracking via backendContext

Replaced client-side USE SCHEMA/DATABASE regex parsing (interceptUseCommand) with server-reported backendContext from Query Service result responses. The driver now reads backendContext.catalog and backendContext.schema after each query execution to keep local state in sync with Snowflake.

Falls back to parsing USE commands from SQL when backendContext is not available in the response.

This eliminates the recursion bug root cause (fixed as workaround in 2.1.0) and is more accurate — catches implicit schema changes too (e.g. CREATE SCHEMA automatically switching context).

Initial schema sent as standalone job

When schema connection property is set, a USE SCHEMA command is now sent as a standalone job during connection init, instead of being prepended to the first user query.

Credits

Install

Download keboola-jdbc-driver-2.1.1.jar (9.5 MB) and add it as a JDBC driver in DBeaver/DataGrip.

v2.1.0 — Fix setSchema StackOverflow

Choose a tag to compare

@padak padak released this 06 Mar 09:09

What's new

Bug fix

Fix StackOverflowError when calling setSchema() or executing USE SCHEMA — the driver entered infinite recursion:

setSchema("in.c-main")
  → execute("USE SCHEMA \"in.c-main\"")
    → interceptUseCommand() detects USE SCHEMA
      → setSchema("in.c-main")
        → execute("USE SCHEMA ...") → ... StackOverflow

Fixed by introducing updateLocalSchema() which only updates the local field without executing SQL. interceptUseCommand() now uses this method.

Contributors

Thanks to @jbotor for finding and fixing this bug (PR #4).