-
Notifications
You must be signed in to change notification settings - Fork 0
Query Engines
Queryeer supports multiple query engines through a plugin architecture. Each engine connects to a different type of data source and may expose its own catalog metadata, completion items, and output actions.
| Engine | Type | Details |
|---|---|---|
| JDBC | Relational databases | Any JDBC-compatible database. Dialect-specific support for SQL Server, Oracle, and Presto. |
| Payloadbuilder | Multi-source query engine | Built-in engine with catalogs for Elasticsearch, local filesystem, and HTTP endpoints. |
Each query file is associated with a query engine and a connection/catalog. You can switch the engine for the current file from the toolbar selector at the top of the editor. The available engines are those discovered from the plugins/ directory plus any built-in engines.
Query engines are implemented as plugins via the IQueryEngine interface from queryeer-api. The interface defines:
- Execution — run a query string and return results as a stream of rows
- Cancellation — signal the engine to stop an in-progress query
- Metadata — expose table/column metadata for code completion
- Configuration — provide a settings component shown in the Options dialog
- Actions — register toolbar or context-menu actions specific to the engine
To add a new engine, implement IQueryEngine, package it as a JAR with its dependencies, and place it in the plugins/ folder. Queryeer discovers and loads it automatically on the next startup.
Each engine typically manages one or more named connections or catalogs. A connection holds the configuration needed to reach a data source (host, credentials, etc.). Multiple connections to the same engine type can be configured simultaneously.
When a connection is active, the engine's metadata (tables, columns, functions) is made available to the editor's code completion engine. Metadata may be loaded eagerly on connection or lazily on first use, depending on the engine.
Results from any engine flow through the same output pipeline. The active output component (Table, Text, Query Plan, Graph) receives the result rows regardless of which engine produced them. See Output Components.
Engines report errors by throwing a QueryEngineException. The error message and optional stack trace are displayed in the output panel and written to the Logs dialog.