Add Access as a new database type with agent-based connectivity,
UCanAccess JDBC URL parsing, backtick identifier quoting, file-path
connection dialog, and PNG icons for Access/GoldenDB/Vastbase.
Add full support for Highgo database, a PostgreSQL-compatible Chinese
domestic database. Includes database type definition, connection dialog,
agent driver mapping, and database icon.
Add list_objects support for agent-driven databases (Dameng, Oracle, etc.)
and ExternalDriver plugin connections. SQL Server dbo schema now uses
listObjects to display grouped object nodes including routines.
- Add list_objects RPC to JDBC agent plugin
- Add extract_agent and ExternalDriver branches in list_objects_core
- Add get_object_source support for agent connections
- Click function/procedure nodes to view source via object browser
- Fix duplicate tree node IDs when same name exists as view and function
Single-database types (DM8, Oracle) now use list_schemas instead of
list_databases when expanding a connection, matching Navicat/DataGrip
behavior and returning the complete schema list.
- Track selectedTreeNodeId in connection store
- Highlight any clicked tree node with focused (blue) / unfocused (gray) styles
- Use CSS :focus-within for automatic focus state switching
orderPinnedFirst preserves relative order but doesn't account for
saved-sql-root needing to stay first. After reordering pinned children,
move saved-sql-root back to index 0 if it was displaced.
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
- 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