diff --git a/webapp/packages/core-sdk/src/queries/querySqlDialectInfo.gql b/webapp/packages/core-sdk/src/queries/querySqlDialectInfo.gql index 4c5dfc4be5..33d8e7c16b 100644 --- a/webapp/packages/core-sdk/src/queries/querySqlDialectInfo.gql +++ b/webapp/packages/core-sdk/src/queries/querySqlDialectInfo.gql @@ -12,5 +12,6 @@ query querySqlDialectInfo( $connectionId: ID! ) { catalogSeparator structSeparator scriptDelimiter + supportsExplainExecutionPlan } } diff --git a/webapp/packages/core-sdk/src/queries/session/serverConfig.gql b/webapp/packages/core-sdk/src/queries/session/serverConfig.gql index 79657fe94d..036d348752 100644 --- a/webapp/packages/core-sdk/src/queries/session/serverConfig.gql +++ b/webapp/packages/core-sdk/src/queries/session/serverConfig.gql @@ -3,6 +3,7 @@ query serverConfig { name version workspaceId + serverURL productConfiguration supportsCustomConnections supportsConnectionBrowser diff --git a/webapp/packages/core-sdk/src/sdk.ts b/webapp/packages/core-sdk/src/sdk.ts index d55e29eca1..48581c9f42 100644 --- a/webapp/packages/core-sdk/src/sdk.ts +++ b/webapp/packages/core-sdk/src/sdk.ts @@ -283,6 +283,8 @@ export interface Mutation { asyncReadDataFromContainer: AsyncTaskInfo; asyncSqlExecuteQuery: AsyncTaskInfo; asyncSqlExecuteResults: SqlExecuteInfo; + asyncSqlExplainExecutionPlan: AsyncTaskInfo; + asyncSqlExplainExecutionPlanResult: SqlExecutionPlan; asyncTaskCancel?: Maybe; asyncTaskInfo: AsyncTaskInfo; /** @deprecated Field no longer supported */ @@ -332,6 +334,17 @@ export interface MutationAsyncSqlExecuteResultsArgs { taskId: Scalars['ID']; } +export interface MutationAsyncSqlExplainExecutionPlanArgs { + connectionId: Scalars['ID']; + contextId: Scalars['ID']; + query: Scalars['String']; + configuration: Scalars['Object']; +} + +export interface MutationAsyncSqlExplainExecutionPlanResultArgs { + taskId: Scalars['ID']; +} + export interface MutationAsyncTaskCancelArgs { id: Scalars['String']; } @@ -503,6 +516,7 @@ export interface ServerConfig { name: Scalars['String']; version: Scalars['String']; workspaceId: Scalars['ID']; + serverURL: Scalars['String']; anonymousAccessEnabled?: Maybe; /** @deprecated Field no longer supported */ authenticationEnabled?: Maybe; @@ -772,26 +786,27 @@ export interface DatabaseStructContainers { } export interface SqlDialectInfo { - name?: Maybe; - dataTypes?: Maybe>>; - functions?: Maybe>>; - reservedWords?: Maybe>>; - quoteStrings?: Maybe>>>>; - singleLineComments?: Maybe>>; - multiLineComments?: Maybe>>>>; + name: Scalars['String']; + dataTypes: Array>; + functions: Array>; + reservedWords: Array>; + quoteStrings: Array>>>; + singleLineComments: Array>; + multiLineComments: Array>>>; catalogSeparator?: Maybe; structSeparator?: Maybe; scriptDelimiter?: Maybe; + supportsExplainExecutionPlan: Scalars['Boolean']; } export interface SqlCompletionProposal { - displayString?: Maybe; - type?: Maybe; + displayString: Scalars['String']; + type: Scalars['String']; score?: Maybe; - replacementString?: Maybe; - replacementOffset?: Maybe; - replacementLength?: Maybe; - cursorPosition?: Maybe; + replacementString: Scalars['String']; + replacementOffset: Scalars['Int']; + replacementLength: Scalars['Int']; + cursorPosition: Scalars['Int']; icon?: Maybe; nodePath?: Maybe; } @@ -876,6 +891,22 @@ export interface DataTypeLogicalOperation { argumentCount?: Maybe; } +export interface SqlExecutionPlan { + query: Scalars['String']; + nodes: SqlExecutionPlanNode[]; +} + +export interface SqlExecutionPlanNode { + id: Scalars['ID']; + parentId?: Maybe; + kind: Scalars['String']; + name?: Maybe; + type: Scalars['String']; + condition?: Maybe; + description?: Maybe; + properties: ObjectPropertyInfo[]; +} + export enum AdminSubjectType { User = 'user', Role = 'role' @@ -922,6 +953,7 @@ export interface AdminPermissionInfo { export interface ServerConfigInput { serverName?: Maybe; + serverURL?: Maybe; adminName?: Maybe; adminPassword?: Maybe; anonymousAccessEnabled?: Maybe; @@ -1580,7 +1612,7 @@ export type QuerySqlDialectInfoQueryVariables = Exact<{ connectionId: Scalars['ID']; }>; -export interface QuerySqlDialectInfoQuery { dialect?: Maybe> } +export interface QuerySqlDialectInfoQuery { dialect?: Maybe> } export type ConfigureServerQueryVariables = Exact<{ configuration: ServerConfigInput; @@ -1615,7 +1647,7 @@ export type ServerConfigQueryVariables = Exact<{ [key: string]: never }>; export interface ServerConfigQuery { serverConfig: ( - Pick + Pick & { supportedLanguages: Array>; defaultNavigatorSettings: AllNavigatorSettingsFragment; productInfo: Pick } ); } @@ -2520,6 +2552,7 @@ export const QuerySqlDialectInfoDocument = ` catalogSeparator structSeparator scriptDelimiter + supportsExplainExecutionPlan } } `; @@ -2561,6 +2594,7 @@ export const ServerConfigDocument = ` name version workspaceId + serverURL productConfiguration supportsCustomConnections supportsConnectionBrowser diff --git a/webapp/packages/plugin-administration/src/ConfigurationWizard/ServerConfiguration/Form/ServerConfigurationInfoForm.tsx b/webapp/packages/plugin-administration/src/ConfigurationWizard/ServerConfiguration/Form/ServerConfigurationInfoForm.tsx index 0c54cf22d6..750926d2e8 100644 --- a/webapp/packages/plugin-administration/src/ConfigurationWizard/ServerConfiguration/Form/ServerConfigurationInfoForm.tsx +++ b/webapp/packages/plugin-administration/src/ConfigurationWizard/ServerConfiguration/Form/ServerConfigurationInfoForm.tsx @@ -37,6 +37,17 @@ export const ServerConfigurationInfoForm: React.FC = observer(function Se > {translate('administration_configuration_wizard_configuration_server_name')} + + {translate('administration_configuration_wizard_configuration_server_url')} +