Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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 .vscodeignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@ esbuild.mjs
CLAUDE.md
.claude/**
specs/**
examples/**
.serena/**
vendor/**
51 changes: 30 additions & 21 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,45 @@

All notable changes to the "Exasol" extension will be documented in this file.

## [1.3.3] - 2026-03-31
## [1.4.0] - 2026-03-31

### Added
- **SQL Notebooks** — interactive `.exabook` notebooks with SQL code cells, inline HTML result tables, markdown documentation cells, execution order tracking, and cancellation support
- CodeLens "Execute" links are now hidden in notebook cells (notebooks have their own run buttons)

### Changed
- Show individual list of errors instead of `AggregateError` when multiple error occur
- Removed deprecated `vscode-test` dependency (replaced by `@vscode/test-electron`)
- Eliminated deprecated transitive dependencies via npm overrides (`glob`, `serialize-javascript`)

## [1.3.3] - 2026-03-31

### Changed
- Show individual list of errors instead of `AggregateError` when multiple errors occur

## [1.3.2] - 2026-03-24

### Changed
- Release workflow now automatically publishes to the VS Marketplace

## [1.3.1] - 2026-03-24

### Added
- **Separate background connection** — object tree, autocompletion, and session queries use a dedicated connection so long-running user queries no longer block the sidebar (fixes #27)
- **Disconnect command** — right-click a connection or use the command palette to close all sessions without removing the profile
- **Execute Script command** (`Cmd+Alt+Enter` / `Ctrl+Alt+Enter`) — runs all statements in the current file regardless of cursor position or selection (fixes #26)
- **Application name in sessions** — connections identify as "VSCode Exasol" in `EXA_*_SESSIONS.CLIENT` instead of the generic "Javascript client"
- Idle connection cleanup: background drivers close after 5 minutes of inactivity; old connections close 2 minutes after switching away
- Proper shutdown: `deactivate()` now closes all database sessions on extension exit

### Fixed
- Editor no longer loses focus when query results are displayed (fixes #25)
- Background operations (tree, completion, session) have a 30s timeout so a hanging query can't freeze the extension
- User query cancellation now aborts in-flight driver calls instead of only checking between queries
- Clicking "Continue" after cancelling a batch query now properly resumes execution with a fresh cancellation token

### Security
- Resolved 4 Dependabot alerts (3 high, 1 low) in dev dependencies via dependency updates and overrides

## [1.3.0] - 2026-03-18

### Added
Expand Down Expand Up @@ -45,25 +73,6 @@ All notable changes to the "Exasol" extension will be documented in this file.
- Extracted tab bar rendering into standalone `tabBarRenderer.ts` for testability
- Tidied README — reduced from 357 to 72 lines

## [1.3.1] - 2026-03-24

### Added
- **Separate background connection** — object tree, autocompletion, and session queries use a dedicated connection so long-running user queries no longer block the sidebar (fixes #27)
- **Disconnect command** — right-click a connection or use the command palette to close all sessions without removing the profile
- **Execute Script command** (`Cmd+Alt+Enter` / `Ctrl+Alt+Enter`) — runs all statements in the current file regardless of cursor position or selection (fixes #26)
- **Application name in sessions** — connections identify as "VSCode Exasol" in `EXA_*_SESSIONS.CLIENT` instead of the generic "Javascript client"
- Idle connection cleanup: background drivers close after 5 minutes of inactivity; old connections close 2 minutes after switching away
- Proper shutdown: `deactivate()` now closes all database sessions on extension exit

### Fixed
- Editor no longer loses focus when query results are displayed (fixes #25)
- Background operations (tree, completion, session) have a 30s timeout so a hanging query can't freeze the extension
- User query cancellation now aborts in-flight driver calls instead of only checking between queries
- Clicking "Continue" after cancelling a batch query now properly resumes execution with a fresh cancellation token

### Security
- Resolved 4 Dependabot alerts (3 high, 1 low) in dev dependencies via dependency updates and overrides

## [1.1.2] - 2026-02-25

### Fixed
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ A Visual Studio Code extension for working with Exasol databases. Provides datab
- **Object actions** — right-click to preview data, show DDL, generate SELECT, describe table
- **Results viewer** — sortable, filterable grid with CSV export and cell inspection
- **Query history** — automatic tracking with execution time, row counts, and error indicators
- **SQL Notebooks** — interactive `.exabook` notebooks with SQL cells, inline results, and markdown documentation
- **SQL formatting** — configurable keyword case, indentation, and statement spacing
- **Session management** — active schema tracking, persistent state across restarts

Expand All @@ -29,6 +30,7 @@ A Visual Studio Code extension for working with Exasol databases. Provides datab
|--------|---------------|-----|
| Execute query | `Ctrl+Enter` | `Cmd+Enter` |
| Execute selection | `Ctrl+Shift+Enter` | `Cmd+Shift+Enter` |
| Execute entire script | `Ctrl+Alt+Enter` | `Cmd+Alt+Enter` |
| Find database object | `Ctrl+Shift+F` (objects view) | `Cmd+Shift+F` (objects view) |

## Configuration
Expand Down
32 changes: 32 additions & 0 deletions examples/demo.exabook
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[
{
"kind": 1,
"language": "markdown",
"value": "# Exasol SQL Notebook Demo\n\nThis notebook demonstrates interactive SQL execution against Exasol.\nMake sure you have an active connection before running cells."
},
{
"kind": 2,
"language": "exasol-sql",
"value": "SELECT CURRENT_TIMESTAMP, CURRENT_USER, CURRENT_SCHEMA"
},
{
"kind": 1,
"language": "markdown",
"value": "## Browse schemas"
},
{
"kind": 2,
"language": "exasol-sql",
"value": "SELECT SCHEMA_NAME, SCHEMA_OWNER\nFROM SYS.EXA_SCHEMAS\nORDER BY SCHEMA_NAME"
},
{
"kind": 1,
"language": "markdown",
"value": "## Check active sessions"
},
{
"kind": 2,
"language": "exasol-sql",
"value": "SELECT SESSION_ID, USER_NAME, STATUS, CLIENT\nFROM EXA_ALL_SESSIONS\nORDER BY SESSION_ID"
}
]
Loading