MQTT was reported separately: its connection node uses its own loadMqttTopics loader, but shares the same toggle path, so it has the same guarantee as redis/mongo/etcd/milvus/es. Add MQTT plus mq, nacos, dynamodb, zookeeper, consul and qdrant cases; reverting the #13557 fix fails all 12 new cases.
Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
v0.6.56 turned the long-standing auto-expand behavior into a default-off switch (#13302/#13376). That changed the default UX and the default-off flip also exposed the manual expansion regression #13557. Restore the old default while keeping the opt-out switch: users with many schemas can still disable it.
Existing blobs from the default-off builds are migrated once via sidebarExpandTreeOnConnectMigrationVersion; an explicit toggle afterwards is honored.
Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
The #13536 regression affected Redis, MongoDB, etcd, Milvus and Elasticsearch as well, since all of them share the connection toggle path. Lock the cross-type behavior in the expansion suite so a future loader gating change cannot regress it silently.
Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
`sidebarExpandTreeOnConnect` was registered on the EditorSettings interface, in
DEFAULT_EDITOR_SETTINGS, in the normalizeEditorSettings whitelist and in the
settings-dialog draft, but never in `applyEditorSettingsPatch()`. That function
assigns every field explicitly, so the key was dropped on every apply:
- the store value never changed, so the toggle had no effect at all;
- the persisted snapshot kept the old value;
- the dialog rebuilt its base from the unchanged store, so the draft stayed
dirty forever and "apply and close" kept reporting unsaved changes.
Add the missing branch and cover it with two regression tests: one asserts the
toggle reaches the store and disk, the other asserts the dialog dirty state
clears once the toggle is applied.
v0.6.56 introduced prefetchCompletionTablesIfEnabled() with a body that
called itself instead of completionMetadata.prefetchCompletionTables().
Query tabs pass prefetchCompletion=true and the helper runs synchronously
during setup, so every query tab mount (including opening a .sql file)
recursed until the stack overflow aborted setup, leaving a blank,
unresponsive editor.
Call the composable's prefetch again behind the same query-tab guard and
cover the mount path with a regression test.
Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
OSCAR rejects statements that combine its ROWNUM pseudo-column with a LIMIT. The JDBC agent caps table-data statements with Statement.setMaxRows(), which the OSCAR driver forwards as a row limit, so later ROWNUM-wrapped pages collided with that cap ("rownum and limit cannot be mixed").
Use LIMIT/OFFSET for OSCAR table previews, which the driver supports directly, and keep ROWNUM for bounded reads that do not set the driver cap. Preserve the explicit column projection when switching pagination forms.
Closes#13515
A no-row result (for example a PostgreSQL SET statement) leaves the tab with a result that has no columns. When the next query starts, that result is retained intentionally, but the result surface could not mount DataGrid (no tabular data) and only rendered QueryLoadingState when the result was missing or an error. The running query therefore showed neither the elapsed time nor the stop button.
Show the loading state whenever an execution is running and DataGrid cannot own the surface, including the retained non-tabular result case.
Closes#13508