When typing `schema.` in the SQL editor for schema-aware databases
(PostgreSQL, GaussDB, etc.), auto-complete now suggests tables from
that schema. Falls back to schema lookup when the qualifier doesn't
match any table name.
Closes#239
Add a new "Export Database" feature accessible from the sidebar
right-click menu on database/schema nodes. Generates a .sql file
containing CREATE TABLE DDL, batched INSERT statements, and
view/procedure/function source code.
Backend (database_export.rs):
- Stream-writes SQL to file with configurable batch size
- Supports all SQL database types via existing DDL/INSERT generators
- Progress events with cancellation support
- Graceful error handling (continues on per-table failures)
Frontend (DatabaseExportDialog.vue):
- Connection/database/schema selector
- Checkboxes: structure, data, objects
- Real-time progress with current table and row count
- Cancel button
Wired up through Tauri commands, Web SSE routes, and API layer.
Sidebar tree now groups database objects into Tables, Views, Procedures,
and Functions folders instead of a flat list. Empty groups are hidden
and each group shows its item count.
Object Browser rows now have right-click context menus with actions
like View Data, New Query, View Source, and Drop.
When refreshAllTree skipped collapsed child nodes, their IDs remained
in loadedTreeNodeChildrenIds. After the parent was rebuilt with fresh
children, expanding a previously-collapsed node hit useCachedChildren
and returned immediately with empty children.
When a database has more than 15 tables, only the first 15 are shown
in the tree with an "object browser" entry for the rest. The sidebar
search could not find tables beyond the first 15.
Store hidden table nodes on the object-browser TreeNode and search
through them in filterTree when a query is active.
- Lower virtual scrolling threshold from 400 to 100 nodes so
RecycleScroller activates earlier with many databases
- Memoize getConfig() with a computed Map to avoid O(n) linear
search on every TreeItem computed property evaluation
- Split WHERE and ORDER BY into separate inputs alongside search bar
- Three equal sections: Search | WHERE | ORDER BY with border separators
- Preserve tableMeta on error so filters remain visible after failed queries
- Show schema@database format in table data badge
- Rewrite FETCH FIRST to ROWNUM for Oracle 11g (no 12c+ syntax)
- Filter APEX_*, FLOWS_*, $-prefixed system schemas from sidebar
- Set schema prefix on table nodes for schema-aware databases
- Use all_objects instead of all_tables+all_views (4x faster)
- Disable statement cache to avoid stale cursor issues
- Update rust-oracle with streaming TTC, drain fixes
Extract all inline database type checks (schema-aware, pagination style,
feature support sets, etc.) into a single source of truth. Adding a new
database type now requires updating only one file instead of 15+.