dbeaver/pro#9171 adds ability to open sql editor with context from Generate SQL dialog (#4488)

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
This commit is contained in:
sergeyteleshev
2026-07-23 16:30:47 +02:00
committed by GitHub
co-authored by Daria Marutkina
parent 6042f16342
commit 16dda810d7
2 changed files with 10 additions and 2 deletions
@@ -121,6 +121,8 @@ export class DataGridContextMenuGenerateSqlService {
return;
}
const options = model.source.options as IDataContainerOptions | undefined;
const nodePath = options?.containerNodePath;
const select = model.source.tryGetAction(resultIndex, IDatabaseDataSelectAction, GridSelectAction);
const projectId = model.source.executionContext?.context?.projectId;
const connectionId = model.source.executionContext?.context?.connectionId;
@@ -162,7 +164,7 @@ export class DataGridContextMenuGenerateSqlService {
await this.commonDialogService.open(GeneratedSqlDialog, {
query,
nodeId: connectionId,
nodeId: nodePath ?? connectionId,
options: getDefaultQueryGeneratorOptions(),
regenerateQuery: options =>
this.generateQuery({
@@ -215,7 +217,7 @@ export class DataGridContextMenuGenerateSqlService {
await this.commonDialogService.open(GeneratedSqlDialog, {
query,
nodeId: connectionId,
nodeId: nodePathList,
options: getDefaultQueryGeneratorOptions(),
regenerateQuery: genOptions => this.sqlGenerationResource.generateEntityQuery(createGenerator.id, nodePathList, genOptions),
});
@@ -23,6 +23,7 @@ import {
import { ConnectionDialectResource, ConnectionInfoResource, createConnectionParam } from '@cloudbeaver/core-connections';
import { useService } from '@cloudbeaver/core-di';
import type { DialogComponentProps } from '@cloudbeaver/core-dialogs';
import { NavNodeManagerService } from '@cloudbeaver/core-navigation-tree';
import { useCodemirrorExtensions } from '@cloudbeaver/plugin-codemirror6';
import { SqlEditorNavigatorService } from '@cloudbeaver/plugin-sql-editor-navigation-tab';
import { SQLCodeEditor, useSqlDialectExtension } from '@cloudbeaver/plugin-sql-editor-codemirror';
@@ -80,6 +81,7 @@ export const GeneratedSqlDialog = observer<DialogComponentProps<Payload>>(functi
const connectionInfoResource = useService(ConnectionInfoResource);
const sqlEditorNavigatorService = useService(SqlEditorNavigatorService);
const navNodeManagerService = useService(NavNodeManagerService);
const connection = connectionInfoResource.getConnectionForNode(payload.nodeId);
const connectionDialectResource = useResource(GeneratedSqlDialog, ConnectionDialectResource, connection ? createConnectionParam(connection) : null);
@@ -94,8 +96,12 @@ export const GeneratedSqlDialog = observer<DialogComponentProps<Payload>>(functi
async function handleOpenInEditor() {
try {
const container = navNodeManagerService.getNodeContainerInfo(payload.nodeId);
await sqlEditorNavigatorService.openNewEditor({
connectionKey: connection ? createConnectionParam(connection) : undefined,
catalogId: container.catalogId,
schemaId: container.schemaId,
query: state.query,
});
rejectDialog();