Skip to content

Releases: sultanofcardio/tablecloth

Tablecloth 0.2.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 17:33
76dee17

Added

  • Explain Plan and Explain Analyse, from the console toolbar's Explain dropdown, the editor's context menu, and the Tablecloth: Explain Plan and Tablecloth: Explain Analyse commands. The plan opens in a Plan tab next to the results: a tree of operations with what each works on, its cost and its row estimate, or the same nodes as a table with every figure. Explain Analyse runs the statement and adds the actual rows and the time per node, with a heat bar so the node that lied stands out. Every analyse is rolled back (a savepoint inside an open transaction, a transaction of its own otherwise), so a DELETE or UPDATE can be analysed without losing data on a transactional engine. PostgreSQL, MySQL and MariaDB (through its ANALYZE) give the full plan; SQLite has no analyse and shows its query plan instead, with a note in the Output.
  • A DELETE or UPDATE with no WHERE clause gets a warning squiggle in consoles and attached .sql files, and asks before it runs. The dialog names the table and how many rows it holds, counted on the console's own session so an open transaction's changes are included. Cancel is the default button, so a stray ⏎ after ⌘⏎ cancels; Run anyway runs it, and Don't ask again for this console silences it for that console. Run File on Data Source asks the same question with a Run all anyway answer for the rest of the run. The check follows IntelliJ's exemptions: a LIMIT, a JOIN whose condition constrains the table being written, and an UPDATE whose every assignment reads its own column are left alone.
  • Setting tablecloth.execution.warnWithoutWhere turns the question off everywhere. Changing it, in either direction, resets every console's "Don't ask again" choice.

Changed

  • tablecloth.inspections.enabled now also governs the DELETE or UPDATE without WHERE inspection.

Tablecloth 0.1.1

Choose a tag to compare

@github-actions github-actions released this 05 Sep 10:43
a6e280c

Changed

  • The README and the Marketplace listing point at the docs site, sultanofcardio.github.io/tablecloth: the roadmap, the changelog and the known limits live there now, and the extension's homepage is the site.

Tablecloth 0.1.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 09:20
a43dfba

Phase 2 (daily driver) of the plan: edit data in the grid, and trust the SQL the console writes for you.

Added

  • Editable data grid: double-click a cell (or press F2) to edit it, and the change accumulates locally (edited cells blue, added rows green, deleted rows struck through). Submit shows the exact DML first and runs it as one atomic batch; Revert selected or Revert all throws it away.
  • Row operations in the grid toolbar and context menu: add a row, clone the selected row, delete rows, and Set NULL or Set DEFAULT on any cell.
  • Transaction mode per data editor, with isolation levels and commit or roll back, alongside the mode already available per console.
  • WHERE and ORDER BY fields above the grid, each with an IntelliJ-style completion lookup over the table's columns, the keywords valid in that clause, and functions. Nothing completes inside a string literal, and completing inside a quote you already typed keeps that quote.
  • Sorting and filtering from the header: click a column header to write the ORDER BY (Alt-click to sort by several columns), open a column funnel to pick from its distinct values, or use Filter by value on a cell.
  • Foreign-key navigation: a FK cell jumps to the referenced row, and the context menu opens the rows that reference the current one. View Query and Copy Query to Console show the SQL behind the grid.
  • Alternate views of a result: transpose, Table, Tree, and Text views, a value editor for long values (⇧⏎), the column list (⌘F12), and find in page (⌘F).
  • Console intelligence: completion for keywords and functions as well as objects, JOIN clauses and ON conditions inferred from foreign keys, live templates (sel, selw, ins, upd, del, tab, and friends), inspections for unresolved tables and columns with Change-to quick fixes, Format SQL (⌘⌥L, or Format Document), :name and ${name} parameters with a values dialog, and cancelling a running statement (⌘F2).
  • Import Data from File: delimiter detection, a column mapping step, creating the target table from the file, and batched inserts that stop or skip on error.
  • New extractors: HTML, JSON, Markdown, One-row, Pretty, Python-DataFrame, SQL-Insert-Multirow, and XML. Excel (.xlsx) is available through Export Data, and the extractor and Export menus follow IntelliJ's shape.
  • Go to Database Object (⌘⇧O) searches every introspected source, and Go to DDL opens the CREATE statement for tables, views, routines, sequences, and enum types.

Changed

  • Console result grids are editable only for single-table SELECTs whose key columns are in the result. Any other result opens read-only and says why.
  • The SQL Updates extractor keeps known primary-key values in the WHERE clause even when the key column is not among the exported columns, while SET still covers only the columns you selected.
  • An SQL Updates copy or export whose selected columns are all part of the key has nothing to set, so it produces a single comment naming the key columns and how to get UPDATE statements; the grid says the same in the status bar after a copy, or as a warning after an export to file, so the result is never silently empty.

