diff --git a/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/serverdatacache/DebugObjects.java b/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/serverdatacache/DebugObjects.java index 0b95a949502842e6126648015673acfadabca64a..f788409b7e3264fc5b66073015d4df8da6878f64 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/serverdatacache/DebugObjects.java +++ b/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/serverdatacache/DebugObjects.java @@ -27,6 +27,7 @@ import org.opengauss.mppdbide.bl.serverdatacache.DebugObjects.DebugObjectsUtils. import org.opengauss.mppdbide.utils.IMessagesConstants; import org.opengauss.mppdbide.utils.IMessagesConstantsOne; import org.opengauss.mppdbide.utils.MPPDBIDEConstants; +import org.opengauss.mppdbide.utils.VariableRunLine; import org.opengauss.mppdbide.utils.exceptions.DatabaseCriticalException; import org.opengauss.mppdbide.utils.exceptions.DatabaseOperationException; import org.opengauss.mppdbide.utils.exceptions.MPPDBIDEException; @@ -873,7 +874,7 @@ public class DebugObjects extends BatchDropServerObject implements ObjectChange, hasout = createTemplateFromParams(params, parameterObject.getTemplateParams(), template, parameterObject.getOutParams()); - if (MessageConfigLoader.getProperty(IMessagesConstants.COVERAGE_HINT).equalsIgnoreCase(coverageHint)) { + if (VariableRunLine.isDebugUsagehint != null) { usagehint.append(coverageHint + MPPDBIDEConstants.LINE_SEPARATOR); } if (hasout) { diff --git a/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages.properties b/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages.properties index 671ff78b4909aa8455130ef40c606aa484d274b7..f5896fb516522e262607b79f75322498c1fb747f 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages.properties +++ b/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages.properties @@ -3205,4 +3205,5 @@ EXPORT_PATH = The report has been downloaded to: {0} COVERAGE_CHECK = This version does not support this function! INPUT_PARAMS = Input Params NOT_SUPPORT_BREAK = There are rows that do not support flags! -VERSION_CHECK_FAIL = Check version failed! \ No newline at end of file +VERSION_CHECK_FAIL = Check version failed! +WRITE_DATA = This operation will save the data to the his_coverage! \ No newline at end of file diff --git a/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages_zh_CN.properties b/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages_zh_CN.properties index 259934b0ae35ba2741cccd912200188e1351b532..b4943fc48647f3f882a812049f178a8eea80b8e3 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages_zh_CN.properties +++ b/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages_zh_CN.properties @@ -3194,4 +3194,5 @@ EXP_MARK_ROW = \u6807\u8BB0\u884C EXP_MARK_EXECUTION_LINE = \u6807\u8BB0\u6267\u884C\u884C EXP_MARKER_COVERAGE = \u6807\u8BB0\u8986\u76D6\u7387 EXP_INPUT_PARAMS = \u5165\u53C2 -EXP_UPDATE_TIME = \u7ED3\u675F\u65F6\u95F4 \ No newline at end of file +EXP_UPDATE_TIME = \u7ED3\u675F\u65F6\u95F4 +WRITE_DATA = \u6B64\u64CD\u4F5C\u5C06\u4FDD\u5B58\u6570\u636E\u81F3his_coverage\u8868\u4E2D! \ No newline at end of file diff --git a/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstantsOne.java b/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstantsOne.java index 35f159f250b46af6526efcba97fe84a92d206f62..8c6baf9e8e39e4d0b92f7c3711172fda2ad8237d 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstantsOne.java +++ b/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstantsOne.java @@ -1174,4 +1174,9 @@ public interface IMessagesConstantsOne extends IMessagesConstantsTwo { * EXP_UPDATE_TIME */ String EXP_UPDATE_TIME = "EXP_UPDATE_TIME"; + + /** + * EXP_UPDATE_TIME + */ + String WRITE_DATA = "WRITE_DATA"; } \ No newline at end of file diff --git a/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/VariableRunLine.java b/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/VariableRunLine.java index e37be0f26caf7ed4e95ae8fb68e2893288885c07..54f46cd1b1c16141a07f7b9b222ea4f1d8e925e7 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/VariableRunLine.java +++ b/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/VariableRunLine.java @@ -52,7 +52,12 @@ public class VariableRunLine { public static volatile Boolean isPldebugger; /** - * id of function + * isDebugUsagehint of function + */ + public static volatile Boolean isDebugUsagehint; + + /** + * currentOid of function */ public static volatile long currentOid; } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/ExecuteEditorItem.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/ExecuteEditorItem.java index dc2a0dc053ee1c56b15744aea0c8438eb2f2827e..b6bb969fff74e6a4671ec3a9f3111c3788534ef2 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/ExecuteEditorItem.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/ExecuteEditorItem.java @@ -48,6 +48,7 @@ import org.opengauss.mppdbide.presentation.IExecutionContext; import org.opengauss.mppdbide.presentation.IResultDisplayUIManager; import org.opengauss.mppdbide.utils.IMessagesConstants; import org.opengauss.mppdbide.utils.MPPDBIDEConstants; +import org.opengauss.mppdbide.utils.VariableRunLine; import org.opengauss.mppdbide.utils.exceptions.DatabaseCriticalException; import org.opengauss.mppdbide.utils.exceptions.DatabaseOperationException; import org.opengauss.mppdbide.utils.exceptions.MPPDBIDEException; @@ -117,7 +118,9 @@ public class ExecuteEditorItem implements ExecuteWrapper { checkVersion(editor); if (editor.getDebugObject() instanceof DebugObjects) { debugObject = (DebugObjects) editor.getDebugObject(); + VariableRunLine.isDebugUsagehint = null; if (!isPldebugger) { + VariableRunLine.isDebugUsagehint = false; debugObject.setUsagehint(MessageConfigLoader.getProperty(IMessagesConstants.COVERAGE_HINT)); } else { debugObject.setUsagehint(""); diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/StartDebugHandler.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/StartDebugHandler.java index 06f2898585f62784fe2aaae0fac734ed4ec01d21..dd1b092054199548f4d74e2331acc5b740ce67bf 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/StartDebugHandler.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/StartDebugHandler.java @@ -25,6 +25,7 @@ import org.eclipse.e4.core.di.annotations.CanExecute; import org.eclipse.e4.core.di.annotations.Execute; import org.eclipse.swt.widgets.Display; import org.opengauss.mppdbide.adapter.keywordssyntax.SQLSyntax; +import org.opengauss.mppdbide.bl.serverdatacache.DebugObjects; import org.opengauss.mppdbide.bl.serverdatacache.DefaultParameter; import org.opengauss.mppdbide.bl.serverdatacache.IDebugObject; import org.opengauss.mppdbide.bl.serverdatacache.ObjectParameter; @@ -34,6 +35,7 @@ import org.opengauss.mppdbide.debuger.service.QueryService; import org.opengauss.mppdbide.debuger.service.WrappedDebugService; import org.opengauss.mppdbide.debuger.vo.FunctionVo; import org.opengauss.mppdbide.utils.IMessagesConstants; +import org.opengauss.mppdbide.utils.VariableRunLine; import org.opengauss.mppdbide.utils.exceptions.DatabaseCriticalException; import org.opengauss.mppdbide.utils.exceptions.DatabaseOperationException; import org.opengauss.mppdbide.utils.exceptions.MPPDBIDEException; @@ -111,6 +113,19 @@ public class StartDebugHandler { } } + private void setUsagehint(PLSourceEditor plSourceEditor) { + if (plSourceEditor.getDebugObject() instanceof DebugObjects) { + VariableRunLine.isDebugUsagehint = null; + DebugObjects debugObject = (DebugObjects) plSourceEditor.getDebugObject(); + if (!VariableRunLine.isPldebugger) { + VariableRunLine.isDebugUsagehint = true; + debugObject.setUsagehint(MessageConfigLoader.getProperty(IMessagesConstants.WRITE_DATA)); + } else { + debugObject.setUsagehint(""); + } + } + } + private void startInputParamDialog() { new InputParamsJob("input dialog", null, this).schedule(); }