Docs/Data Explorer

SQL Console

The SQL Console is the query surface inside Data Explorer. Use it for direct database querying, file-aware SQL, and multi-source federated workflows.

Opening the SQL Console

  • Right-click any table or view in the navigator → Open in SQL Console
  • Right-click a file or file-backed table folder → Open in SQL Console
  • Hover over a supported table, view, file, or file-backed table folder and click the SQL Console icon that appears
  • A starter query is prefilled: SELECT * FROM <table> LIMIT 100;

Query contexts

The SQL Console adapts to the selected source:

ContextWhenSQL engine
Direct databaseSingle MySQL or PostgreSQL connection selectedRuns against the database directly
File / S3Local file or S3 connection selectedDuckDB-powered
Multi-sourceTwo or more sources selectedDuckDB with attached catalogs

Templates

The Templates button (Ctrl+K) in the toolbar opens a searchable panel of ready-made SQL snippets. Templates adapt to the current query context — the available snippets change depending on what kind of connection is active.

A badge at the top of the panel shows the active context: Direct (MySQL), Direct (PostgreSQL), Files (DuckDB), or Federated (DuckDB).

Selecting a template in the left panel shows a Snippet Preview on the right. Click a template to insert its SQL into the editor.

Database templates

When a database is selected, templates include common exploration queries:

TemplateQuery
List tablesSHOW TABLES; (MySQL) or information_schema query (PostgreSQL)
Select all rowsSELECT * FROM <table> LIMIT 100;
Count rowsSELECT COUNT(*) FROM <table>;
Describe tableDESCRIBE <table>; (MySQL) or information_schema.columns query (PostgreSQL)
Find duplicatesGROUP BY / HAVING COUNT(*) > 1
Search textLIKE '%search_term%' (MySQL) or ILIKE '%search_term%' (PostgreSQL)

When no database is selected (connection-level console), the templates switch to admin operations: list/create/drop databases, show version, list users, database sizes, and active connections.

If the console tab has a table context (opened via right-click on a table), templates automatically substitute the table name into the queries.

File and S3 templates

When a local file or S3 connection is active, templates use DuckDB read_* functions with file paths derived from the current context:

TemplateQuery
Select from CSVread_csv_auto('path/*.csv')
Inspect CSV schemasniff_csv('path/*.csv')
Select from Parquetread_parquet('path/*.parquet')
Select from JSON/JSONLread_json_auto('path/*.json*')
Join two tablesJOIN between two read_parquet() calls
Aggregate with GROUP BYGROUP BY with COUNT
Count rowsCOUNT(*) over read_parquet()
Schema inspectionDESCRIBE SELECT * FROM read_parquet(...)
File metadata (Parquet)parquet_metadata('path/*.parquet')

File paths in templates are auto-populated from the current scope path or file context. For S3 connections, paths use the s3://bucket/path format.

Federated templates

In multi-source mode, templates are grouped into sections with icons:

  • SessionSHOW DATABASES; to list attached aliases
  • Databases — per-alias templates: starter query, list namespaces, list tables (using duckdb_tables())
  • S3 — query S3 via alias scheme (aws://bucket/path/*.parquet)
  • Files — DuckDB read_* functions for local files
  • Joins — cross-database JOIN, UNION, database+S3 JOIN, database+file JOIN, S3+S3 JOIN

Templates in this mode are generated dynamically based on the selected connections and their aliases.

Results panel

After a query runs, the results panel opens below the editor. Drag the divider to give the grid more or less vertical space, double-click the divider to reset the height, or click Hide to collapse the panel.

The results grid supports horizontal scrolling, column resizing, sorting, pagination, cell text selection, and value tooltips for wider cells. Export actions are available from the results toolbar for row-returning queries.

Running a SELECT query and paging through large results in the SQL Console.

Choose a page size (50, 100, 250, 500, or 1,000 rows) and use Next/Previous to move between pages.

If your query has no LIMIT, results are automatically capped at 1,000 rows so an unbounded query can't pull millions of rows into the browser. A LIMIT you write yourself is always respected. The footer may show "of more" instead of an exact total to avoid slow row counts.

File and S3 SQL console

When you select a local file connection or an S3 connection, the SQL Console switches to DuckDB SQL dialect. Use read_* functions to query files directly; results appear in the same grid as database queries.

Querying local files

Use DuckDB file-reading functions with glob patterns:

-- Parquet files
SELECT * FROM read_parquet('/data/exports/*.parquet') LIMIT 100;

-- CSV files with auto-detected schema
SELECT * FROM read_csv_auto('/data/imports/*.csv') LIMIT 100;

-- JSON and JSONL files
SELECT * FROM read_json_auto('/data/logs/*.jsonl') LIMIT 100;

-- Inspect CSV dialect and inferred types
SELECT * FROM sniff_csv('/data/imports/report.csv');

-- Schema inspection
DESCRIBE SELECT * FROM read_parquet('/data/exports/sales.parquet');

-- Parquet file metadata
SELECT * FROM parquet_metadata('/data/exports/sales.parquet');

Compressed variants (.csv.gz, .json.gz, .jsonl.gz) are supported automatically.

Querying S3 files

S3 connections store credentials on the backend. Once an S3 connection is selected, query files using s3:// paths:

-- Query Parquet files from S3
SELECT * FROM read_parquet('s3://my-bucket/data/*.parquet') LIMIT 100;

-- Query CSV from S3
SELECT * FROM read_csv_auto('s3://my-bucket/exports/*.csv') LIMIT 100;

-- Query JSON from S3
SELECT * FROM read_json_auto('s3://my-bucket/logs/*.jsonl') LIMIT 100;

The scope path can restrict which bucket prefix is accessible in the current session.

Differences from database mode

FeatureDatabase modeFile / S3 mode
Database selectionRequiredNot required (scope path instead)
CredentialsConnection stringStored S3 credentials via connection ID

Autocomplete

  • Ctrl+Space (or Cmd+Space) — trigger autocomplete manually
  • After FROM — table/view suggestions appear
  • After alias. — dot-navigation drills into schemas, databases, and columns
  • In multi-source mode — root suggestions show selected aliases and read_* functions

Autocomplete comes from a backend SQL language server. In incomplete SQL contexts (e.g., SELECT * fr), suggestions may be limited — this is normal.

Diagnostics and hover

  • Inline diagnostics — syntax and semantic errors are shown as underlines in the editor
  • Hover — hover over a token to see type or definition info (where the active provider supports it)

DuckDB-backed contexts show diagnostics consistently. Direct database contexts depend on what the backend LSP emits.

Keyboard shortcuts

ShortcutAction
Ctrl+Enter / Cmd+EnterExecute query
Shift+EnterExecute query (alternative)
Ctrl+K / Cmd+KOpen Templates panel
Ctrl+Space / Cmd+SpaceTrigger autocomplete
Ctrl+F / Cmd+FFind/Replace panel
F12Go to definition
Ctrl+Shift+Space / Cmd+Shift+SpaceSignature help
Ctrl+Alt+F / Cmd+Alt+FFormat SQL
Shift+Alt+FFormat SQL (alternative)

Find/Replace (Ctrl+F)

Opens an inline panel with:

  • Find input with next/previous/all matches
  • Match case, regexp, and whole-word toggles
  • Replace and replace all actions

Syntax highlighting

The editor uses dialect-aware syntax highlighting based on the selected source:

  • MySQL keywords and functions
  • PostgreSQL keywords and functions
  • Standard SQL (DuckDB / file mode)

Multi-source mode

See Federated Queries for naming conventions, alias-qualified references, examples, and troubleshooting.