diff --git a/packages/types/dbinfo.d.ts b/packages/types/dbinfo.d.ts index 890de2368..4c3604b00 100644 --- a/packages/types/dbinfo.d.ts +++ b/packages/types/dbinfo.d.ts @@ -118,13 +118,15 @@ export interface ViewInfo extends SqlObjectInfo { columns: ColumnInfo[]; } +export type ParameterMode = 'IN' | 'OUT' | 'INOUT' | 'RETURN'; + export interface ParameterInfo { objectId?: string | number; schemaName: string; parameterName?: string; pureName: string; dataType: string; - isOutputParameter?: boolean; + parameterMode?: ParameterMode; } export interface ProcedureInfo extends SqlObjectInfo { parameters?: ParameterInfo[]; diff --git a/packages/web/src/appobj/ParameterAppObject.svelte b/packages/web/src/appobj/ParameterAppObject.svelte index adc875aea..4edae095d 100644 --- a/packages/web/src/appobj/ParameterAppObject.svelte +++ b/packages/web/src/appobj/ParameterAppObject.svelte @@ -12,7 +12,7 @@ {...$$restProps} {data} title={data.parameterName} - extInfo={data.isOutputParameter ? `${data.dataType} OUT` : data.dataType} + extInfo={data.parameterMode && data.parameterMode !== 'IN' ? `${data.dataType} ${data.parameterMode}` : data.dataType} icon={'icon parameter'} disableHover /> diff --git a/plugins/dbgate-plugin-mssql/src/backend/sql/functionParameters.js b/plugins/dbgate-plugin-mssql/src/backend/sql/functionParameters.js index 1d1d98297..62f1f425d 100644 --- a/plugins/dbgate-plugin-mssql/src/backend/sql/functionParameters.js +++ b/plugins/dbgate-plugin-mssql/src/backend/sql/functionParameters.js @@ -13,7 +13,10 @@ SELECT p.max_length AS charMaxLength, p.precision AS precision, p.scale AS scale, - p.is_output AS isOutputParameter, + CASE + WHEN p.is_output = 1 THEN 'OUT' + ELSE 'IN' + END AS parameterMode, p.parameter_id AS parameterIndex, s.name as schemaName FROM diff --git a/plugins/dbgate-plugin-mssql/src/backend/sql/proceduresParameters.js b/plugins/dbgate-plugin-mssql/src/backend/sql/proceduresParameters.js index 14fe6c96a..7a007ef7e 100644 --- a/plugins/dbgate-plugin-mssql/src/backend/sql/proceduresParameters.js +++ b/plugins/dbgate-plugin-mssql/src/backend/sql/proceduresParameters.js @@ -8,7 +8,10 @@ SELECT p.max_length AS charMaxLength, p.precision AS precision, p.scale AS scale, - p.is_output AS isOutputParameter, + CASE + WHEN p.is_output = 1 THEN 'OUT' + ELSE 'IN' + END AS parameterMode, p.parameter_id AS parameterIndex s.name as schemaName FROM diff --git a/plugins/dbgate-plugin-postgres/src/backend/Analyser.js b/plugins/dbgate-plugin-postgres/src/backend/Analyser.js index 87a899a59..bab737e0a 100644 --- a/plugins/dbgate-plugin-postgres/src/backend/Analyser.js +++ b/plugins/dbgate-plugin-postgres/src/backend/Analyser.js @@ -206,7 +206,6 @@ class Analyser extends DatabaseAnalyser { pureName: i.pure_name, parameterName: i.parameter_name, dataType: i.data_type, - isOutputParameter: i.is_output_parameter, parameterMode: i.parameter_mode, schemaName: i.schema_name, })); @@ -225,7 +224,6 @@ class Analyser extends DatabaseAnalyser { pureName: i.pure_name, parameterName: i.parameter_name, dataType: i.data_type, - isOutputParameter: i.is_output_parameter, parameterMode: i.parameter_mode, schemaName: i.schema_name, })); diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/proceduresParameters.js b/plugins/dbgate-plugin-postgres/src/backend/sql/proceduresParameters.js index 1e37d3f2a..92612b8ad 100644 --- a/plugins/dbgate-plugin-postgres/src/backend/sql/proceduresParameters.js +++ b/plugins/dbgate-plugin-postgres/src/backend/sql/proceduresParameters.js @@ -7,11 +7,7 @@ SELECT args.parameter_mode, args.data_type AS data_type, args.ordinal_position AS parameter_index, - args.parameter_mode AS parameter_mode, - CASE - WHEN args.parameter_mode IN ('OUT', 'INOUT') THEN TRUE - ELSE FALSE - END AS is_output_parameter + args.parameter_mode AS parameter_mode FROM information_schema.routines proc LEFT JOIN