Fixed

  • An isolation level is applied to the session that runs the statements it governs, and is reapplied to a fresh session after a reconnect.
  • Exports and client-side sorting keep 64-bit integers exact; large values no longer round through a floating-point value.
  • Generated SQL quotes reserved words and case-sensitive identifiers for the dialect in hand, so tables and columns named after keywords round-trip.

Known limits

The grid is no longer read-only. The limits this release still carries are listed in ROADMAP.md.

Tablecloth 0.0.3

Choose a tag to compare

@github-actions github-actions released this 03 Sep 06:50
1ccc14a

Changed

  • New data sources default to Project scope (workspace settings) whenever a trusted workspace folder is open, so a source stays with the code it belongs to. Global remains a click away in the dialog, and is still the default with no folder open or in Restricted Mode.
  • The Project option in the Data Sources dialog is disabled in Restricted Mode instead of failing on save.

Tablecloth 0.0.2

Choose a tag to compare

@github-actions github-actions released this 03 Sep 04:20
84db525

Added

  • Marketplace listing: preview flag, pricing, gallery banner, homepage and issue links.
  • Workspace trust support. In Restricted Mode, Project (workspace) data sources are hidden and cannot be created; they appear as soon as the workspace is trusted. Global data sources, consoles, and the grid are unaffected.
  • Virtual workspace support, limited to sources whose files (SQLite databases, SSH keys, CA certificates) live on the local disk.
  • GitHub Actions: CI on every push and pull request, and a tag-driven release that packages, publishes to the Marketplace, and creates the GitHub release with the vsix attached.

Changed

  • The datagrip keyword no longer appears in the manifest.
  • The vsix no longer ships the README screenshots or repository tooling files.
  • README rewritten for the Marketplace, with an Open in VS Code button and live Marketplace badges; the roadmap moved to ROADMAP.md.

Security

Tablecloth 0.0.1 - Phase 1 (MVP)

Choose a tag to compare

@sultanofcardio sultanofcardio released this 01 Sep 11:55
ab86a48

IntelliJ-grade database tools, laid over VS Code. First release: Phase 1 (MVP) of the plan, built for one person's daily workflow and published for anyone else who cares.

Installing

Download tablecloth-0.0.1.vsix below, then:

code --install-extension tablecloth-0.0.1.vsix

(or in VS Code: Extensions view → menu → Install from VSIX…). Drivers ship inside the extension (pure JS/WASM); nothing else to install.

What's in Phase 1

Connect — PostgreSQL, MySQL/MariaDB, and SQLite data sources with SSH tunnels, SSL modes, and pgpass; an IntelliJ-styled Data Sources dialog in its own floating window, with local validation, auto-derived names, and Test Connection; Global (user) and Project (workspace) scopes; passwords only in the OS keychain; per-source env colors and server-side read-only mode.

Explore — a Database tool window rebuilt in IntelliJ's design language: vendor marks, env dots, introspection badges ("1 of 3"), schemas, tables with gold PK / blue FK keys, indexes, views, sequences, routines, and enum types; a toolbar row and anchored context menus; lazy introspection; a data source Information tab (Dialect / DBMS / Case sensitivity / Driver) in the Tablecloth panel.

Query — consoles as Monaco-based editors under an IntelliJ toolbar: run statement (⌘⏎) with the green statement frame, run script, schema switcher that really switches (search_path/USE), transaction mode (Auto/Manual) with isolation levels and commit/rollback, query history, and schema-aware object completion that quotes identifiers when the dialect needs it. Consoles persist, rename, and reopen from the IntelliJ-style console dropdown.

Results — the Tablecloth panel mirrors your consoles (Database → source → console) with per-console result tabs (named from a leading comment, the table, or "Result n") and per-console Output logs; the DataGrip grid with the two-state floating pager (57 rows / 1-500 of 500+), count-on-demand, sorting, and row selection; extractors for SQL Inserts/Updates, Where Clause, and the CSV family (copy or export, selection-aware); "Run File on Data Source…" for any .sql file.

Known limits (Phase 1)

The grid is read-only (editing with change sets and DML preview is Phase 2); MySQL DELIMITER blocks aren't understood by the splitter; SQLite empty results lose column headers; an isolation level isn't reapplied after a silent reconnect; paste in the console uses the keyboard (the Monaco context-menu Paste is inert in webviews).

Full parity checklist and roadmap: README.