From 4dc692fbcdf6075c9cc2f85b12498ed93e2f6387 Mon Sep 17 00:00:00 2001 From: gitama Date: Mon, 4 Jul 2022 18:17:52 +0800 Subject: [PATCH 001/125] get debugger command from different version --- .../debuger/debug/DebugConstants.java | 63 ++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java index 8e28d521..3f8b971d 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java @@ -15,6 +15,7 @@ package org.opengauss.mppdbide.debuger.debug; +import java.util.LinkedHashMap; import java.util.Locale; import java.util.stream.Stream; @@ -28,11 +29,45 @@ public class DebugConstants { * default string length */ public static final int DEFAULT_STRING_BUILD_LEN = 128; + public static final String PL_DEBUGGER="pldebugger"; + public static final String DBE_DEBUGGER="dbe_debugger"; + public static final LinkedHashMap enumMap=getEnumMap(DebugOpt.class); + + /** + * get DebugOpt by different debugger + * @param debugOpt + * @param debuggerVersion + * @return DebugOpt + */ + public static DebugOpt getDebugOptByDbVersion(DebugOpt debugOpt,String debuggerVersion) { + if(PL_DEBUGGER.equalsIgnoreCase(debuggerVersion)) { + return debugOpt; + }else { + String optName=debugOpt.name(); + optName="DBE_"+optName; + return enumMap.get(optName); + } + } + + /** + * get name and all enum map + * @param + * @param enumClass + * @return LinkedHashMap + */ + public static > LinkedHashMap getEnumMap(final Class enumClass) { + final LinkedHashMap map = new LinkedHashMap<>(); + for (final E e : enumClass.getEnumConstants()) { + map.put(e.name(), e); + } + return map; + } /** * Title: the DebugOpt enum use to descript debuger interface */ public static enum DebugOpt { + //pldebugger command DEBUG_ON("pldbg_on", 0), DEBUG_OFF("pldbg_off", 0), DEBUG_VERSION("pldbg_get_proxy_info", 0), @@ -49,7 +84,25 @@ public class DebugConstants { GET_STACKS("pldbg_get_stack", 1), GET_BREAKPOINTS("pldbg_get_breakpoints", 1), DROP_BREAKPOINT("pldbg_drop_breakpoint", 3), - SET_BREAKPOINT("pldbg_set_breakpoint", 3); + SET_BREAKPOINT("pldbg_set_breakpoint", 3), + //dbe_debugger command + DBE_DEBUG_ON("turn_on",1), + DBE_DEBUG_OFF("turn_off", 1), + DBE_DEBUG_VERSION("pldbg_get_proxy_info", 0), + DBE_GET_SOURCE_CODE("pldbg_get_source", 1), + DBE_GET_TOTAL_SOURCE_CODE("pg_get_functiondef", 1), + DBE_START_SESSION("plpgsql_oid_debug", 1), + DBE_ATTACH_SESSION("pldbg_attach_to_port", 1), + DBE_STEP_INTO("pldbg_step_into", 1), + DBE_STEP_OVER("pldbg_step_over", 1), + DBE_STEP_OUT("pldbg_step_out", 1), + DBE_CONTINUE_EXEC("pldbg_continue", 1), + DBE_ABORT_TARGET("pldbg_abort_target", 1), + DBE_GET_VARIABLES("pldbg_get_variables", 1), + DBE_GET_STACKS("pldbg_get_stack", 1), + DBE_GET_BREAKPOINTS("info_breakpoints", 1), + DBE_DROP_BREAKPOINT("delete_breakpoint", 2), + DBE_SET_BREAKPOINT("add_breakpoint", 3); /** * opt of interface @@ -95,4 +148,12 @@ public class DebugConstants { paramReplace ); } + + /** + * get openGauss db version sql + * @return String query sql + */ + public static String getDbVersionSql() { + return "select version()"; + } } -- Gitee From ba5f6bf6d141adbe50f9fcb45ef63a2d5fb7945a Mon Sep 17 00:00:00 2001 From: gitama Date: Mon, 4 Jul 2022 18:57:26 +0800 Subject: [PATCH 002/125] get debugger version info --- .../debuger/debug/DebugConstants.java | 15 +++++------ .../debuger/service/DebugService.java | 25 +++++++++++++++++++ .../debuger/service/IDebugService.java | 6 +++++ 3 files changed, 39 insertions(+), 7 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java index 3f8b971d..0bb3173f 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java @@ -29,8 +29,9 @@ public class DebugConstants { * default string length */ public static final int DEFAULT_STRING_BUILD_LEN = 128; - public static final String PL_DEBUGGER="pldebugger"; + public static final String PL_DEBUGGER="pl_debugger"; public static final String DBE_DEBUGGER="dbe_debugger"; + public static final Integer DBE_DEBUGGER_MIN_VERSION=300; public static final LinkedHashMap enumMap=getEnumMap(DebugOpt.class); /** @@ -39,7 +40,7 @@ public class DebugConstants { * @param debuggerVersion * @return DebugOpt */ - public static DebugOpt getDebugOptByDbVersion(DebugOpt debugOpt,String debuggerVersion) { + public static DebugOpt getDebugOptByDebuggerVersion(DebugOpt debugOpt,String debuggerVersion) { if(PL_DEBUGGER.equalsIgnoreCase(debuggerVersion)) { return debugOpt; }else { @@ -86,8 +87,8 @@ public class DebugConstants { DROP_BREAKPOINT("pldbg_drop_breakpoint", 3), SET_BREAKPOINT("pldbg_set_breakpoint", 3), //dbe_debugger command - DBE_DEBUG_ON("turn_on",1), - DBE_DEBUG_OFF("turn_off", 1), + DBE_DEBUG_ON("DBE_PLDEBUGGER.turn_on",1), + DBE_DEBUG_OFF("DBE_PLDEBUGGER.turn_off", 1), DBE_DEBUG_VERSION("pldbg_get_proxy_info", 0), DBE_GET_SOURCE_CODE("pldbg_get_source", 1), DBE_GET_TOTAL_SOURCE_CODE("pg_get_functiondef", 1), @@ -100,9 +101,9 @@ public class DebugConstants { DBE_ABORT_TARGET("pldbg_abort_target", 1), DBE_GET_VARIABLES("pldbg_get_variables", 1), DBE_GET_STACKS("pldbg_get_stack", 1), - DBE_GET_BREAKPOINTS("info_breakpoints", 1), - DBE_DROP_BREAKPOINT("delete_breakpoint", 2), - DBE_SET_BREAKPOINT("add_breakpoint", 3); + DBE_GET_BREAKPOINTS("DBE_PLDEBUGGER.info_breakpoints", 1), + DBE_DROP_BREAKPOINT("DBE_PLDEBUGGER.delete_breakpoint", 2), + DBE_SET_BREAKPOINT("DBE_PLDEBUGGER.add_breakpoint", 3); /** * opt of interface diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java index ea5d4e2d..70944011 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java @@ -681,4 +681,29 @@ public class DebugService implements NoticeListener, EventHander, IDebugService ps.execute(); } } + + @Override + public String getDebuggerVersion() throws SQLException { + String sql= DebugConstants.getDbVersionSql(); + try (PreparedStatement ps = serverConn.getStatement(sql)) { + try (ResultSet rs = ps.executeQuery()) { + if (rs.next()) { + // (openGauss 2.1.0 build 590b0f8e) openGauss version info + String res= rs.getObject(1).toString(); + MPPDBIDELoggerUtility.debug("openGauss db info res:" + res); + Integer start=res.indexOf("openGauss"); + Integer end=res.indexOf("build"); + String versionStr= res.substring(start,end).replaceAll(".", ""); + Integer version=Integer.valueOf(versionStr); + if (version Date: Wed, 6 Jul 2022 11:38:58 +0800 Subject: [PATCH 003/125] query res convert --- .../debuger/debug/DebugConstants.java | 10 ++--- .../debuger/service/DebugService.java | 25 +----------- .../debuger/service/IDebugService.java | 7 +--- .../debuger/service/QueryService.java | 11 ++++-- .../debuger/service/WrappedDebugService.java | 2 + .../mppdbide/debuger/vo/SourceCodeVo.java | 4 ++ .../mppdbide/debuger/vo/VersionVo.java | 39 ++++++++++--------- .../mppdbide/utils/IMessagesConstants.java | 1 + .../core/sourceeditor/PLSourceEditorCore.java | 25 ++++++++++++ 9 files changed, 68 insertions(+), 56 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java index 0bb3173f..56401c17 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java @@ -71,7 +71,7 @@ public class DebugConstants { //pldebugger command DEBUG_ON("pldbg_on", 0), DEBUG_OFF("pldbg_off", 0), - DEBUG_VERSION("pldbg_get_proxy_info", 0), + DEBUG_VERSION("version", 0), GET_SOURCE_CODE("pldbg_get_source", 1), GET_TOTAL_SOURCE_CODE("pg_get_functiondef", 1), START_SESSION("plpgsql_oid_debug", 1), @@ -87,10 +87,10 @@ public class DebugConstants { DROP_BREAKPOINT("pldbg_drop_breakpoint", 3), SET_BREAKPOINT("pldbg_set_breakpoint", 3), //dbe_debugger command - DBE_DEBUG_ON("DBE_PLDEBUGGER.turn_on",1), - DBE_DEBUG_OFF("DBE_PLDEBUGGER.turn_off", 1), - DBE_DEBUG_VERSION("pldbg_get_proxy_info", 0), - DBE_GET_SOURCE_CODE("pldbg_get_source", 1), + DBE_DEBUG_ON("pldbg_on",0), + DBE_DEBUG_OFF("pldbg_off", 0), + DBE_DEBUG_VERSION("version", 0), + DBE_GET_SOURCE_CODE("DBE_PLDEBUGGER.info_code", 1), DBE_GET_TOTAL_SOURCE_CODE("pg_get_functiondef", 1), DBE_START_SESSION("plpgsql_oid_debug", 1), DBE_ATTACH_SESSION("pldbg_attach_to_port", 1), diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java index 70944011..88a7d5ae 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java @@ -682,28 +682,5 @@ public class DebugService implements NoticeListener, EventHander, IDebugService } } - @Override - public String getDebuggerVersion() throws SQLException { - String sql= DebugConstants.getDbVersionSql(); - try (PreparedStatement ps = serverConn.getStatement(sql)) { - try (ResultSet rs = ps.executeQuery()) { - if (rs.next()) { - // (openGauss 2.1.0 build 590b0f8e) openGauss version info - String res= rs.getObject(1).toString(); - MPPDBIDELoggerUtility.debug("openGauss db info res:" + res); - Integer start=res.indexOf("openGauss"); - Integer end=res.indexOf("build"); - String versionStr= res.substring(start,end).replaceAll(".", ""); - Integer version=Integer.valueOf(versionStr); - if (version getSourceCode(Long oid) throws SQLException { - return getTempSourceCode(oid, - DebugConstants.DebugOpt.GET_SOURCE_CODE, - SourceCodeVo.class); + DebugOpt opt=VersionHelper.getDebugOptByDebuggerVersion(conn,DebugConstants.DebugOpt.GET_SOURCE_CODE); + return getTempSourceCode(oid,opt,SourceCodeVo.class); } /** @@ -93,7 +96,7 @@ public class QueryService implements IService { debugOpt, inputParams)) { try (ResultSet rs = ps.executeQuery()) { if (rs.next()) { - return Optional.of(ParseVo.parse(rs, clazz)); + return Optional.of(QueryResVoConvertHelper.parse(rs, clazz,conn)); } return Optional.empty(); } diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/WrappedDebugService.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/WrappedDebugService.java index 0399a8f1..8b5bc4e4 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/WrappedDebugService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/WrappedDebugService.java @@ -314,4 +314,6 @@ public class WrappedDebugService implements IDebugService, IHandlerManger { public void setRollback(boolean isRollback) { debugService.setRollback(isRollback); } + + } diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java index 967e572f..07afdb40 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java @@ -37,4 +37,8 @@ public class SourceCodeVo { public String getSourceCode() { return pldbg_get_source; } + + public void setSourceCode(String sourceCode) { + this.pldbg_get_source=sourceCode; + } } diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/VersionVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/VersionVo.java index aebe2185..27087d15 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/VersionVo.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/VersionVo.java @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2022 Huawei Technologies Co.,Ltd. * * openGauss is licensed under Mulan PSL v2. @@ -6,7 +6,7 @@ * You may obtain a copy of Mulan PSL v2 at: * * http://license.coscl.org.cn/MulanPSL2 - * + * * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. @@ -16,6 +16,7 @@ package org.opengauss.mppdbide.debuger.vo; import org.opengauss.mppdbide.debuger.annotation.DumpFiled; +import org.opengauss.mppdbide.debuger.debug.DebugConstants; /** * Title: VersionVo for use @@ -27,23 +28,25 @@ public class VersionVo { * this is version str */ @DumpFiled - public String serverversionstr; + public String version; - /** - * this is version number - */ - @DumpFiled - public Integer serverversionnum; + public String debuggerVersion; - /** - * this is proxy api version - */ - @DumpFiled - public Integer proxyapiver; + public void setVersion(String version) { + this.version = version; + } - /** - * this is server process id - */ - @DumpFiled - public Long serverprocessid; + public String getDebuggerVersion() { + String versionStr=this.version; + Integer start = versionStr.indexOf("openGauss")+9; + Integer end = versionStr.indexOf("build"); + versionStr = versionStr.substring(start, end); + versionStr=versionStr.replaceAll("\\.", "").trim(); + Integer version = Integer.valueOf(versionStr); + if (version < DebugConstants.DBE_DEBUGGER_MIN_VERSION) { + return DebugConstants.PL_DEBUGGER; + } else { + return DebugConstants.DBE_DEBUGGER; + } + } } diff --git a/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java b/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java index 9ed69f4b..d955d39e 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java +++ b/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java @@ -2135,6 +2135,7 @@ public interface IMessagesConstants extends IMessagesConstantsOne { String PROPERTIES_COMPLEX_DATATYPE_ERROR_MSG = "PROPERTIES_COMPLEX_DATATYPE_ERROR_MSG"; String PREFERENCE_SHORTCUT_KEY_BINDING_TOGGLE_LINE_COMMENTS = "PREFERENCE_SHORTCUT_KEY_BINDING_TOGGLE_LINE_COMMENTS"; + String REMARK_SHORTCUT_KEY_BINDING_TOGGLE_LINE_COMMENTS="REMARK_SHORTCUT_KEY_BINDING_TOGGLE_LINE_COMMENTS"; String PREFERENCE_SHORTCUT_KEY_BINDING_TOGGLE_BLOCK_COMMENTS = "PREFERENCE_SHORTCUT_KEY_BINDING_TOGGLE_BLOCK_COMMENTS"; diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java index b45bb730..c8be61ec 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java @@ -337,6 +337,7 @@ public final class PLSourceEditorCore extends SelectMenuItem implements IPropert addPasteMenuItem(menu); addSelectAllMenuItem(menu); addToggleLineCommentMenuItem(menu); + addRemarkLineCommentMenuItem(menu); addToggleBlockCommentMenuItem(menu); addFormatMenuItem(menu); addExecStmtMenuItem(menu); @@ -1334,6 +1335,30 @@ public final class PLSourceEditorCore extends SelectMenuItem implements IPropert toggleLineComments.setImage(IconUtility.getIconImage(IiconPath.ICON_TOGGLE_LINE_COMMENTS, this.getClass())); } + + private void addRemarkLineCommentMenuItem(Menu menuItem) { + toggleLineComments = new MenuItem(menuItem, SWT.PUSH); + toggleLineComments.setText(MessageConfigLoader + .getProperty(IMessagesConstants.REMARK_SHORTCUT_KEY_BINDING_TOGGLE_LINE_COMMENTS)); + toggleLineComments.addSelectionListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent event) { + Command cmd = commandService.getCommand("org.opengauss.mppdbide.view.command.ToggleLineComment"); + ParameterizedCommand parameterizedCmd = new ParameterizedCommand(cmd, null); + handlerService.executeHandler(parameterizedCmd); + } + + @Override + public void widgetDefaultSelected(SelectionEvent event) { + + } + }); + toggleLineComments.setImage(IconUtility.getIconImage(IiconPath.ICON_TOGGLE_LINE_COMMENTS, this.getClass())); + } + + + /** * Adds the toggle block comment menu item. * -- Gitee From 3c64de93b91fc8311310569a0b6c6ec1b6bb380d Mon Sep 17 00:00:00 2001 From: gitama Date: Wed, 6 Jul 2022 11:47:16 +0800 Subject: [PATCH 004/125] query res convert --- .../common/QueryResVoConvertHelper.java | 61 +++++++++++++++++++ .../mppdbide/common/VersionHelper.java | 41 +++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/QueryResVoConvertHelper.java create mode 100644 code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/VersionHelper.java diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/QueryResVoConvertHelper.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/QueryResVoConvertHelper.java new file mode 100644 index 00000000..760bc159 --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/QueryResVoConvertHelper.java @@ -0,0 +1,61 @@ +package org.opengauss.mppdbide.common; + +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.opengauss.mppdbide.debuger.annotation.ParseVo; +import org.opengauss.mppdbide.debuger.debug.DebugConstants; +import org.opengauss.mppdbide.debuger.vo.SourceCodeVo; +import org.opengauss.mppdbide.debuger.vo.VersionVo; +import org.opengauss.mppdbide.debuger.vo.dbe.InfoCodeVo; + +/** + * Convert openGauss 3.0 vo to openGauss2.0 vo + * + * @author gitam + */ +public class QueryResVoConvertHelper { + + + public static T parse(ResultSet rs,Class clazz,IConnection conn) throws SQLException { + VersionVo version=VersionHelper.getDebuggerVersion(conn); + return parse(rs,clazz,version); + + } + + public static T parse(ResultSet rs,Class clazz,VersionVo versionVo) throws SQLException { + String className= clazz.getName(); + boolean needConvert=versionVo.getDebuggerVersion().equalsIgnoreCase(DebugConstants.DBE_DEBUGGER); + switch(className) { + case "org.opengauss.mppdbide.debuger.vo.SourceCodeVo": + if(needConvert) { + return convertToSourceCodeVo(rs); + } + ; + } + return null; + + } + + + public static T convertToSourceCodeVo(ResultSet rs) throws SQLException { + SourceCodeVo sourceCodeVo = new SourceCodeVo(); + List infoCodeList= ParseVo.parseList(rs,InfoCodeVo.class); + StringBuffer buffer=new StringBuffer();; + infoCodeList.forEach(a->{ + buffer.append(a.query) ; + }); + sourceCodeVo.setSourceCode(buffer.toString()); + return (T) sourceCodeVo; + } + + + + + +} diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/VersionHelper.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/VersionHelper.java new file mode 100644 index 00000000..3389abbe --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/VersionHelper.java @@ -0,0 +1,41 @@ +package org.opengauss.mppdbide.common; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import org.opengauss.mppdbide.debuger.debug.DebugConstants; +import org.opengauss.mppdbide.debuger.debug.DebugConstants.DebugOpt; +import org.opengauss.mppdbide.debuger.vo.VersionVo; +import org.opengauss.mppdbide.utils.logger.MPPDBIDELoggerUtility; + +public class VersionHelper { + + /** + * get openGauss debugger version + * @return pl_debugger or dbe_debugger + */ + public static VersionVo getDebuggerVersion(IConnection serverConn) throws SQLException { + String sql= DebugConstants.getDbVersionSql(); + VersionVo versionVo=new VersionVo(); + try (PreparedStatement ps = serverConn.getStatement(sql)) { + try (ResultSet rs = ps.executeQuery()) { + if (rs.next()) { + // (openGauss 2.1.0 build 590b0f8e) openGauss version info + String version= rs.getObject(1).toString(); + MPPDBIDELoggerUtility.debug("openGauss db info version:" + version); + versionVo.setVersion(version); + } + MPPDBIDELoggerUtility.debug("openGauss db info is empty!"); + return versionVo; + } + } + } + + public static DebugOpt getDebugOptByDebuggerVersion(IConnection serverConn,DebugOpt debugOpt) throws SQLException { + VersionVo versionVo=getDebuggerVersion(serverConn); + DebugOpt res=DebugConstants.getDebugOptByDebuggerVersion(debugOpt,versionVo.getDebuggerVersion()); + return res; + } + +} -- Gitee From e10bb0efea0f55dcec86083fb5280adafe29d4ff Mon Sep 17 00:00:00 2001 From: gitama Date: Wed, 6 Jul 2022 11:49:50 +0800 Subject: [PATCH 005/125] remark line meun --- .../src/messages.properties | 3 +- .../src/messages_zh_CN.properties | 425 +++++++++--------- 2 files changed, 215 insertions(+), 213 deletions(-) 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 b80200b1..f12e47f1 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages.properties +++ b/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages.properties @@ -285,7 +285,7 @@ ERR_DUPLICATE_INDEX_NAME = Index name already exists. Enter different name. ERR_INDEX_COLS_EMPTY = Select at least one column. -COPYRIGHT_MSG_HUAWEI = Copyright \u00a9 2016-2020 Huawei Technologies Co. Ltd. +COPYRIGHT_MSG_HUAWEI = Copyright \u00A9 2016-2020 Huawei Technologies Co. Ltd. RIGHTS_RESERVRED_MSG_HUAWEI = All Rights Reserved. ABOUT_DATA_STUDIO_MSG= About Data Studio VERSION_NO_MSG=Version: @@ -2348,6 +2348,7 @@ PROPERTIES_ERROR_MESSAGE={0} has been modified/dropped. Cancel changes, refresh, PROPERTIES_ERROR_MESSAGE_FOR_CONSTRAINT=Constraint name has been modified. Cancel changes, refresh, and try again. PROPERTIES_COMPLEX_DATATYPE_ERROR_MSG={0} has been modified/dropped, refresh, and try again. PREFERENCE_SHORTCUT_KEY_BINDING_TOGGLE_LINE_COMMENTS=Comment/Uncomment Lines +REMARK_SHORTCUT_KEY_BINDING_TOGGLE_LINE_COMMENTS=remark Line /UnRemark Line (coverage) KEY_BINDING_TOGGLE_LINE_COMMENTS_DESC=Comment/Uncomment each line individually in SQL Terminal and Procedure/Function Source Viewer PREFERENCE_SHORTCUT_KEY_BINDING_TOGGLE_BLOCK_COMMENTS=Comment/Uncomment Block KEY_BINDING_TOGGLE_BLOCK_COMMENTS_DESC=Comment/Uncomment block of lines/content in SQL Terminal and Procedure/Function Source Viewer 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 01f4f459..b12252a2 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 @@ -4,7 +4,7 @@ ENTER_CLIENT_SSLPVT_KEYFILE = \u8F93\u5165\u5BA2\u6237\u7AEFSSL\u79C1\u94A5\u658 BTN_CLIENT_PVTKEY = *.key INVALID_SSL_KEY = SSL\u5BC6\u94A5\u6587\u4EF6\u65E0\u6548 -COLUMN_DEFAULT_VALUE_EXPRESSION = \u7f3a\u7701\u8868\u8FBE\u5F0F +COLUMN_DEFAULT_VALUE_EXPRESSION = \u7F3A\u7701\u8868\u8FBE\u5F0F MULTISORT_POPUP_WINDOW_TITLE = \u591A\u5217\u6392\u5E8F COLUMN_PRIORITY = \u4F18\u5148\u7EA7 COLUMN_COLUMN_NAME = \u5217\u540D @@ -214,7 +214,7 @@ STATUS_MSG_ADD_COLUMN = \u6DFB\u52A0\u5217... STATUS_MSG_ADD_CONSTRAINT = \u6DFB\u52A0\u7EA6\u675F... -STATUS_MSG_SET_COLUMN_DEFAULT_VALUE = \u8BBE\u7F6E\u7f3a\u7701\u503C... +STATUS_MSG_SET_COLUMN_DEFAULT_VALUE = \u8BBE\u7F6E\u7F3A\u7701\u503C... STATUS_MSG_ANALYSE_TABLE = \u5206\u6790\u8868... @@ -270,7 +270,7 @@ ERR_DUPLICATE_INDEX_NAME = \u7D22\u5F15\u540D\u79F0\u5DF2\u7ECF\u5B58\u5728.\u8B ERR_INDEX_COLS_EMPTY = \u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u5217. -COPYRIGHT_MSG_HUAWEI = \u7248\u6743\u6240\u6709 \u00a9 \u534E\u4E3A\u6280\u672F\u6709\u9650\u516C\u53F82016-2020\u3002 +COPYRIGHT_MSG_HUAWEI = \u7248\u6743\u6240\u6709 \u00A9 \u534E\u4E3A\u6280\u672F\u6709\u9650\u516C\u53F82016-2020\u3002 RIGHTS_RESERVRED_MSG_HUAWEI = \u4FDD\u7559\u4E00\u5207\u6743\u5229\u3002 ABOUT_DATA_STUDIO_MSG= \u5173\u4E8E Data Studio VERSION_NO_MSG=\u7248\u672C: @@ -394,7 +394,7 @@ RENAME_TABLE_TO= \u5DF2\u5C06{0}\u8868\u91CD\u547D\u540D\u4E3A {1}.{2}\u3002 RENAME_TABLE_NEW=\u4E3A\u6A21\u5F0F\u4E2D\u7684{0}\u5206\u533A\u8868\u8F93\u5165\u65B0\u540D\u79F0 RENAME_TABLE_TITLE=\u91CD\u547D\u540D -RENAME_TRIGGER_WAIT =\u91CD\u547D\u540D{0}\u89e6\u53d1\u5668\uFF0C\u6B63\u5728\u5904\u7406\u4E2D... +RENAME_TRIGGER_WAIT =\u91CD\u547D\u540D{0}\u89E6\u53D1\u5668\uFF0C\u6B63\u5728\u5904\u7406\u4E2D... SET_COLUMN_TOGGLE_TITLE=\u5207\u6362\u975E\u7A7A\u5C5E\u6027 SET_COLUMN_TOGGLE_MSG=\u60A8\u786E\u5B9A\u8981\u5207\u6362{0}\u5217\u4E3A\u975E\u7A7A\u5C5E\u6027\uFF1F @@ -437,7 +437,7 @@ EXEC_PLAN_OK=\u786E\u5B9A SET_TABLESPACE=\u8868\u7A7A\u95F4 SET_TABLE_FROM_TABLESPACE=\u8BE5\u8868\u5DF2\u4ECE {0}\u79FB\u52A8\u5230{1}.{2}\u3002 -SET_TABLE_FROM_TABLESPACE_NULL=\u8be5\u8868 {0} \u5df2\u4ece {1} \u79fb\u52a8\u5230 {2} +SET_TABLE_FROM_TABLESPACE_NULL=\u8BE5\u8868 {0} \u5DF2\u4ECE {1} \u79FB\u52A8\u5230 {2} SET_TABLESPACE_TITLE=\u8BBE\u7F6E\u8868\u7A7A\u95F4 SET_TABLESPACE_IN=\u8BF7\u4E3A\u8868{0}.{1}\u9009\u62E9\u4E00\u4E2A\u65B0\u7684\u8868\u7A7A\u95F4 TRUNCATE_TABLE_TITLE=\u622A\u65AD @@ -571,7 +571,7 @@ INDEX_UI_ADD_TO=\u589E\u52A0\u7D22\u5F15 INDEX_UI_REMOVE=\u4ECE\u7D22\u5F15\u4E2D\u5220\u9664 INDEX_UI_MOVE_UP=\u5347\u7EA7 INDEX_UI_MOVE_DOWN=\u964D\u7EA7 -INDEX_UI_TYPE=\u7d22\u5f15\u7c7b\u578b +INDEX_UI_TYPE=\u7D22\u5F15\u7C7B\u578B INDEX_UI_ACCESS_METHOD=\u8BBF\u95EE\u65B9\u5F0F INDEX_UI_TABLESPACE=\u8868\u7A7A\u95F4 @@ -605,7 +605,7 @@ CREATE_TABLE_CONSTRAINT_MSG= \u8BF7\u9009\u62E9\u5217\u7EA6\u675F\u6216\u68C0\u6 CREATE_TABLE_CONST_EDIT_MSG= \u8BF7\u4ECE\u8868\u4E2D\u9009\u62E9\u81F3\u5C11\u4E00\u4E2A\u7EA6\u675F\u7F16\u8F91 CREATE_TABLE_CONST_DELETE= \u8BF7\u4ECE\u8868\u4E2D\u9009\u62E9\u81F3\u5C11\u4E00\u4E2A\u7EA6\u675F\u5220\u9664 CREATE_TABLE_VALID_NAME= \u8BF7\u8F93\u5165\u6709\u6548\u7684\u5217\u540D -CREATE_TABLE_COLUMN_EXISTS = {0} \u5217\u5df2\u5b58\u5728\u3002 +CREATE_TABLE_COLUMN_EXISTS = {0} \u5217\u5DF2\u5B58\u5728\u3002 CREATE_TABLE_NO_CLM_MSG= \u60A8\u8FD8\u6CA1\u6709\u9009\u62E9\u4EFB\u4F55\u5217\u6216\u6CA1\u6709\u66F4\u591A\u7684\u884C\u53EF\u79FB\u52A8 CREATE_TABLE_FINISH_BTN=\u5B8C\u6210 CREATE_TABLE_NEXT_BTN=\u4E0B\u4E00\u6B65 @@ -749,7 +749,7 @@ ERROR_DURING_SCHEMA_CREATION = \u521B\u5EFA\u6A21\u5F0F\u65F6\u51FA\u9519\uFF1A DATABASE_DISCONNECT = \u65AD\u5F00\u8FDE\u63A5\u786E\u8BA4 DISCONNECT_CONFIRMATION = \u786E\u5B9A\u8981\u65AD\u5F00''{0}''\u5417\uFF1F \ \n\ - \u8BF4\u660E: \u65ad\u5f00\u6570\u636e\u5e93\u8fde\u63a5\u53ef\u80fd\u4f1a\u53d6\u6d88\u6240\u6709\u6b63\u5728\u8fdb\u884c\u7684\u6570\u636e\u5e93\u64cd\u4f5c\u3002 + \u8BF4\u660E: \u65AD\u5F00\u6570\u636E\u5E93\u8FDE\u63A5\u53EF\u80FD\u4F1A\u53D6\u6D88\u6240\u6709\u6B63\u5728\u8FDB\u884C\u7684\u6570\u636E\u5E93\u64CD\u4F5C\u3002 DISCONNECTED_FROM_SERVER = \u5DF2\u65AD\u5F00\u6570\u636E\u5E93\u8FDE\u63A5\uFF1A {0}.{1} @@ -816,16 +816,16 @@ UNABLE_TO_ADD_CONS = \u65E0\u6CD5\u6DFB\u52A0\u65B0\u7684\u7EA6\u675F.{0}\u670D\ ERR_WHILE_STNG_COL_VAL = \u8BBE\u7F6E\u5217\u7F3A\u7701\u503C\u65F6\u51FA\u9519 PLS_ENTER_TABLE_FOR_CONS = = \u8BF7\u9009\u62E9\u7EA6\u675F\u5F15\u7528\u5217 -CUURENT_DFLT_VAL = \u5F53\u524D\u7f3a\u7701\u503C\uFF1A{0} -CUURENT_DFLT_VALUE=\u7f3a\u7701\u503C\uFF1A +CUURENT_DFLT_VAL = \u5F53\u524D\u7F3A\u7701\u503C\uFF1A{0} +CUURENT_DFLT_VALUE=\u7F3A\u7701\u503C\uFF1A CONSTRAINT_TYPE=\u7EA6\u675F\u7C7B\u578B CONSTRAINT_NAME=\u7EA6\u675F\u540D CONSTRAINT_DESC=\u8BF7\u9009\u62E9\u81F3\u5C11\u4E00\u5217\u4F5C\u4E3A\u5916\u952E\u5F15\u7528 CONSTRAINT_SELECTED_COLUMNS=\u9009\u5B9A\u7684\u5217 -DATA_TYPE_CONVERSION_TIP = \u63d0\u793a\uff1a\u501f\u52a9\u9690\u5f0f\u7c7b\u578b\u8f6c\u6362\uff0c\u6709\u4e9b\u7c7b\u578b\u8f6c\u6362\u53ef\u80fd\u4f1a\u5931\u8d25 +DATA_TYPE_CONVERSION_TIP = \u63D0\u793A\uFF1A\u501F\u52A9\u9690\u5F0F\u7C7B\u578B\u8F6C\u6362\uFF0C\u6709\u4E9B\u7C7B\u578B\u8F6C\u6362\u53EF\u80FD\u4F1A\u5931\u8D25 UPDATE_DATA_TYPE = \u66F4\u6539\u6570\u636E\u7C7B\u578B TYPE_DES = \u7C7B\u578B\u8BF4\u660E -CURRENT_DATA_TYPE = {0}\u5217\u5f53\u524d\u6570\u636e\u7c7b\u578b: {1} +CURRENT_DATA_TYPE = {0}\u5217\u5F53\u524D\u6570\u636E\u7C7B\u578B: {1} CHANGE_DATA_TYPE_FOR_COL =\u5DF2\u4FEE\u6539\u8BE5\u5217\u7684\u6570\u636E\u7C7B\u578B\uFF1A{0}.{1}.{2} ERR_CHANGE_DTYPE = \u9519\u8BEF - \u66F4\u6539\u6570\u636E\u7C7B\u578B @@ -847,13 +847,13 @@ CONSTRAINT_ON_TABLESPACE= \u5728\u8868\u7A7A\u95F4 CONSTRAINT_DEFERABLE=\u5EF6\u8FDF ARRAY_DIMENSIONS = \u9635\u5217\u7EF4\u5EA6 CHECK_COLUMN_UI =\u68C0\u67E5 -DFLT_CLM_UI =\u7f3a\u7701 +DFLT_CLM_UI =\u7F3A\u7701 ON_DELETE = \u5220\u9664 REF_COL = \u5F15\u7528\u5217 ADD_NEW_CONSTRAINT =\u6DFB\u52A0\u65B0\u7EA6\u675F -EDIT_CONSTRAINT =\u7f16\u8f91\u7ea6\u675f -ALTER_COLUMN_SHELL_TEXT=\u4e3a {0}.{1}.{2}\u8bbe\u7f6e\u7f3a\u7701\u503c +EDIT_CONSTRAINT =\u7F16\u8F91\u7EA6\u675F +ALTER_COLUMN_SHELL_TEXT=\u4E3A {0}.{1}.{2}\u8BBE\u7F6E\u7F3A\u7701\u503C EDIT_CONSTRAINT_LABEL=\u5F53\u524D\u8868\u8FBE\u5F0F: CONSTRAINT_INITIALLY_DEFERRED= \u521D\u59CB\u5316\u5EF6\u8FDF CONSTRAINT_FILL_FACTOR=\u586B\u5145\u56E0\u5B50 @@ -864,9 +864,9 @@ AVL_COL = \u53EF\u7528\u5217 CONSTRAINT_EXPRESSION=\u8BF7\u8F93\u5165\u68C0\u67E5\u7EA6\u675F\u7684\u8868\u8FBE\u5F0F CONSTRAINT_CHECK_EXPRESSION=\u68C0\u67E5\u8868\u8FBE\u5F0F -CONSTRAINT_FOREIGN_NAMESPACE =\u547d\u540d\u7a7a\u95f4 -CONSTRAINT_FOREIGE_TABLENAME =\u8868\u540d\u79f0 -CONSTRAINT_FOREIGE_COLUMNNAME =\u5217\u540d +CONSTRAINT_FOREIGN_NAMESPACE =\u547D\u540D\u7A7A\u95F4 +CONSTRAINT_FOREIGE_TABLENAME =\u8868\u540D\u79F0 +CONSTRAINT_FOREIGE_COLUMNNAME =\u5217\u540D NEW_NONAME_CONSTRAINT_CREATED = \u5DF2\u5C06\u65B0\u7EA6\u675F\u6DFB\u52A0\u5230\u8BE5\u8868\uFF1A {0}.{1} NEW_CONSTRAINT_CREATED = \u5DF2\u521B\u5EFA\u7EA6\u675F\uFF1A {0}.{1}.{2} @@ -884,7 +884,7 @@ SQL_PREVIEW=SQL\u9884\u89C8 OID_MSG=OID NAME_MSG=\u540D\u79F0 ENCODING_MSG=\u5B57\u7B26\u7F16\u7801 -ALLOW_CON=\u662f\u5426\u5141\u8bb8\u8fde\u63a5 +ALLOW_CON=\u662F\u5426\u5141\u8BB8\u8FDE\u63A5 CONNECTION_LIMIT=\u8FDE\u63A5\u6570\u9650\u5236 DFLT_TBSPACE=\u9ED8\u8BA4\u8868\u7A7A\u95F4 COLLECTION_MSG=\u6392\u5E8F\u89C4\u5219 @@ -946,14 +946,14 @@ INDEXES_NAME = \u7D22\u5F15 TITLE_IMPORT_TBL_DATA =\u5BFC\u5165\u8868\u6570\u636E MSG_IMPORT_SUCCESS =\u5DF2\u5BFC\u5165\u6570\u636E\u5230\u8BE5\u8868\uFF1A {0}.{1} -MSG_TOTAL_ROWS_IMPORT = \u5bfc\u5165\u7684\u603b\u8bb0\u5f55\u6570\uff1a{0} +MSG_TOTAL_ROWS_IMPORT = \u5BFC\u5165\u7684\u603B\u8BB0\u5F55\u6570\uFF1A{0} ERR_IMPORT_TABLE_TO_CSV=\u9519\u8BEF\u5728\u5BFC\u5165\u8868\u6570\u636E\u3002 ERR_IMPORT_TABLE_TO_CSV_HANDLER = \u5BFC\u5165\u8868\u6570\u636E\u9519\u8BEF{0}{1} STATUS_MSG_IMPORT_TABLE_DATA = \u5BFC\u5165\u8868\u6570\u636E... BTN_OK = \u786E\u5B9A BTN_CANCEL = \u53D6\u6D88 -BTN_CLEAR = \u6e05\u7a7a +BTN_CLEAR = \u6E05\u7A7A MSG_DO_NOT_SHOW_AGAIN =\u4E0D\u518D\u663E\u793A TITLE_DISCLAIMER = Data Studio \u5B89\u5168\u8B66\u544A @@ -981,7 +981,7 @@ GUI_NEWDBCONNECTION_OPEN_CONNECTION_WIZARD=\u7528\u6237\u624B\u518C... CIPHER_EXPIRE_CONFIRMATION = \u5BC6\u7801\u8FC7\u671F\u4FE1\u606F CIPHER_EXPIRED = \u5BC6\u7801\u5DF2\u8FC7\u671F\u3002\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u66F4\u6539\u5BC6\u7801\u3002 -CIPHER_YET_TO_EXPIRE = \u8be5\u5bc6\u7801\u5c06\u5728 {0} \u5929\u540e\u8fc7\u671f\u3002\u8bf7\u66f4\u6539\u5bc6\u7801\u3002 +CIPHER_YET_TO_EXPIRE = \u8BE5\u5BC6\u7801\u5C06\u5728 {0} \u5929\u540E\u8FC7\u671F\u3002\u8BF7\u66F4\u6539\u5BC6\u7801\u3002 MSG_LOADED = \u52A0\u8F7D @@ -1067,7 +1067,7 @@ RESULT_WINDOW_TEXT_CELL_INVISIBLE_VALUE_BODY=\u6570\u636E\u91CF\u592A\u5927\uFF0 EXPORT_CSV_STAR = \u5BFC\u51FA\u6240\u6709\u6570\u636E EXPORT_CSV = \u5BFC\u51FA\u5F53\u524D\u9875\u6570\u636E EXPORT_EXEC = \u5BFC\u51FA\u6267\u884C\u8BA1\u5212 -CLEAR_CONSOLE = \u6e05\u9664 +CLEAR_CONSOLE = \u6E05\u9664 MENU_OPEN = \u6253\u5F00 MENU_SAVE = \u4FDD\u5B58 @@ -1155,13 +1155,13 @@ SET_VIEW_SCHEMA_SUCCESS = \u8BE5\u89C6\u56FE\u5DF2\u4ECE{0}.{1}\u79FB\u52A8\u523 SET_VIEW_SCHEMA = \u8BBE\u7F6E\u6A21\u5F0F SET_VIEW_MESSAGE = \u4E3A\u89C6\u56FE {0}.{1}\u8BBE\u7F6E\u65B0\u6A21\u5F0F -SET_VIEW_SCHEMA_FAILURE = \u65e0\u6cd5\u4e3a\u89c6\u56fe {0}{1}\u8bbe\u7f6e\u6a21\u5f0f\uff0c\u670d\u52a1\u5668\u9519\u8bef\u4fe1\u606f\uff1a{2} +SET_VIEW_SCHEMA_FAILURE = \u65E0\u6CD5\u4E3A\u89C6\u56FE {0}{1}\u8BBE\u7F6E\u6A21\u5F0F\uFF0C\u670D\u52A1\u5668\u9519\u8BEF\u4FE1\u606F\uFF1A{2} SET_VIEW_SCHEMA_MOVING=\u79FB\u52A8 {0} \u89C6\u56FE\u5230 {1} \u6A21\u5F0F. \u8BF7\u7B49\u5F85... DROP_VIEW_CONFIRM_TITLE = \u5220\u9664\u89C6\u56FE DROP_VIEW_CONFIRM_MSG = \u4F60\u786E\u5B9A\u8981\u5220\u9664 ''{0}'' \u89C6\u56FE? DROP_VIEW_CASCADE_CONFIRM_MSG=\u4F60\u786E\u5B9A\u8981\u5220\u9664 ''{0}'' \u89C6\u56FE\u4EE5\u53CA\u548C\u5B83\u76F8\u5173\u8054\u7684? -VIEW_COLUMN_SET_DEFAULT_TITLE = \u4E3A {0}.{1}.{2}\u8BBE\u7F6E\u7f3a\u7701\u503C +VIEW_COLUMN_SET_DEFAULT_TITLE = \u4E3A {0}.{1}.{2}\u8BBE\u7F6E\u7F3A\u7701\u503C SET_VIEW_COL_DEFAULT_STATUS_BAR=\u8BBE\u7F6E\u89C6\u56FE\u5217\u9ED8\u8BA4\u503C CONSOLE_TAB = \u6D88\u606F @@ -1221,7 +1221,7 @@ PROFILE_NAME = \u914D\u7F6E\u6587\u4EF6\u72B6\u6001 UNPIN_SQL =\u89E3\u9501SQL SQL_HISTORY = \u5386\u53F2\u6267\u884CSQL SQL_HISTORY_TOOL_TRIP = \u5386\u53F2\u6267\u884CSQL -SQL_HISTORY_DISABLED_TOOL_TIP = SQL\u6267\u884c\u5386\u53f2-\u8fde\u63a5\u4fe1\u606f\u672a\u52a0\u8f7d\u3002 +SQL_HISTORY_DISABLED_TOOL_TIP = SQL\u6267\u884C\u5386\u53F2-\u8FDE\u63A5\u4FE1\u606F\u672A\u52A0\u8F7D\u3002 SQL_HISTORY_TITLE = \u5386\u53F2\u6267\u884CSQL - {0} HISTORY_LOADING_IN_PROGRESS_TILTLE=\u6B63\u5728\u52A0\u8F7D\u5386\u53F2\u8BB0\u5F55 CONN_PROFILE_ERROR_MSG=\u52A0\u8F7D\u7A0B\u5E8F\u6587\u4EF6:{0}\u65F6\u51FA\u9519\ . \u7A0B\u5E8F\u6587\u4EF6\u5DF2\u4ECE\u7A0B\u5E8F\u6587\u4EF6\u5217\u8868\u4E2D\u79FB\u9664 @@ -1242,10 +1242,10 @@ HELP_LABEL = \u5E2E\u52A9 TABLESPACE_NAME=\u540D\u79F0* TABLESPACE_RELATIVE_PATH=\u76F8\u5BF9\u8DEF\u5F84 -TABLESPACE_LOCATION=\u4f4d\u7f6e* -TABLESPACE_MAXSIZE=\u6700\u5927\u5b58\u50a8\u5bb9\u91cf -TABLESPACE_SEQCOST=\u987a\u5e8f\u78c1\u76d8\u9875\u9762\u5f00\u9500 -TABLESPACE_RANCOST=\u975e\u987a\u5e8f\u78c1\u76d8\u9875\u9762\u5f00\u9500 +TABLESPACE_LOCATION=\u4F4D\u7F6E* +TABLESPACE_MAXSIZE=\u6700\u5927\u5B58\u50A8\u5BB9\u91CF +TABLESPACE_SEQCOST=\u987A\u5E8F\u78C1\u76D8\u9875\u9762\u5F00\u9500 +TABLESPACE_RANCOST=\u975E\u987A\u5E8F\u78C1\u76D8\u9875\u9762\u5F00\u9500 TABLESPACE_UNSUPPORTED_SERVER_VERSION=\u670D\u52A1\u5668\u7248\u672C\u4E0D\u652F\u6301 TABLESPACE_GENERAL=General TABLE_EDIT_MESSAGE=\u5F53\u524D\u6B63\u5728\u7F16\u8F91\u5217\u3002\u5B8C\u6210\u6216\u53D6\u6D88\u7F16\u8F91\u64CD\u4F5C\u540E\u624D\u80FD\u6267\u884C\u5176\u4ED6\u64CD\u4F5C\u3002 @@ -1400,8 +1400,8 @@ SHOW_TABLE_DDL_CANCELING=\u5DF2\u53D6\u6D88\u663E\u793ADDL\uFF1A {0}.{1} ERR_PARTITION_COLUMN_EMPTY=\u8BF7\u521B\u5EFA\u5206\u533A\u5217\u4EE5\u7EE7\u7EED\u64CD\u4F5C\u3002 ERR_PARTITION_NAME_EMPTY=\u5206\u533A\u540D\u4E0D\u80FD\u4E3A\u7A7A\u3002 ERR_PARTITION_VALUE_EMPTY=\u5206\u533A\u503C\u4E0D\u80FD\u4E3A\u7A7A\u3002 -ERR_PARTITION_INTERVAL_VALUE_EMPTY=\u5206\u533a\u95f4\u9694\u503c\u4e0d\u80fd\u4e3a\u7a7a -ERR_PARTITION_INTERVAL_COLUMN_TYPE=\u95f4\u9694\u5206\u533a\u5217\u7c7b\u578b\u5e94\u4e3a\u65f6\u95f4\u7c7b\u578b +ERR_PARTITION_INTERVAL_VALUE_EMPTY=\u5206\u533A\u95F4\u9694\u503C\u4E0D\u80FD\u4E3A\u7A7A +ERR_PARTITION_INTERVAL_COLUMN_TYPE=\u95F4\u9694\u5206\u533A\u5217\u7C7B\u578B\u5E94\u4E3A\u65F6\u95F4\u7C7B\u578B ERR_DUPLICATE_PARTITION_NAME=\u5206\u533A\u540D\u79F0\u5DF2\u5B58\u5728\u3002\u8BF7\u8F93\u5165\u5176\u4ED6\u540D\u79F0\u3002 ERR_PREFIX_DB_MESSAGE=\u9519\u8BEF\uFF1A @@ -1431,7 +1431,7 @@ CIPHER_EDIT_MESSAGE=\u6709\u5206\u533A\u6B63\u5728\u7F16\u8F91\u4E2D\u3002\u5B8C PARTITION_GROUP_NAME=\u5206\u533A PARTITION_TAB_ORIENTATION=\u5B58\u50A8\u65B9\u5F0F PARTITION_TAB_TYPE=\u5206\u533A\u7C7B\u578B -PARTITION_TAB_INTERVAL_PARTITION_EXPR=\u95f4\u9694\u503c +PARTITION_TAB_INTERVAL_PARTITION_EXPR=\u95F4\u9694\u503C PARTITION_TAB_PARTITION_BY_RANGE=\u6309\u7C7B\u578B\u5206\u533A PARTITION_TAB_AVAILABLE_COLUMN=\u53EF\u7528\u5217 PARTITION_TAB_PARTITION_COLUMN=\u5206\u533A\u5217 @@ -1776,11 +1776,11 @@ PREFERENCE_SHORTCUT_KEY_BINDING_SEARCH_DESC= \u641C\u7D22\u5BF9\u8C61 PREFERENCE_RESTART_REQUIRED_MSG=\u5DF2\u66F4\u6539\u9996\u9009\u9879\u3002\u8BF7\u91CD\u542FData Studio\u4EE5\u4F7F\u66F4\u6539\u751F\u6548\u3002 COLUMN_OLD_NAME ={1}.{2}\u8868\u4E2D\u7684{0}\u5217 -CIPHER_EXPIRY_TITLE = \u5bc6\u7801\u8fc7\u671f\u524d\u0037\u5929\u662f\u5426\u5141\u8bb8\u767b\u5f55\u6570\u636e\u5e93 -YES_EXPIRY_OPTION=\u5141\u8bb8\u767b\u5f55 -NO_EXPIRY_OPTION = \u4e0d\u5141\u8bb8\u767b\u5f55 -CIPHER_EXPIRY_MSG_TITLE=\u5bc6\u7801\u5373\u5c06\u8fc7\u671f -CIPHER_EXPIRY_INFORMATION = \u5bc6\u7801\u5c06\u8981\u8fc7\u671f\uff0c\u67d0\u4e9b\u64cd\u4f5c\u53ef\u80fd\u53d7\u5230\u9650\u5236\u3002\u8bf7\u8054\u7cfb\u7ba1\u7406\u5458\u91cd\u7f6e\u5bc6\u7801\u3002 +CIPHER_EXPIRY_TITLE = \u5BC6\u7801\u8FC7\u671F\u524D7\u5929\u662F\u5426\u5141\u8BB8\u767B\u5F55\u6570\u636E\u5E93 +YES_EXPIRY_OPTION=\u5141\u8BB8\u767B\u5F55 +NO_EXPIRY_OPTION = \u4E0D\u5141\u8BB8\u767B\u5F55 +CIPHER_EXPIRY_MSG_TITLE=\u5BC6\u7801\u5373\u5C06\u8FC7\u671F +CIPHER_EXPIRY_INFORMATION = \u5BC6\u7801\u5C06\u8981\u8FC7\u671F\uFF0C\u67D0\u4E9B\u64CD\u4F5C\u53EF\u80FD\u53D7\u5230\u9650\u5236\u3002\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u91CD\u7F6E\u5BC6\u7801\u3002 RESULT_WINDOW_EDITTABLE_COMMIT_SUCCESS=\u6210\u529F\uFF1A{0} {1} {2} {3} RESULT_WINDOW_EDITTABLE_COMMIT_FAILURE=/\u5931\u8D25\uFF1A{0} @@ -1849,9 +1849,9 @@ CONNECT_DB_CANCEL_MSG=\u5DF2\u6839\u636E\u7528\u6237\u8BF7\u6C42\u53D6\u6D88\u65 DB_ASSISTANT_LANGUAGE=zh_CN -DB_ASSISTANT_NAME=SQL\u52a9\u624b -DB_ASSISTANT_ENABLE=\u5f00\u542f -DB_ASSISTANT_DISABLE=\u5173\u95ed +DB_ASSISTANT_NAME=SQL\u52A9\u624B +DB_ASSISTANT_ENABLE=\u5F00\u542F +DB_ASSISTANT_DISABLE=\u5173\u95ED DB_ASSIST_ENABLE_DESC=SQL\u52A9\u624B\u4E3ASQL\u7EC8\u7AEF\u548C\u5B58\u50A8\u8FC7\u7A0B/\u51FD\u6570\u7EC8\u7AEF\u4E2D\u8F93\u5165\u7684\u4FE1\u606F\u63D0\u4F9B\u5EFA\u8BAE\u6216\u53C2\u8003\u3002 DB_ASSIST_DISABLE_DESC=SQL\u52A9\u624B\u4E0D\u4E3ASQL\u7EC8\u7AEF\u548C\u5B58\u50A8\u8FC7\u7A0B/\u51FD\u6570\u7EC8\u7AEF\u4E2D\u8F93\u5165\u7684\u4FE1\u606F\u63D0\u4F9B\u5EFA\u8BAE\u6216\u53C2\u8003\u3002 @@ -2317,6 +2317,7 @@ PROPERTIES_ERROR_MESSAGE_FOR_CONSTRAINT=\u7EA6\u675F\u540D\u79F0\u5DF2\u88AB\u4F TABLE_PROPERTIES_INVALID_BOOLEAN_DATATYPE=\u7C98\u8D34\u7684\u6761\u76EE\u4E0E\u5E03\u5C14\u503C\u7684\u683C\u5F0F\u4E0D\u5339\u914D\u3002 PROPERTIES_COMPLEX_DATATYPE_ERROR_MSG={0}\u5DF2\u88AB\u4FEE\u6539/\u5220\u9664\u3002\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5\u3002 PREFERENCE_SHORTCUT_KEY_BINDING_TOGGLE_LINE_COMMENTS=\u884C\u6CE8\u91CA/\u53D6\u6D88\u884C\u6CE8\u91CA +REMARK_SHORTCUT_KEY_BINDING_TOGGLE_LINE_COMMENTS=\u6807\u8BB0\u884C/\u53D6\u6D88\u6807\u8BB0\u884C(\u8986\u76D6\u7387) KEY_BINDING_TOGGLE_LINE_COMMENTS_DESC=\u6CE8\u91CA/\u53D6\u6D88\u6CE8\u91CASQL\u7EC8\u7AEF\u548C\u5B58\u50A8\u8FC7\u7A0B/\u51FD\u6570\u7EC8\u7AEF\u4E2D\u7684\u884C PREFERENCE_SHORTCUT_KEY_BINDING_TOGGLE_BLOCK_COMMENTS=\u5757\u6CE8\u91CA/\u53D6\u6D88\u5757\u6CE8\u91CA KEY_BINDING_TOGGLE_BLOCK_COMMENTS_DESC=\u6CE8\u91CA/\u53D6\u6D88\u6CE8\u91CASQL\u7EC8\u7AEF\u548C\u5B58\u50A8\u8FC7\u7A0B/\u51FD\u6570\u7EC8\u7AEF\u4E2D\u7684\u6574\u6BB5\u5185\u5BB9 @@ -2324,18 +2325,18 @@ OBJECT_NAME_MORE_THAN_LIMIT_ERROR_MESSAGE= \u8868\u3001\u5217\u3001\u7EA6\u675F\ MAX_CHARATCTERS_ALLOWED_FOR_TABLE_DESC=\u8868\u63CF\u8FF0\u6700\u591A\u53EF\u5305\u542B5000\u4E2A\u5B57\u7B26\u3002 #debug -PREFERENCE_SHORTCUT_KEY_BINDING_START_DEBUG=\u542f\u52a8\u8c03\u8bd5 -PREFERENCE_SHORTCUT_KEY_BINDING_TERNIMATE_DEBUG=\u505c\u6b62\u8c03\u8bd5 -PREFERENCE_SHORTCUT_KEY_BINDING_STEPIN_DEBUG=\u6b65\u5165 -PREFERENCE_SHORTCUT_KEY_BINDING_STEPOUT_DEBUG=\u6b65\u51fa -PREFERENCE_SHORTCUT_KEY_BINDING_STEPOVER_DEBUG=\u6b65\u8fdb -PREFERENCE_SHORTCUT_KEY_BINDING_CONTINUE_DEBUG=\u7ee7\u7eed -KEY_BINDING_COMMENTS_DESC_START_DEBUG = \u542f\u52a8\u8c03\u8bd5 -KEY_BINDING_COMMENTS_DESC_TERNIMATE_DEBUG =\u505c\u6b62\u8c03\u8bd5 -KEY_BINDING_COMMENTS_DESC_STEPIN_DEBUG =\u6b65\u5165 -KEY_BINDING_COMMENTS_DESC_STEPOUT_DEBUG = \u6b65\u51fa -KEY_BINDING_COMMENTS_DESC_STEPOVER_DEBUG =\u6b65\u8fdb -KEY_BINDING_COMMENTS_DESC_CONTINUE_DEBUG =\u7ee7\u7eed +PREFERENCE_SHORTCUT_KEY_BINDING_START_DEBUG=\u542F\u52A8\u8C03\u8BD5 +PREFERENCE_SHORTCUT_KEY_BINDING_TERNIMATE_DEBUG=\u505C\u6B62\u8C03\u8BD5 +PREFERENCE_SHORTCUT_KEY_BINDING_STEPIN_DEBUG=\u6B65\u5165 +PREFERENCE_SHORTCUT_KEY_BINDING_STEPOUT_DEBUG=\u6B65\u51FA +PREFERENCE_SHORTCUT_KEY_BINDING_STEPOVER_DEBUG=\u6B65\u8FDB +PREFERENCE_SHORTCUT_KEY_BINDING_CONTINUE_DEBUG=\u7EE7\u7EED +KEY_BINDING_COMMENTS_DESC_START_DEBUG = \u542F\u52A8\u8C03\u8BD5 +KEY_BINDING_COMMENTS_DESC_TERNIMATE_DEBUG =\u505C\u6B62\u8C03\u8BD5 +KEY_BINDING_COMMENTS_DESC_STEPIN_DEBUG =\u6B65\u5165 +KEY_BINDING_COMMENTS_DESC_STEPOUT_DEBUG = \u6B65\u51FA +KEY_BINDING_COMMENTS_DESC_STEPOVER_DEBUG =\u6B65\u8FDB +KEY_BINDING_COMMENTS_DESC_CONTINUE_DEBUG =\u7EE7\u7EED #PreservSQL Messages PRESERVESQL_STARTUP_DIALOG_MESSAGE=\u6B63\u5728\u52A0\u8F7D\u81EA\u52A8\u4FDD\u5B58\u7684\u67E5\u8BE2\u3001\u51FD\u6570\u548C\u8FC7\u7A0B\u2026 @@ -2402,7 +2403,7 @@ FUNCT_CHANGE_ERR_COMPILE_BACKEND=\u51FD\u6570/\u8FC7\u7A0B\u5DF2\u88AB\u5220\u96 #TRANSLATIONS FOR TEMP TABLE SUPPORT SQL_TERMINAL_REUSE_CONNECTION_TOOLTIP = \u91CD\u7528\u8FDE\u63A5\uFF1A\u542F\u7528\n\u7528\u6237\u5728\u6B64\u7EC8\u7AEF\u8FDB\u884C\u64CD\u4F5C\uFF08\u5237\u65B0\u7ED3\u679C\u96C6\u3001\u5BFC\u51FA\u6570\u636E\u3001\u63D0\u4EA4\u66F4\u6539\u7B49\uFF09\u65F6\uFF0C\u91CD\u7528SQL\u7EC8\u7AEF\u4E2D\u7684\u6570\u636E\u5E93\u8FDE\u63A5\u3002 -SQL_TERMINAL_NEW_CONNECTION_TOOLTIP = \u91cd\u7528\u4f7f\u7528\u8fde\u63a5\uff1a\u5173\u95ed\u000d\u000a\u7528\u6237\u5728\u6b64\u7ec8\u7aef\u8fdb\u884c\u64cd\u4f5c\uff08\u5237\u65b0\u7ed3\u679c\u96c6\u3001\u5bfc\u51fa\u6570\u636e\u3001\u63d0\u4ea4\u66f4\u6539\u7b49\uff09\u65f6\uff0c\u521b\u5efa\u5e76\u4f7f\u7528\u65b0\u7684\u6570\u636e\u5e93\u8fde\u63a5\u3002 +SQL_TERMINAL_NEW_CONNECTION_TOOLTIP = \u91CD\u7528\u4F7F\u7528\u8FDE\u63A5\uFF1A\u5173\u95ED\u000d\u000a\u7528\u6237\u5728\u6B64\u7EC8\u7AEF\u8FDB\u884C\u64CD\u4F5C\uFF08\u5237\u65B0\u7ED3\u679C\u96C6\u3001\u5BFC\u51FA\u6570\u636E\u3001\u63D0\u4EA4\u66F4\u6539\u7B49\uFF09\u65F6\uFF0C\u521B\u5EFA\u5E76\u4F7F\u7528\u65B0\u7684\u6570\u636E\u5E93\u8FDE\u63A5\u3002 MPPDBIDE_DIA_BTN_RECONNECT=\u91CD\u65B0\u8FDE\u63A5 MPPDBIDE_DIA_BTN_RECONNECT_CONTINUE=\u91CD\u65B0\u8FDE\u63A5\u5E76\u6267\u884C MULTIPLE_CONNECTION_ATTEMPT_ON_CRITICAL_ERROR=\u7531\u4E8E\u591A\u6B21\u5C1D\u8BD5\u540E\u4ECD\u65E0\u6CD5\u5EFA\u7ACB\u8FDE\u63A5\uFF0C\u5BF9\u8C61\u6D4F\u89C8\u5668\u5DF2\u4E0E\u6570\u636E\u5E93\u65AD\u8FDE\u3002\u8BF7\u91CD\u65B0\u8FDE\u63A5\u5E76\u91CD\u8BD5\u3002 @@ -2513,7 +2514,7 @@ USER_ROLE_REPLICATION = \u590D\u5236 USER_ROLE_CAN_LOGIN = \u53EF\u767B\u5F55 USER_ROLE_SYSTEM_ADMIN = \u7CFB\u7EDF\u7BA1\u7406\u5458 USER_ROLE_RESOURCE_POOL = \u8D44\u6E90\u6C60 -USER_ROLE_COMMENT = \u63cf\u8ff0\uff08\u6700\u591a\u0034\u0030\u0030\u0030\u4e2a\u5b57\u7b26\uff09 +USER_ROLE_COMMENT = \u63CF\u8FF0\uFF08\u6700\u591A4000\u4E2A\u5B57\u7B26\uFF09 USER_ROLE_COMMENT_ERROR_MESSAGE=\u7528\u6237/\u89D2\u8272\u63CF\u8FF0\u6700\u591A\u53EF\u5305\u542B4000\u4E2A\u5B57\u7B26\u3002 USER_ROLE_PROPERTY_TAB_GENERAL = \u901A\u7528 USER_ROLE_PROPERTY_TAB_PRIVILEGE = \u6743\u9650 @@ -2557,58 +2558,58 @@ EXPORT_ALL_DATA_NOT_ENOUGH_SPACE = \u78C1\u76D8\u7A7A\u95F4\u4E0D\u8DB3 USER_ROLE_PREVIEW_SQL_CHANGE_NOTHING = \u6CA1\u6709\u8981\u4FDD\u5B58\u7684\u66F4\u6539\u3002STATUS_MSG_MODIFYING_OBJECT_PRIVILEGE = \u6B63\u5728\u4FEE\u6539\u5BF9\u8C61\u6743\u9650... ERR_USER_ROLE_CONNECT_LIMIT_INVALID = \u201C\u8FDE\u63A5\u9650\u5236\u201D\u4E2D\u4EC5\u80FD\u8F93\u5165\u6574\u6570\u3002 PARTIAL_SUCCESS_UPDATE_OBJECT_PRIVILEGE_DETAIL = \u5DF2\u6210\u529F\u6388\u4E88/\u64A4\u6D88\u5BF9\u8C61\u6743\u9650\u3002\u53EF\u5355\u51FB\u201C\u8BE6\u7EC6\u4FE1\u606F\u201D\u67E5\u770B\u8BE6\u60C5\u3002 -CREATE_NEW_ROLE = \u521b\u5efa\u7528\u6237\u002f\u89d2\u8272 -CREATE_USERROLE_FINISH_BTN = \u5b8c\u6210 -CREATE_USERROLE_NEXT_BTN = \u4e0b\u4e00\u6b65 -CREATE_USERROLE_BACK_BTN = \u4e0a\u4e00\u6b65 -CREATE_USERROLE_CANCEL_BTN = \u53d6\u6d88 -CREATE_USERROLE_ENTER_NM = \u8f93\u5165\u7528\u6237\u002f\u89d2\u8272\u540d\u79f0 -CREATE_USERROLE_NAME_INVALID = \u7528\u6237\u002f\u89d2\u8272\u540d\u79f0\u65e0\u6548 -CREATE_USERROLE_NAME_EXCEED_MAX = \u7528\u6237\u002f\u89d2\u8272\u540d\u79f0\u6700\u591a\u53ef\u5305\u542b\u0036\u0033\u4e2a\u5b57\u7b26 -CREATE_USERROLE_ENTER_PAS = \u8f93\u5165\u5bc6\u7801 - -CREATE_USERROLE_CREATE_ERROR = \u521b\u5efa\u7528\u6237\u002f\u89d2\u8272\u65f6\u51fa\u9519: {0} -USER_ROLE_NM_PAS = \u7528\u6237\u002f\u89d2\u8272\u5c5e\u6027 -CREATE_USERROLE_NAME = \u540d\u79f0 -CREATE_USERROLE_CIPHER = \u5bc6\u7801 +CREATE_NEW_ROLE = \u521B\u5EFA\u7528\u6237/\u89D2\u8272 +CREATE_USERROLE_FINISH_BTN = \u5B8C\u6210 +CREATE_USERROLE_NEXT_BTN = \u4E0B\u4E00\u6B65 +CREATE_USERROLE_BACK_BTN = \u4E0A\u4E00\u6B65 +CREATE_USERROLE_CANCEL_BTN = \u53D6\u6D88 +CREATE_USERROLE_ENTER_NM = \u8F93\u5165\u7528\u6237/\u89D2\u8272\u540D\u79F0 +CREATE_USERROLE_NAME_INVALID = \u7528\u6237/\u89D2\u8272\u540D\u79F0\u65E0\u6548 +CREATE_USERROLE_NAME_EXCEED_MAX = \u7528\u6237/\u89D2\u8272\u540D\u79F0\u6700\u591A\u53EF\u5305\u542B63\u4E2A\u5B57\u7B26 +CREATE_USERROLE_ENTER_PAS = \u8F93\u5165\u5BC6\u7801 + +CREATE_USERROLE_CREATE_ERROR = \u521B\u5EFA\u7528\u6237/\u89D2\u8272\u65F6\u51FA\u9519: {0} +USER_ROLE_NM_PAS = \u7528\u6237/\u89D2\u8272\u5C5E\u6027 +CREATE_USERROLE_NAME = \u540D\u79F0 +CREATE_USERROLE_CIPHER = \u5BC6\u7801 CREATE_USERROLE_PRIVILEGE = \u6743\u9650 -CREATE_USERROLE_SYSADMIN = \u7cfb\u7edf\u7ba1\u7406\u5458 -CREATE_USERROLE_AUDITADMIN = \u5ba1\u8ba1\u7ba1\u7406\u5458 -CREATE_USERROLE_CREATEDB = \u521b\u5efa\u6570\u636e\u5e93 -CREATE_USERROLE_CREATEROLE = \u521b\u5efa\u89d2\u8272 -CREATE_USERROLE_INHERIT = \u7ee7\u627f -CREATE_USERROLE_LOGIN = \u767b\u5f55 -CREATE_USERROLE_REPLICATION = \u590d\u5236 -USER_ROLE_PRIVILEGE_OPTION = \u9ad8\u7ea7 -CREATE_USERROLE_CONNECT_LIMIT = \u8fde\u63a5\u9650\u5236 -CREATE_USERROLE_VALID_BEGIN = \u5f00\u59cb\u65e5\u671f -CREATE_USERROLE_VALID_UNTIL = \u7ed3\u675f\u65e5\u671f -CREATE_USERROLE_RES_POOL = \u8d44\u6e90\u6c60 -CREATE_USERROLE_ROLE_GROUP_MEMBER = \u89d2\u8272\u7ec4 -CREATE_USERROLE_ADMIN_GROUP_MEMBER = \u7ba1\u7406\u5458\u7ec4 +CREATE_USERROLE_SYSADMIN = \u7CFB\u7EDF\u7BA1\u7406\u5458 +CREATE_USERROLE_AUDITADMIN = \u5BA1\u8BA1\u7BA1\u7406\u5458 +CREATE_USERROLE_CREATEDB = \u521B\u5EFA\u6570\u636E\u5E93 +CREATE_USERROLE_CREATEROLE = \u521B\u5EFA\u89D2\u8272 +CREATE_USERROLE_INHERIT = \u7EE7\u627F +CREATE_USERROLE_LOGIN = \u767B\u5F55 +CREATE_USERROLE_REPLICATION = \u590D\u5236 +USER_ROLE_PRIVILEGE_OPTION = \u9AD8\u7EA7 +CREATE_USERROLE_CONNECT_LIMIT = \u8FDE\u63A5\u9650\u5236 +CREATE_USERROLE_VALID_BEGIN = \u5F00\u59CB\u65E5\u671F +CREATE_USERROLE_VALID_UNTIL = \u7ED3\u675F\u65E5\u671F +CREATE_USERROLE_RES_POOL = \u8D44\u6E90\u6C60 +CREATE_USERROLE_ROLE_GROUP_MEMBER = \u89D2\u8272\u7EC4 +CREATE_USERROLE_ADMIN_GROUP_MEMBER = \u7BA1\u7406\u5458\u7EC4 CREATE_USERROLE_CREATE_SUCCESS = \u5DF2\u521B\u5EFA\u7528\u6237/\u89D2\u8272: {0} -DROP_ROLE_DIA_TITLE = \u5220\u9664\u7528\u6237\u002f\u89d2\u8272 -DROP_ROLE = \u786e\u5b9a\u8981\u5220\u9664\u7528\u6237\u002f\u89d2\u8272{0}\u5417? -DROP_USERROLE_PROGRESS_NAME = \u6b63\u5728\u5220\u9664\u7528\u6237\u002f\u89d2\u8272: {0}@{1} -DROP_USERROLE_SUCCESS = \u5df2\u5220\u9664\u7528\u6237\u002f\u89d2\u8272: {0} -CREATE_USERROLE_NO_PRIVILEGE = \u65e0\u7279\u6743 -CREATE_USERROLE_NO_PRIVILEGE_CREATE = \u60a8\u65e0\u6743\u521b\u5efa\u65b0\u7528\u6237\u6216\u89d2\u8272\u3002 -ENTER_ROLE_NAME = \u8f93\u5165\u7528\u6237\u002f\u89d2\u8272\u540d\u79f0 -ENTER_CIPHER = \u8f93\u5165\u5bc6\u7801 +DROP_ROLE_DIA_TITLE = \u5220\u9664\u7528\u6237/\u89D2\u8272 +DROP_ROLE = \u786E\u5B9A\u8981\u5220\u9664\u7528\u6237/\u89D2\u8272{0}\u5417? +DROP_USERROLE_PROGRESS_NAME = \u6B63\u5728\u5220\u9664\u7528\u6237/\u89D2\u8272: {0}@{1} +DROP_USERROLE_SUCCESS = \u5DF2\u5220\u9664\u7528\u6237/\u89D2\u8272: {0} +CREATE_USERROLE_NO_PRIVILEGE = \u65E0\u7279\u6743 +CREATE_USERROLE_NO_PRIVILEGE_CREATE = \u60A8\u65E0\u6743\u521B\u5EFA\u65B0\u7528\u6237\u6216\u89D2\u8272\u3002 +ENTER_ROLE_NAME = \u8F93\u5165\u7528\u6237/\u89D2\u8272\u540D\u79F0 +ENTER_CIPHER = \u8F93\u5165\u5BC6\u7801 CREATE_USERROLE_PAS_NOT_MATCH = \u4E24\u6B21\u8F93\u5165\u7684\u5BC6\u7801\u4E0D\u4E00\u81F4 -ENTER_CIPHER_TWICE = \u518d\u6b21\u8f93\u5165\u5bc6\u7801 +ENTER_CIPHER_TWICE = \u518D\u6B21\u8F93\u5165\u5BC6\u7801 CREATE_USERROLE_ALL = \u6240\u6709 -CREATE_USERROLE_SSL_NOT_ENABLE = \u8fde\u63a5\u4e0d\u5b89\u5168\uff0c\u56e0\u4e3a\u0053\u0053\u004c\u5df2\u7981\u7528\u3002 -PRIVILEGE_ADVANCED = \u9ad8\u7ea7 -STATUS_MSG_DROP_ROLE = \u6b63\u5728\u5220\u9664\u7528\u6237\u002f\u89d2\u8272\u002e\u002e\u002e -DROP_USERROLE_ERROR = \u5220\u9664\u7528\u6237\u002f\u89d2\u8272 -DROP_USERROLE_UNABLE = \u65e0\u6cd5\u5220\u9664\u7528\u6237\u002f\u89d2\u8272\u3002 +CREATE_USERROLE_SSL_NOT_ENABLE = \u8FDE\u63A5\u4E0D\u5B89\u5168\uFF0C\u56E0\u4E3ASSL\u5DF2\u7981\u7528\u3002 +PRIVILEGE_ADVANCED = \u9AD8\u7EA7 +STATUS_MSG_DROP_ROLE = \u6B63\u5728\u5220\u9664\u7528\u6237/\u89D2\u8272... +DROP_USERROLE_ERROR = \u5220\u9664\u7528\u6237/\u89D2\u8272 +DROP_USERROLE_UNABLE = \u65E0\u6CD5\u5220\u9664\u7528\u6237/\u89D2\u8272\u3002 DROP_USERROLE_UNABLE_MSG = \u5220\u9664\u7528\u6237/\u89D2\u8272\u65F6\u51FA\u9519: {0}@{1} EXPORT_ALL_DATA_DISABLE_TOOLTIP=\u5BF9EXPLAIN\u67E5\u8BE2\u7981\u7528 CREATE_USER=\u7528\u6237 -CREATE_ROLE=\u89d2\u8272 +CREATE_ROLE=\u89D2\u8272 UNKNOW_CLOB_TYPE= \u672A\u77E5\u7C7B\u578B @@ -2667,7 +2668,7 @@ EDIT_TABLE_PROPERTIES_DATA_DROPPED_REFRESH_ERROR=\u7F16\u8F91\u65F6\u53D1\u751F\ DATA_TOO_LARGE_DISPLAY_EDIT =\u6570\u636E\u91CF\u592A\u5927\uFF0C\u65E0\u6CD5\u5B8C\u6574\u663E\u793A\u3002\n\u8BF7\u62F7\u8D1D\u5355\u5143\u683C\u6570\u636E\u5230\u5176\u4ED6\u7F16\u8F91\u5668\u8FDB\u884C\u67E5\u770B\u6216\u4FEE\u6539\u3002\n\u6570\u636E\u4FEE\u6539\u5B8C\u4E4B\u540E\u9700\u8981\u91CD\u65B0\u62F7\u8D1D\u56DE\u5355\u5143\u683C\u3002 DATA_TOO_LARGE_WARNING =\u6570\u636E\u957F\u5EA6\u8B66\u544A -NEW_OBJECT_WILL_BE_OPENED=\u65b0\u51fd\u6570\u002f\u8fc7\u7a0b\u5c06\u88ab\u6253\u5f00 +NEW_OBJECT_WILL_BE_OPENED=\u65B0\u51FD\u6570/\u8FC7\u7A0B\u5C06\u88AB\u6253\u5F00 CURSOR_IMPLEMENT_DIALOG_TITLE = \u67E5\u8BE2\u6267\u884C CURSOR_IMPLEMENT_DIALOG_HEADER = \u5F53\u524D\u7279\u5B9A\u67E5\u8BE2\u7ED3\u679C\u4E0D\u652F\u6301\u5206\u9875\uFF0C\u786E\u8BA4\u8981\u7EE7\u7EED\u5417\uFF1F @@ -2721,7 +2722,7 @@ SELECT_SHORTCUT_KEY_AGAIN="\u4E2D\u4F7F\u7528,\u8BF7\u91CD\u65B0\u9009\u62E9! SHORTCUT_KEY_DUPLICATE=\u5FEB\u6377\u952E\u91CD\u590D EXECUTE_DEBUGE= \u51FD\u6570\u6267\u884C -WRITE_HERE = \u8bf7\u5728\u4e0b\u65b9\u8f93\u5165\uff1a +WRITE_HERE = \u8BF7\u5728\u4E0B\u65B9\u8F93\u5165\uFF1A PARAMETER_INPUT_TABLE_PARAM_NAME_COLUMN = \u53C2\u6570\u540D PARAMETER_INPUT_TABLE_PARAM_TYPE_COLUMN = \u6570\u636E\u7C7B\u578B @@ -2745,7 +2746,7 @@ IMPORT_CONN_PROFILE_KEEP_BOTH_FILES_LBL=\u590D\u5236\uFF0C\u4F46\u4FDD\u7559\u4E IMPORT_CONN_PROFILE_DONT_CPY_LBL=\u4E0D\u590D\u5236 IMPORT_CONN_PROFILE_CONFLICTS_LBL=\u6240\u6709\u51B2\u7A81\u6267\u884C\u8BE5\u64CD\u4F5C -IMPORT_PROFILE_INCORRECT_FILE =\u65E0\u6548\u7684\u6587\u4EF6\u683C\u5F0F, \u8bf7\u5bfc\u5165\u6b63\u786e\u7684\u8fde\u63a5\u914d\u7f6e\u6587\u4ef6\u3002 +IMPORT_PROFILE_INCORRECT_FILE =\u65E0\u6548\u7684\u6587\u4EF6\u683C\u5F0F, \u8BF7\u5BFC\u5165\u6B63\u786E\u7684\u8FDE\u63A5\u914D\u7F6E\u6587\u4EF6\u3002 IMPORT_CONNECTIONS_PROFILE_INVALID_FORMAT_EXCEPTION=\u5BFC\u5165\u8FDE\u63A5\u914D\u7F6E\u6587\u4EF6\u65F6\u53D1\u751F\u5F02\u5E38 PROCESS_TIMEOUT_ERROR=\u8FDB\u7A0B\u8D85\u65F6 \n\u8BF7\u67E5\u770B\u9996\u9009\u9879\u7A97\u53E3\uFF08\u8BBE\u7F6E > \u9996\u9009\u9879 > \u5BFC\u5165/\u5BFC\u51FA > \u5BFC\u51FADDL\uFF09\uFF0C\u589E\u5927\u8BE5\u8FDB\u7A0B\u7684\u8D85\u65F6\u8BBE\u7F6E\u3002 @@ -2790,7 +2791,7 @@ IMPORT_EXCEL_CHAR = \u5B57\u7B26\u683C\u5F0F: IMPORT_RESULT_INVALID_CONNECTION = \u5BFC\u5165\u7ED3\u679C\u6570\u636E\u7684\u8FDE\u63A5\u65E0\u6548\uFF0C\u65E0\u6CD5\u7EE7\u7EED\u5BFC\u5165\u636E\u6570\u3002 ENCODING_NOTE = \u6CE8\u610F\uFF1A\u8BF7\u9009\u62E9\u4E0E\u5BFC\u5165\u6587\u4EF6\u6570\u636E\u76F8\u540C\u7684\u7F16\u7801\u683C\u5F0F\uFF0C\u5426\u5219\u53EF\u80FD\u5BFC\u81F4\u5BFC\u5165\u5931\u8D25\uFF0C\u6216\u8005\u5BFC\u5165\u6570\u636E\u4E71\u7801\u3002 OPTION_ZIP= \uFF08.zip\uFF09 -COMPRESS_FAIL_DAILOG_TITLE = \u6570\u636e\u538b\u7f29\u5931\u8d25 +COMPRESS_FAIL_DAILOG_TITLE = \u6570\u636E\u538B\u7F29\u5931\u8D25 COMPRESS_FAILED = \u538B\u7F29\u5931\u8D25 SQL_DDL_EXPORT_WINDOW_TITLE = \u5BFC\u51FA\u5BF9\u8C61\u5B9A\u4E49 SQL_DDL_DATA_EXPORT_WINDOW_TITLE = \u5BFC\u51FA\u8868\u5B9A\u4E49\u548C\u6570\u636E @@ -2847,7 +2848,7 @@ FILTER_INTIAL_TEXT=\u8BF7\u8F93\u5165\u8FC7\u6EE4\u6761\u4EF6\uFF0C\u6309\u56DE\ ERR_IMPORT_DATE_FORMAT = \u65F6\u95F4\u683C\u5F0F\u9519\u8BEF\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165\u3002 ERR_IMPORT_DATA_FILE = \u5BFC\u5165\u6587\u4EF6\u4E0D\u5B58\u5728 -FILTER_CLEAR_TOOLTIP=\u6e05\u7a7a +FILTER_CLEAR_TOOLTIP=\u6E05\u7A7A ERR_IMPORT_DIFF_FILE_FORMAT = \u5BFC\u5165\u6587\u4EF6\u683C\u5F0F\u4E0E\u6240\u9009\u683C\u5F0F\u4E0D\u540C LOCALE_CHANGE_APP_EXIT_MSG=\u6240\u6709\u7684\u8FDE\u63A5\u5C06\u88AB\u5173\u95ED\uFF0C\u6240\u6709\u672A\u4FDD\u5B58\u7684\u6570\u636E\u90FD\u5C06\u4E22\u5931\u3002\u4F60\u786E\u5B9A\u8981\u9000\u51FA\u5417? @@ -2861,28 +2862,28 @@ LOADED_DATA =\u6570\u636E\u52A0\u8F7D\u5B8C\u6210 FILE_SIZE_EXCEEDED_FOUR =\u6587\u4EF6\u5927\u5C0F\u8D85\u8FC74 MB\uFF0C\u6CA1\u6709\u9884\u89C8\u53EF\u7528 # view ER diagram -ER_JOB_DETAILS = \u751f\u6210\u0045\u0052\u56fe\u67e5\u8be2 +ER_JOB_DETAILS = \u751F\u6210ER\u56FE\u67E5\u8BE2 -ER_ERROR_POPUP_HEADER = \u0045\u0052\u56fe\u9519\u8bef -ER_DESC_PRIMARYKEY = \u4e3b\u952e -ER_DESC_FOREIGNKEY = \u5916\u952e -ER_DESC_CURRENT_COLOR = \u5f53\u524d\u8868 +ER_ERROR_POPUP_HEADER = ER\u56FE\u9519\u8BEF +ER_DESC_PRIMARYKEY = \u4E3B\u952E +ER_DESC_FOREIGNKEY = \u5916\u952E +ER_DESC_CURRENT_COLOR = \u5F53\u524D\u8868 ER_DESC_RELATED_COLOR = \u5173\u8054\u8868 -ER_VIEW_FAILED = \u67e5\u770b\u0045\u0052\u56fe\u5931\u8d25 -ER_VIEW_FAILED_MSG = \u67e5\u770b\u0045\u0052\u56fe\u5931\u8d25: {0} +ER_VIEW_FAILED = \u67E5\u770BER\u56FE\u5931\u8D25 +ER_VIEW_FAILED_MSG = \u67E5\u770BER\u56FE\u5931\u8D25: {0} ER_VIEW_INSUFFICIENT_PRIVILEGES_MSG = \u6743\u9650\u4E0D\u8DB3\uFF0C\u65E0\u6CD5\u67E5\u770BER\u56FE\u3002 \ \n\u8BF7\u6267\u884Cgrant select on SYS.SYS_CONSTRAINT_DEFS to \u83B7\u53D6\u6743\u9650\u4EE5\u67E5\u770BER -VIEW_STYLES = \u663e\u793a\u6837\u5f0f -SHOW_ICONS = \u663e\u793a\u56fe\u6807 -SHOW_DATA_TYPES = \u663e\u793a\u6570\u636e\u7c7b\u578b -SHOW_NULLABILITY = \u663e\u793a\u662f\u5426\u4e3a\u7a7a -SHOW_COMMENTS = \u663e\u793a\u6ce8\u91ca\u4fe1\u606f -SHOW_FULLY_QUALIFIED_NAMES = \u663e\u793a\u5168\u9650\u5b9a\u540d\u79f0 -SHOW_ATTRIBUTES = \u663e\u793a\u6570\u636e\u884c -ATTRIBUTE_VIS_ALL = \u6240\u6709\u6570\u636e\u884c -ATTRIBUTE_VIS_ANY_KEY = \u4efb\u610f\u952e\u6570\u636e -ATTRIBUTE_VIS_PRIMARY_KEY = \u4e3b\u952e\u6570\u636e -ATTRIBUTE_VIS_NONE = \u4e0d\u663e\u793a\u6570\u636e +VIEW_STYLES = \u663E\u793A\u6837\u5F0F +SHOW_ICONS = \u663E\u793A\u56FE\u6807 +SHOW_DATA_TYPES = \u663E\u793A\u6570\u636E\u7C7B\u578B +SHOW_NULLABILITY = \u663E\u793A\u662F\u5426\u4E3A\u7A7A +SHOW_COMMENTS = \u663E\u793A\u6CE8\u91CA\u4FE1\u606F +SHOW_FULLY_QUALIFIED_NAMES = \u663E\u793A\u5168\u9650\u5B9A\u540D\u79F0 +SHOW_ATTRIBUTES = \u663E\u793A\u6570\u636E\u884C +ATTRIBUTE_VIS_ALL = \u6240\u6709\u6570\u636E\u884C +ATTRIBUTE_VIS_ANY_KEY = \u4EFB\u610F\u952E\u6570\u636E +ATTRIBUTE_VIS_PRIMARY_KEY = \u4E3B\u952E\u6570\u636E +ATTRIBUTE_VIS_NONE = \u4E0D\u663E\u793A\u6570\u636E ERR_TEMPLATE_LOAD_FAILURE_TITLE=\u6A21\u677F\u52A0\u8F7D\u5931\u8D25 PREF_LOAD_ERROR_TITLE=\u9996\u9009\u9879\u52A0\u8F7D\u5931\u8D25 @@ -2899,7 +2900,7 @@ OBJECT_NAME = \u5BF9\u8C61\u540D\u79F0 REPLACE_IF_EXIST = \u66FF\u6362\u5982\u679C\u5B58\u5728 SYNONYM_NAME_ENTER_NM = \u8BF7\u8F93\u5165\u540C\u4E49\u8BCD\u540D\u79F0 -SYNONYM_NAME_EXCEED_MAX = \u540C\u4E49\u8BCD\u540D\u79F0\u6700\u591A\u53EF\u5305\u542B\u0036\u0034\u4E2A\u5B57\u7B26 +SYNONYM_NAME_EXCEED_MAX = \u540C\u4E49\u8BCD\u540D\u79F0\u6700\u591A\u53EF\u5305\u542B64\u4E2A\u5B57\u7B26 OBJECT_OWNER_SELECT_NM = \u8BF7\u9009\u62E9\u5BF9\u8C61\u6240\u6709\u8005 OBJECT_NAME_SELECT_NM = \u8BF7\u9009\u62E9\u5BF9\u8C61\u540D\u79F0 CREATED_SYNONYM_SUCESS = \u5DF2\u521B\u5EFA\u540C\u4E49\u8BCD\uFF1A {0}.{1} @@ -2911,7 +2912,7 @@ STATUS_MSG_DROP_SYNONYM = \u6B63\u5728\u5220\u9664\u540C\u4E49\u8BCD... DROP_SYNONYM_PROGRESS_NAME = \u6B63\u5728\u5220\u9664\u540C\u4E49\u8BCD: {0}@{1} DROP_SYNONYM_SUCCESS = \u5DF2\u5220\u9664\u540C\u4E49\u8BCD\uFF1A{0}.{1} DROP_SYNONYM_ERROR = \u5220\u9664\u540C\u4E49\u8BCD\u65F6\u51FA\u9519\uFF1A{0}.{1} -DROP_SYNONYM_UNABLE = \u65e0\u6cd5\u5220\u9664\u540C\u4E49\u8BCD\u3002 +DROP_SYNONYM_UNABLE = \u65E0\u6CD5\u5220\u9664\u540C\u4E49\u8BCD\u3002 PROPERTIES_SYNONYM_NAME = \u540C\u4E49\u8BCD\u540D\u79F0 PROPERTIES_SYNONYM_OWNER = \u6A21\u5F0F PROPERTIES_OBJECT_OWNER = \u5BF9\u8C61\u6240\u6709\u8005 @@ -2919,7 +2920,7 @@ PROPERTIES_OBJECT_NAME = \u5BF9\u8C61\u540D\u79F0 #OLTP Synonyms end # Triggers start -TRIGGER_GROUP_NAME = \u89e6\u53d1\u5668 +TRIGGER_GROUP_NAME = \u89E6\u53D1\u5668 #Triggers end # DS Commandline parameter support start @@ -3063,98 +3064,98 @@ INVALID_LINE_SEPERATOR=\u73AF\u5883\u53D8\u91CF\u4E2D\u8BBE\u7F6E\u4E86\u65E0\u6 ERROR_WHILE_FETCHING_OWNER_NAME=\u83B7\u53D6\u6570\u636E\u5E93\u5BF9\u8C61\u7684\u6240\u6709\u8005\u540D\u79F0\u65F6\u51FA\u9519 ERR_WHILE_FETCHING_SEQ_VALUE=\u8BFB\u53D6\u5E8F\u5217\u6570\u636E\u65F6\u51FA\u9519 -BREAKPOINT_ANNOTATION_LABEL=\u65ad\u70b9 +BREAKPOINT_ANNOTATION_LABEL=\u65AD\u70B9 DEBUG_POSITION_LABEL=\u8C03\u8BD5\u4F4D\u7F6E -DEBUG_TABLE_ORDER = \u5e8f\u53f7 -DEBUG_STACK_INVOKING_LEVEL = \u8c03\u7528\u5c42\u7ea7 -DEBUG_STACK_FUNCTION_INFO = \u51fd\u6570\u4fe1\u606f -DEBUG_STACK_CURRENT_LINE_NUM = \u5f53\u524d\u884c\u53f7 -DEBUG_BREAKPOINT_LINE_NUM = \u884c\u53f7 -DEBUG_BREAKPOINT_STATEMENT = \u8bed\u53e5 -DEBUG_BREAKPOINT_ENABLE= \u4f7f\u80fd -DEBUG_VARIABLE_VARIABLE = \u53d8\u91cf -DEBUG_VARIABLE_VALUE = \u503c -DEBUG_VARIABLE_DATA_TYPE = \u6570\u636e\u7c7b\u578b -DEBUG_VARIABLE_PARAM_TYPE = \u53c2\u6570\u7c7b\u578b -DEBUG_NOT_SUPPORT_WARN = \u670d\u52a1\u7aef\u4e0d\u652f\u6301\u8c03\u8bd5! -DEBUG_PREFREENCE_ID = \u8c03\u8bd5 -DEBUG_PREFREENCE_WHEN_ROLLBACK = \u8c03\u8bd5\u540e\u81ea\u52a8\u56de\u6eda - -CREATE_FUNCTION_UI_CREATE_FUNCTION = \u521b\u5efa\u51fd\u6570 -CREATE_FUNCTION_UI_CREATE_PROCEDURE = \u521b\u5efa\u5b58\u50a8\u8fc7\u7a0b -CREATE_FUNCTION_UI_SQL_PREVIEW= \u0053\u0051\u004c\u9884\u89c8 -CREATE_FUNCTION_UI_SCHEMA = \u6a21\u5f0f\u0028\u002a\u0029 -CREATE_FUNCTION_UI_FUNCTION_NAME = \u51fd\u6570\u540d\u0028\u002a\u0029 -CREATE_FUNCTION_UI_FUNCTION = \u51fd\u6570 -CREATE_FUNCTION_UI_PROCEDURE = \u5b58\u50a8\u8fc7\u7a0b -CREATE_FUNCTION_UI_LANGUAGE = \u8bed\u8a00\u0028\u002a\u0029 -CREATE_FUNCTION_UI_RETURN_TYPE = \u8fd4\u56de\u503c\u7c7b\u578b -CREATE_FUNCTION_UI_PARAM_LIST = \u53c2\u6570\u5217\u8868 -CREATE_FUNCTION_UI_BUTTON_RESET = \u91cd\u7f6e -CREATE_FUNCTION_UI_BUTTON_ADD = \u6dfb\u52a0 +DEBUG_TABLE_ORDER = \u5E8F\u53F7 +DEBUG_STACK_INVOKING_LEVEL = \u8C03\u7528\u5C42\u7EA7 +DEBUG_STACK_FUNCTION_INFO = \u51FD\u6570\u4FE1\u606F +DEBUG_STACK_CURRENT_LINE_NUM = \u5F53\u524D\u884C\u53F7 +DEBUG_BREAKPOINT_LINE_NUM = \u884C\u53F7 +DEBUG_BREAKPOINT_STATEMENT = \u8BED\u53E5 +DEBUG_BREAKPOINT_ENABLE= \u4F7F\u80FD +DEBUG_VARIABLE_VARIABLE = \u53D8\u91CF +DEBUG_VARIABLE_VALUE = \u503C +DEBUG_VARIABLE_DATA_TYPE = \u6570\u636E\u7C7B\u578B +DEBUG_VARIABLE_PARAM_TYPE = \u53C2\u6570\u7C7B\u578B +DEBUG_NOT_SUPPORT_WARN = \u670D\u52A1\u7AEF\u4E0D\u652F\u6301\u8C03\u8BD5! +DEBUG_PREFREENCE_ID = \u8C03\u8BD5 +DEBUG_PREFREENCE_WHEN_ROLLBACK = \u8C03\u8BD5\u540E\u81EA\u52A8\u56DE\u6EDA + +CREATE_FUNCTION_UI_CREATE_FUNCTION = \u521B\u5EFA\u51FD\u6570 +CREATE_FUNCTION_UI_CREATE_PROCEDURE = \u521B\u5EFA\u5B58\u50A8\u8FC7\u7A0B +CREATE_FUNCTION_UI_SQL_PREVIEW= SQL\u9884\u89C8 +CREATE_FUNCTION_UI_SCHEMA = \u6A21\u5F0F(*) +CREATE_FUNCTION_UI_FUNCTION_NAME = \u51FD\u6570\u540D(*) +CREATE_FUNCTION_UI_FUNCTION = \u51FD\u6570 +CREATE_FUNCTION_UI_PROCEDURE = \u5B58\u50A8\u8FC7\u7A0B +CREATE_FUNCTION_UI_LANGUAGE = \u8BED\u8A00(*) +CREATE_FUNCTION_UI_RETURN_TYPE = \u8FD4\u56DE\u503C\u7C7B\u578B +CREATE_FUNCTION_UI_PARAM_LIST = \u53C2\u6570\u5217\u8868 +CREATE_FUNCTION_UI_BUTTON_RESET = \u91CD\u7F6E +CREATE_FUNCTION_UI_BUTTON_ADD = \u6DFB\u52A0 CREATE_FUNCTION_UI_BUTTON_DELETE= \u5220\u9664 -CREATE_FUNCTION_UI_FUNCTION_BODY = \u51fd\u6570\u4f53\u0028\u002a\u0029 -CREATE_FUNCTION_UI_BUTTON_NEXT = \u4e0b\u4e00\u6b65 -CREATE_FUNCTION_UI_BUTTON_CANCEL = \u53d6\u6d88 -CREATE_FUNCTION_UI_BUTTON_BACK = \u4e0a\u4e00\u6b65 -CREATE_FUNCTION_UI_BUTTON_NO_COMPILE = \u4e0d\u7f16\u8bd1 -CREATE_FUNCTION_UI_BUTTON_COMPILE = \u7f16\u8bd1 -CREATE_FUNCTION_UI_PARAM_NAME = \u540d\u79f0 -CREATE_FUNCTION_UI_PARAM_MODE = \u6a21\u5f0f -CREATE_FUNCTION_UI_PARAM_TYPE = \u7c7b\u578b -CREATE_FUNCTION_UI_PARAM_DEFAULT = \u9ed8\u8ba4\u503c -CREATE_FUNCTION_UI_TOOLTIP_NO_COMPILE = \u8FDB\u5165Data Studio\u7EC8\u7AEF\uFF0C\u4F46\u4E0D\u81ea\u52a8\u7F16\u8BD1\u521B\u5EFA\u7684\u51FD\u6570\uFF0C\u9700\u8981\u624B\u52A8\u6267\u884C\u7F16\u8BD1\u64CD\u4F5C\u3002 +CREATE_FUNCTION_UI_FUNCTION_BODY = \u51FD\u6570\u4F53(*) +CREATE_FUNCTION_UI_BUTTON_NEXT = \u4E0B\u4E00\u6B65 +CREATE_FUNCTION_UI_BUTTON_CANCEL = \u53D6\u6D88 +CREATE_FUNCTION_UI_BUTTON_BACK = \u4E0A\u4E00\u6B65 +CREATE_FUNCTION_UI_BUTTON_NO_COMPILE = \u4E0D\u7F16\u8BD1 +CREATE_FUNCTION_UI_BUTTON_COMPILE = \u7F16\u8BD1 +CREATE_FUNCTION_UI_PARAM_NAME = \u540D\u79F0 +CREATE_FUNCTION_UI_PARAM_MODE = \u6A21\u5F0F +CREATE_FUNCTION_UI_PARAM_TYPE = \u7C7B\u578B +CREATE_FUNCTION_UI_PARAM_DEFAULT = \u9ED8\u8BA4\u503C +CREATE_FUNCTION_UI_TOOLTIP_NO_COMPILE = \u8FDB\u5165Data Studio\u7EC8\u7AEF\uFF0C\u4F46\u4E0D\u81EA\u52A8\u7F16\u8BD1\u521B\u5EFA\u7684\u51FD\u6570\uFF0C\u9700\u8981\u624B\u52A8\u6267\u884C\u7F16\u8BD1\u64CD\u4F5C\u3002 CREATE_FUNCTION_UI_TOOLTIP_COMPILE = \u8FDB\u5165Data Studio\u7EC8\u7AEF\uFF0C\u5E76\u81EA\u52A8\u7F16\u8BD1\u521B\u5EFA\u7684\u51FD\u6570\u3002 -CREATE_FUNCTION_UI_TRIGGER = \u89e6\u53d1\u5668 -CREATE_FUNCTION_UI_CREATE = \u521b\u5efa -CREATE_FUNCTION_UI_ERR_FUNC_NAME = \u51fd\u6570\u540d\u4e0d\u80fd\u4e3a\u7a7a -CREATE_FUNCTION_UI_ERR_FUNC_BODY = \u51fd\u6570\u4f53\u4e0d\u80fd\u4e3a\u7a7a - -DROP_TRIGGER = \u5220\u9664\u89e6\u53d1\u5668 -DROP_TRIGGER_TITLE = \u5220\u9664\u89e6\u53d1\u5668 -RENAME_TRIGGER = \u91cd\u547d\u540d -RENAME_TRIGGER_TITLE = \u4e3a{0}\u89e6\u53d1\u5668\u8f93\u5165\u65b0\u7684\u540d\u79f0 - -CREATE_TRIGGER_UI_CREATE_TRIGGER = \u521b\u5efa\u89e6\u53d1\u5668 -CREATE_TRIGGER_UI_EDIT_TRIGGER = \u7f16\u8f91\u89e6\u53d1\u5668 -CREATE_TRIGGER_UI_GENERAL_PAGE = \u5e38\u89c4 -CREATE_TRIGGER_UI_TRIGGER_NAME = \u89e6\u53d1\u5668\u540d(*) -CREATE_TRIGGER_UI_TRIGGER_TABLE_NAME = \u89e6\u53d1\u8868\u002f\u89c6\u56fe\u540d(*) -CREATE_TRIGGER_UI_TIME_TO_TRIGGER = \u89e6\u53d1\u65f6\u95f4 -CREATE_TRIGGER_UI_OPERATION_TYPE = \u64cd\u4f5c\u7c7b\u578b -CREATE_TRIGGER_UI_COLUMN_NAME = \u5217\u540d -CREATE_TRIGGER_UI_DATA_TYPE = \u6570\u636e\u7c7b\u578b -CREATE_TRIGGER_UI_TRIGGER_LEVEL = \u89e6\u53d1\u7ea7\u522b -CREATE_TRIGGER_UI_TUPLE_LEVEL_TRIGGER = \u5143\u7ec4\u7ea7\u89e6\u53d1\u5668(R) -CREATE_TRIGGER_UI_STATEMENT_LEVEL_TRIGGER = \u8bed\u53e5\u7ea7\u89e6\u53d1\u5668(M) -CREATE_TRIGGER_UI_TRIGGER_CONDITION = \u89e6\u53d1\u6761\u4ef6 -CREATE_TRIGGER_UI_TRIGGER_FUNCTION = \u89e6\u53d1\u51fd\u6570(*) -CREATE_TRIGGER_UI_NEXT = \u4e0b\u4e00\u6b65 -CREATE_TRIGGER_UI_CANCEL = \u53d6\u6d88 -CREATE_TRIGGER_UI_SQL_PREVIEW = SQL\u9884\u89c8 -CREATE_TRIGGER_UI_PREVIOUS = \u4e0a\u4e00\u6b65 -CREATE_TRIGGER_UI_FINISH = \u5b8c\u6210 - -EDIT_VIEW_UI_EDIT_VIEW = \u7f16\u8f91\u89c6\u56fe -CREATE_VIEW_UI_CREATE_VIEW = \u521b\u5efa\u89c6\u56fe -CREATE_VIEW_UI_SCHEMA_NAME = \u6a21\u5f0f\u540d -CREATE_VIEW_UI_VIEW_NAME = \u89c6\u56fe\u540d(*) -CREATE_VIEW_UI_TABLE_NAME = \u8868\u540d -CREATE_VIEW_UI_TABLE_FULL_NAME = \u8868\u5168\u540d -CREATE_VIEW_UI_TABLE_ALIAS_NAME = \u8868\u522b\u540d -CREATE_VIEW_UI_COLUMN_NAME = \u5217\u540d -CREATE_VIEW_UI_COLUMN_ALIAS_NAME = \u5217\u522b\u540d +CREATE_FUNCTION_UI_TRIGGER = \u89E6\u53D1\u5668 +CREATE_FUNCTION_UI_CREATE = \u521B\u5EFA +CREATE_FUNCTION_UI_ERR_FUNC_NAME = \u51FD\u6570\u540D\u4E0D\u80FD\u4E3A\u7A7A +CREATE_FUNCTION_UI_ERR_FUNC_BODY = \u51FD\u6570\u4F53\u4E0D\u80FD\u4E3A\u7A7A + +DROP_TRIGGER = \u5220\u9664\u89E6\u53D1\u5668 +DROP_TRIGGER_TITLE = \u5220\u9664\u89E6\u53D1\u5668 +RENAME_TRIGGER = \u91CD\u547D\u540D +RENAME_TRIGGER_TITLE = \u4E3A{0}\u89E6\u53D1\u5668\u8F93\u5165\u65B0\u7684\u540D\u79F0 + +CREATE_TRIGGER_UI_CREATE_TRIGGER = \u521B\u5EFA\u89E6\u53D1\u5668 +CREATE_TRIGGER_UI_EDIT_TRIGGER = \u7F16\u8F91\u89E6\u53D1\u5668 +CREATE_TRIGGER_UI_GENERAL_PAGE = \u5E38\u89C4 +CREATE_TRIGGER_UI_TRIGGER_NAME = \u89E6\u53D1\u5668\u540D(*) +CREATE_TRIGGER_UI_TRIGGER_TABLE_NAME = \u89E6\u53D1\u8868/\u89C6\u56FE\u540D(*) +CREATE_TRIGGER_UI_TIME_TO_TRIGGER = \u89E6\u53D1\u65F6\u95F4 +CREATE_TRIGGER_UI_OPERATION_TYPE = \u64CD\u4F5C\u7C7B\u578B +CREATE_TRIGGER_UI_COLUMN_NAME = \u5217\u540D +CREATE_TRIGGER_UI_DATA_TYPE = \u6570\u636E\u7C7B\u578B +CREATE_TRIGGER_UI_TRIGGER_LEVEL = \u89E6\u53D1\u7EA7\u522B +CREATE_TRIGGER_UI_TUPLE_LEVEL_TRIGGER = \u5143\u7EC4\u7EA7\u89E6\u53D1\u5668(R) +CREATE_TRIGGER_UI_STATEMENT_LEVEL_TRIGGER = \u8BED\u53E5\u7EA7\u89E6\u53D1\u5668(M) +CREATE_TRIGGER_UI_TRIGGER_CONDITION = \u89E6\u53D1\u6761\u4EF6 +CREATE_TRIGGER_UI_TRIGGER_FUNCTION = \u89E6\u53D1\u51FD\u6570(*) +CREATE_TRIGGER_UI_NEXT = \u4E0B\u4E00\u6B65 +CREATE_TRIGGER_UI_CANCEL = \u53D6\u6D88 +CREATE_TRIGGER_UI_SQL_PREVIEW = SQL\u9884\u89C8 +CREATE_TRIGGER_UI_PREVIOUS = \u4E0A\u4E00\u6B65 +CREATE_TRIGGER_UI_FINISH = \u5B8C\u6210 + +EDIT_VIEW_UI_EDIT_VIEW = \u7F16\u8F91\u89C6\u56FE +CREATE_VIEW_UI_CREATE_VIEW = \u521B\u5EFA\u89C6\u56FE +CREATE_VIEW_UI_SCHEMA_NAME = \u6A21\u5F0F\u540D +CREATE_VIEW_UI_VIEW_NAME = \u89C6\u56FE\u540D(*) +CREATE_VIEW_UI_TABLE_NAME = \u8868\u540D +CREATE_VIEW_UI_TABLE_FULL_NAME = \u8868\u5168\u540D +CREATE_VIEW_UI_TABLE_ALIAS_NAME = \u8868\u522B\u540D +CREATE_VIEW_UI_COLUMN_NAME = \u5217\u540D +CREATE_VIEW_UI_COLUMN_ALIAS_NAME = \u5217\u522B\u540D CREATE_VIEW_UI_COLUMN_1 = \u52171 CREATE_VIEW_UI_COLUMN_2 = \u52172 -CREATE_VIEW_UI_PREVIEW = \u9884\u89c8 -CREATE_VIEW_UI_NEXT = \u4e0b\u4e00\u6b65 -CREATE_VIEW_UI_PREVIOUS = \u4e0a\u4e00\u6b65 -CREATE_VIEW_UI_CANCEL = \u53d6\u6d88 -CREATE_VIEW_UI_FINISH = \u5b8c\u6210 -CREATE_VIEW_UI_WHERE = \u6761\u4ef6 -CREATE_VIEW_UI_ADD = \u6dfb\u52a0 +CREATE_VIEW_UI_PREVIEW = \u9884\u89C8 +CREATE_VIEW_UI_NEXT = \u4E0B\u4E00\u6B65 +CREATE_VIEW_UI_PREVIOUS = \u4E0A\u4E00\u6B65 +CREATE_VIEW_UI_CANCEL = \u53D6\u6D88 +CREATE_VIEW_UI_FINISH = \u5B8C\u6210 +CREATE_VIEW_UI_WHERE = \u6761\u4EF6 +CREATE_VIEW_UI_ADD = \u6DFB\u52A0 CREATE_VIEW_UI_DELETE = \u5220\u9664 -CREATE_VIEW_UI_MATERVIEW = \u7269\u5316\u89c6\u56fe -CREATE_VIEW_UI_VIEW = \u89c6\u56fe -CREATE_VIEW_UI_NAME_NOT_EMPTY = \u89c6\u56fe\u540d\u4e0d\u80fd\u4e3a\u7a7a \ No newline at end of file +CREATE_VIEW_UI_MATERVIEW = \u7269\u5316\u89C6\u56FE +CREATE_VIEW_UI_VIEW = \u89C6\u56FE +CREATE_VIEW_UI_NAME_NOT_EMPTY = \u89C6\u56FE\u540D\u4E0D\u80FD\u4E3A\u7A7A \ No newline at end of file -- Gitee From 6aa94774f3d12070161fdcba392e14cdf4a76a58 Mon Sep 17 00:00:00 2001 From: gitama Date: Wed, 6 Jul 2022 15:56:21 +0800 Subject: [PATCH 006/125] start debugger --- .../common/QueryResVoConvertHelper.java | 18 ++++++++++++------ .../mppdbide/debuger/debug/DebugConstants.java | 4 ++-- .../mppdbide/debuger/service/DebugService.java | 10 +++++----- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/QueryResVoConvertHelper.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/QueryResVoConvertHelper.java index 760bc159..37c97432 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/QueryResVoConvertHelper.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/QueryResVoConvertHelper.java @@ -30,15 +30,21 @@ public class QueryResVoConvertHelper { public static T parse(ResultSet rs,Class clazz,VersionVo versionVo) throws SQLException { String className= clazz.getName(); + T obj = null; + //if openGauss2.0 command do not need to convert boolean needConvert=versionVo.getDebuggerVersion().equalsIgnoreCase(DebugConstants.DBE_DEBUGGER); - switch(className) { - case "org.opengauss.mppdbide.debuger.vo.SourceCodeVo": - if(needConvert) { - return convertToSourceCodeVo(rs); + if(!needConvert) { + obj= ParseVo.parse(rs, clazz); + }else { + switch(className) { + case "org.opengauss.mppdbide.debuger.vo.SourceCodeVo": + obj= convertToSourceCodeVo(rs); + break; + case "org.opengauss.mppdbide.debuger.vo.TotalSourceCodeVo": + break; } - ; } - return null; + return obj; } diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java index 56401c17..a4d18ace 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java @@ -92,8 +92,8 @@ public class DebugConstants { DBE_DEBUG_VERSION("version", 0), DBE_GET_SOURCE_CODE("DBE_PLDEBUGGER.info_code", 1), DBE_GET_TOTAL_SOURCE_CODE("pg_get_functiondef", 1), - DBE_START_SESSION("plpgsql_oid_debug", 1), - DBE_ATTACH_SESSION("pldbg_attach_to_port", 1), + DBE_START_SESSION("DBE_PLDEBUGGER.turn_on", 1), + DBE_ATTACH_SESSION("DBE_PLDEBUGGER.attach", 1), DBE_STEP_INTO("pldbg_step_into", 1), DBE_STEP_OVER("pldbg_step_over", 1), DBE_STEP_OUT("pldbg_step_out", 1), diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java index 88a7d5ae..917e8514 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java @@ -36,6 +36,7 @@ import org.opengauss.mppdbide.debuger.vo.VersionVo; import org.opengauss.mppdbide.common.IConnection; import org.opengauss.mppdbide.utils.logger.MPPDBIDELoggerUtility; import org.postgresql.core.NoticeListener; +import org.opengauss.mppdbide.common.VersionHelper; import java.lang.Thread.State; import java.sql.PreparedStatement; @@ -102,9 +103,8 @@ public class DebugService implements NoticeListener, EventHander, IDebugService */ public void prepareDebug() throws SQLException { List inputsParams = Arrays.asList(functionVo.oid); - serverConn.getDebugOptPrepareStatement( - DebugConstants.DebugOpt.START_SESSION, - inputsParams).execute(); + DebugOpt opt=VersionHelper.getDebugOptByDebuggerVersion(serverConn,DebugConstants.DebugOpt.START_SESSION); + serverConn.getDebugOptPrepareStatement(opt,inputsParams).execute(); } /** @@ -168,8 +168,8 @@ public class DebugService implements NoticeListener, EventHander, IDebugService public void attachDebug() throws SQLException { waitServerStart(); List inputParams = Arrays.asList(sessionVo.serverPort); - try (PreparedStatement ps = clientConn.getDebugOptPrepareStatement( - DebugConstants.DebugOpt.ATTACH_SESSION, inputParams)) { + DebugOpt opt=VersionHelper.getDebugOptByDebuggerVersion(serverConn,DebugConstants.DebugOpt.ATTACH_SESSION); + try (PreparedStatement ps = clientConn.getDebugOptPrepareStatement(opt, inputParams)) { try (ResultSet rs = ps.executeQuery()) { if (rs.next()) { clientState.attached(); -- Gitee From 2b914442f4151374feafe370f8fbe5b786b7c9a3 Mon Sep 17 00:00:00 2001 From: gitama Date: Thu, 7 Jul 2022 14:44:08 +0800 Subject: [PATCH 007/125] attach debugger --- .../debuger/debug/DebugConstants.java | 22 ++++---- .../debuger/service/DebugService.java | 53 ++++++++++++++++--- .../mppdbide/debuger/vo/BreakpointList.java | 3 ++ .../mppdbide/debuger/vo/VersionVo.java | 6 +++ 4 files changed, 65 insertions(+), 19 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java index a4d18ace..57f61842 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java @@ -78,7 +78,7 @@ public class DebugConstants { ATTACH_SESSION("pldbg_attach_to_port", 1), STEP_INTO("pldbg_step_into", 1), STEP_OVER("pldbg_step_over", 1), - STEP_OUT("pldbg_step_out", 1), + STEP_OUT("pldbg_step_out", 1),//not support CONTINUE_EXEC("pldbg_continue", 1), ABORT_TARGET("pldbg_abort_target", 1), GET_VARIABLES("pldbg_get_variables", 1), @@ -87,20 +87,20 @@ public class DebugConstants { DROP_BREAKPOINT("pldbg_drop_breakpoint", 3), SET_BREAKPOINT("pldbg_set_breakpoint", 3), //dbe_debugger command - DBE_DEBUG_ON("pldbg_on",0), - DBE_DEBUG_OFF("pldbg_off", 0), + DBE_DEBUG_ON("DBE_PLDEBUGGER.turn_on",1), + DBE_DEBUG_OFF("DBE_PLDEBUGGER.turn_off", 1), DBE_DEBUG_VERSION("version", 0), DBE_GET_SOURCE_CODE("DBE_PLDEBUGGER.info_code", 1), DBE_GET_TOTAL_SOURCE_CODE("pg_get_functiondef", 1), DBE_START_SESSION("DBE_PLDEBUGGER.turn_on", 1), - DBE_ATTACH_SESSION("DBE_PLDEBUGGER.attach", 1), - DBE_STEP_INTO("pldbg_step_into", 1), - DBE_STEP_OVER("pldbg_step_over", 1), - DBE_STEP_OUT("pldbg_step_out", 1), - DBE_CONTINUE_EXEC("pldbg_continue", 1), - DBE_ABORT_TARGET("pldbg_abort_target", 1), - DBE_GET_VARIABLES("pldbg_get_variables", 1), - DBE_GET_STACKS("pldbg_get_stack", 1), + DBE_ATTACH_SESSION("DBE_PLDEBUGGER.attach", 2), + DBE_STEP_INTO("DBE_PLDEBUGGER.step", 1), + DBE_STEP_OVER("DBE_PLDEBUGGER.next", 0), + DBE_STEP_OUT("pldbg_step_out", 1),//not support + DBE_CONTINUE_EXEC("DBE_PLDEBUGGER.continue", 0), + DBE_ABORT_TARGET("DBE_PLDEBUGGER.abort", 0), + DBE_GET_VARIABLES("", 1), + DBE_GET_STACKS("DBE_PLDEBUGGER.backtrace", 1), DBE_GET_BREAKPOINTS("DBE_PLDEBUGGER.info_breakpoints", 1), DBE_DROP_BREAKPOINT("DBE_PLDEBUGGER.delete_breakpoint", 2), DBE_SET_BREAKPOINT("DBE_PLDEBUGGER.add_breakpoint", 3); diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java index 917e8514..058ba38f 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java @@ -33,6 +33,8 @@ import org.opengauss.mppdbide.debuger.vo.SessionVo; import org.opengauss.mppdbide.debuger.vo.StackVo; import org.opengauss.mppdbide.debuger.vo.VariableVo; import org.opengauss.mppdbide.debuger.vo.VersionVo; +import org.opengauss.mppdbide.debuger.vo.dbe.AttachVo; +import org.opengauss.mppdbide.debuger.vo.dbe.TurnOnVo; import org.opengauss.mppdbide.common.IConnection; import org.opengauss.mppdbide.utils.logger.MPPDBIDELoggerUtility; import org.postgresql.core.NoticeListener; @@ -84,6 +86,7 @@ public class DebugService implements NoticeListener, EventHander, IDebugService private MsgChainHelper msgChainHelper; private boolean isRollback = false; private SessionVo sessionVo = new SessionVo(); + private TurnOnVo turnOnVo=null; private final Object waitLock = new int[0]; private DebugState serverState = new DebugState(); private DebugState clientState = new DebugState(); @@ -103,8 +106,16 @@ public class DebugService implements NoticeListener, EventHander, IDebugService */ public void prepareDebug() throws SQLException { List inputsParams = Arrays.asList(functionVo.oid); - DebugOpt opt=VersionHelper.getDebugOptByDebuggerVersion(serverConn,DebugConstants.DebugOpt.START_SESSION); - serverConn.getDebugOptPrepareStatement(opt,inputsParams).execute(); + DebugOpt opt=VersionHelper.getDebugOptByDebuggerVersion(clientConn,DebugConstants.DebugOpt.START_SESSION); + ResultSet rs=serverConn.getDebugOptPrepareStatement(opt,inputsParams).executeQuery(); + if(rs.next()) { + boolean isPldebugger= VersionHelper.getDebuggerVersion(clientConn).isPldebugger(); + if(!isPldebugger) { + turnOnVo=ParseVo.parse(rs, TurnOnVo.class); + updateServerPort(turnOnVo.port); //for test + } + + } } /** @@ -168,14 +179,26 @@ public class DebugService implements NoticeListener, EventHander, IDebugService public void attachDebug() throws SQLException { waitServerStart(); List inputParams = Arrays.asList(sessionVo.serverPort); - DebugOpt opt=VersionHelper.getDebugOptByDebuggerVersion(serverConn,DebugConstants.DebugOpt.ATTACH_SESSION); + DebugOpt opt=VersionHelper.getDebugOptByDebuggerVersion(clientConn,DebugConstants.DebugOpt.ATTACH_SESSION); + boolean isPldebugger= VersionHelper.getDebuggerVersion(clientConn).isPldebugger(); + if(!isPldebugger) { + inputParams=Arrays.asList(turnOnVo.nodename,sessionVo.serverPort); + } try (PreparedStatement ps = clientConn.getDebugOptPrepareStatement(opt, inputParams)) { try (ResultSet rs = ps.executeQuery()) { if (rs.next()) { clientState.attached(); - sessionVo.clientPort = rs.getInt(1); + if(isPldebugger) { + sessionVo.clientPort = rs.getInt(1); + }else { + AttachVo attachVo=ParseVo.parse(rs, AttachVo.class); + sessionVo.clientPort=attachVo.lineno; + } + return; } + }catch(Exception e) { + e.printStackTrace(); } } throw new SQLException("client attach failed, please check"); @@ -219,8 +242,12 @@ public class DebugService implements NoticeListener, EventHander, IDebugService return Optional.empty(); } List inputParams = Arrays.asList(sessionVo.clientPort); - try (PreparedStatement ps = clientConn.getDebugOptPrepareStatement( - DebugConstants.DebugOpt.ABORT_TARGET, inputParams)) { + DebugConstants.DebugOpt opt=VersionHelper.getDebugOptByDebuggerVersion(clientConn,DebugConstants.DebugOpt.ABORT_TARGET); + VersionVo version= VersionHelper.getDebuggerVersion(clientConn); + if(!version.isPldebugger()) { + inputParams=new ArrayList(); + } + try (PreparedStatement ps = clientConn.getDebugOptPrepareStatement(opt, inputParams)) { clientState.stop(); clientState.stateLocked(); try (ResultSet rs = ps.executeQuery()) { @@ -229,6 +256,9 @@ public class DebugService implements NoticeListener, EventHander, IDebugService result = rs.getBoolean(1); } return Optional.of(result); + }catch(Exception e) { + e.printStackTrace(); + return Optional.of(true); } } } @@ -298,8 +328,12 @@ public class DebugService implements NoticeListener, EventHander, IDebugService throw new SQLException("not support method!"); } List inputParams = Arrays.asList(sessionVo.clientPort); - try (PreparedStatement ps = clientConn.getDebugOptPrepareStatement( - debugOpt, inputParams)) { + DebugOpt opt=VersionHelper.getDebugOptByDebuggerVersion(clientConn,debugOpt); + boolean isPldebugger= VersionHelper.getDebuggerVersion(clientConn).isPldebugger(); + if(!isPldebugger) { + inputParams=new ArrayList(); + } + try (PreparedStatement ps = clientConn.getDebugOptPrepareStatement(opt, inputParams)) { try (ResultSet rs = ps.executeQuery()) { // this order is very important, because when debug opt is return, // maybe server is already over, so must stop debug! @@ -311,6 +345,9 @@ public class DebugService implements NoticeListener, EventHander, IDebugService positionVo = ParseVo.parse(rs, PositionVo.class); } return Optional.ofNullable(positionVo); + }catch(Exception e) { + e.printStackTrace(); + return Optional.empty(); } } } diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/BreakpointList.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/BreakpointList.java index 294a36e3..2b09cca2 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/BreakpointList.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/BreakpointList.java @@ -36,6 +36,9 @@ public class BreakpointList { * @return Map the instance of BreakpointList */ public static Map getInstance() { + if(breakpointList==null) { + initialInstance(); + } return breakpointList; } diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/VersionVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/VersionVo.java index 27087d15..5d7fd145 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/VersionVo.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/VersionVo.java @@ -49,4 +49,10 @@ public class VersionVo { return DebugConstants.DBE_DEBUGGER; } } + + public boolean isPldebugger() { + this.debuggerVersion=getDebuggerVersion(); + return debuggerVersion.equalsIgnoreCase(DebugConstants.PL_DEBUGGER); + + } } -- Gitee From f7165c79aa545f3fc5cbf1ea56c63089621c6fe3 Mon Sep 17 00:00:00 2001 From: gitama Date: Thu, 7 Jul 2022 16:08:07 +0800 Subject: [PATCH 008/125] history --- .../Application.e4xmi | 2 + .../OSGI-INF/l10n/bundle_zh_CN.properties | 91 ++++++++++--------- 2 files changed, 50 insertions(+), 43 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/Application.e4xmi b/code/datastudio/src/org.opengauss.mppdbide.view/Application.e4xmi index 26da7d5e..42ba4a5a 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/Application.e4xmi +++ b/code/datastudio/src/org.opengauss.mppdbide.view/Application.e4xmi @@ -166,6 +166,7 @@ + @@ -1020,6 +1021,7 @@ + diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/OSGI-INF/l10n/bundle_zh_CN.properties b/code/datastudio/src/org.opengauss.mppdbide.view/OSGI-INF/l10n/bundle_zh_CN.properties index 31c510a2..33d27e2a 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/OSGI-INF/l10n/bundle_zh_CN.properties +++ b/code/datastudio/src/org.opengauss.mppdbide.view/OSGI-INF/l10n/bundle_zh_CN.properties @@ -210,9 +210,9 @@ viewmenu.tooltip.variable = \u53D8\u91CF #Monitor window viewmenu.id.monitor = org.opengauss.viewmenu.id.monitor -viewmenu.label.monitor = \u76d1\u89c6\u5668 +viewmenu.label.monitor = \u76D1\u89C6\u5668 viewmenu.mnemonics.monitor = M -viewmenu.tooltip.monitor = \u76d1\u89c6\u5668 +viewmenu.tooltip.monitor = \u76D1\u89C6\u5668 #Run Menu menu.id.runmenu = org.opengauss.mppdbide.menu.id.run @@ -221,38 +221,43 @@ menu.mnemonics.runmenu = R #Run Debug menu.id.debugmenu = org.opengauss.mppdbide.menu.id.debugmenu -menu.label.debugmenu = \u8c03\u8bd5(&B) +menu.label.debugmenu = \u8C03\u8BD5(&B) menu.mnemonics.debugmenu = B executemenu.id.debug = org.opengauss.executemenu.id.debug -executemenu.label.debug = \u542f\u52a8\u8c03\u8bd5(&S) +executemenu.label.debug = \u542F\u52A8\u8C03\u8BD5(&S) executemenu.mnemonics.debug = S -executemenu.tooltip.debug = \u542f\u52a8\u8c03\u8bd5 +executemenu.tooltip.debug = \u542F\u52A8\u8C03\u8BD5 executemenu.id.terminate = org.opengauss.executemenu.id.terminate -executemenu.label.terminate = \u505c\u6b62\u8c03\u8bd5(&T) +executemenu.label.terminate = \u505C\u6B62\u8C03\u8BD5(&T) executemenu.mnemonics.terminate = T -executemenu.tooltip.terminate = \u505c\u6b62\u8c03\u8bd5 +executemenu.tooltip.terminate = \u505C\u6B62\u8C03\u8BD5 executemenu.id.continue = org.opengauss.executemenu.id.continue -executemenu.label.continue = \u7ee7\u7eed(&C) +executemenu.label.continue = \u7EE7\u7EED(&C) executemenu.mnemonics.continue = C -executemenu.tooltip.continue = \u7ee7\u7eed +executemenu.tooltip.continue = \u7EE7\u7EED executemenu.id.stepin = org.opengauss.executemenu.id.stepin -executemenu.label.stepin = \u6b65\u5165(&I) +executemenu.label.stepin = \u6B65\u5165(&I) executemenu.mnemonics.stepin = I -executemenu.tooltip.stepin = \u6b65\u5165 +executemenu.tooltip.stepin = \u6B65\u5165 executemenu.id.stepover = org.opengauss.executemenu.id.stepover -executemenu.label.stepover = \u6b65\u8fdb(&O) +executemenu.label.stepover = \u6B65\u8FDB(&O) executemenu.mnemonics.stepover = O -executemenu.tooltip.stepover = \u6b65\u8fdb +executemenu.tooltip.stepover = \u6B65\u8FDB + +executemenu.id.historyconverg = org.opengauss.executemenu.id.historyconverg +executemenu.label.historyconverg = \u5386\u53F2\u8986\u76D6\u7387 +executemenu.mnemonics.historyconverg = +executemenu.tooltip.historyconverg = \u5386\u53F2\u8986\u76D6\u7387 executemenu.id.stepout = org.opengauss.executemenu.id.stepout -executemenu.label.stepout = \u6b65\u51fa(&R) +executemenu.label.stepout = \u6B65\u51FA(&R) executemenu.mnemonics.stepout = R -executemenu.tooltip.stepout = \u6b65\u51fa +executemenu.tooltip.stepout = \u6B65\u51FA #Compile executemenu.id.compile = org.opengauss.executemenu.id.compile @@ -683,9 +688,9 @@ objectbrowser.popupmenu.tooltip.droppartition = \u5220\u9664\u5206\u533A #View Partition Data pop-up menu for object browser objectbrowser.popupmenu.id.viewpartition = org.opengauss.objectbrowser.popupmenu.id.viewpartition -objectbrowser.popupmenu.label.viewpartition = \u67e5\u770b\u5206\u533a\u6570\u636e +objectbrowser.popupmenu.label.viewpartition = \u67E5\u770B\u5206\u533A\u6570\u636E objectbrowser.popupmenu.mnemonics.viewpartition = p -objectbrowser.popupmenu.tooltip.viewpartition = \u67e5\u770b\u5206\u533a\u6570\u636e +objectbrowser.popupmenu.tooltip.viewpartition = \u67E5\u770B\u5206\u533A\u6570\u636E #Rename Partition pop-up menu for object browser objectbrowser.popupmenu.id.renamepartition = org.opengauss.objectbrowser.popupmenu.id.renamepartition @@ -1011,9 +1016,9 @@ objectbrowser.popupmenu.mnemonics.showviewddl = w objectbrowser.popupmenu.tooltip.showviewddl = \u663E\u793A\u89C6\u56FE\u5B9A\u4E49 objectbrowser.popupmenu.id.viewcolumn.defaultvalue = org.opengauss.mppdbide.command.id.viewcolumn.defaultvalue -objectbrowser.popupmenu.label.viewcolumn.defaultvalue = \u8bbe\u7f6e\u89c6\u56fe\u5217\u7f3a\u7701\u503c +objectbrowser.popupmenu.label.viewcolumn.defaultvalue = \u8BBE\u7F6E\u89C6\u56FE\u5217\u7F3A\u7701\u503C objectbrowser.popupmenu.mnemonics.viewcolumn.defaultvalue = D -objectbrowser.popupmenu.tooltip.viewcolumn.defaultvalue = \u8bbe\u7f6e\u89c6\u56fe\u5217\u7f3a\u7701\u503c +objectbrowser.popupmenu.tooltip.viewcolumn.defaultvalue = \u8BBE\u7F6E\u89C6\u56FE\u5217\u7F3A\u7701\u503C objectbrowser.popupmenu.id.exportddl = org.opengauss.mppdbide.command.id.exportddl @@ -1108,8 +1113,8 @@ objectbrowser.popupmenu.mnemonics.dropsequencecascade = D objectbrowser.popupmenu.tooltip.dropsequencecascade = \u7EA7\u8054\u5220\u9664\u5E8F\u5217\u5BF9\u8C61 #DB Assistant -view.db.assistant.title=SQL\u52a9\u624b -view.db.assistant.open=\u6253\u5f00SQL\u52a9\u624b +view.db.assistant.title=SQL\u52A9\u624B +view.db.assistant.open=\u6253\u5F00SQL\u52A9\u624B #Toggle Line Comment editmenu.label.togglelinecomments = \u884C\u6CE8\u91CA/\u53D6\u6D88\u884C\u6CE8\u91CA(&N) @@ -1121,11 +1126,11 @@ editmenu.label.toggleblockcomments = \u5757\u6CE8\u91CA/\u53D6\u6D88\u5757\u6CE8 objectbrowser.popupmenu.mnemonics.toggleblockcomments = B editmenu.tooltip.toggleblockcomments = \u5757\u6CE8\u91CA/\u53D6\u6D88\u5757\u6CE8\u91CA #User/Role Menu -objectbrowser.popupmenu.label.createrole = \u521b\u5efa\u7528\u6237\u002f\u89d2\u8272 -objectbrowser.popupmenu.tooltip.createrole = \u521b\u5efa\u7528\u6237\u002f\u89d2\u8272 +objectbrowser.popupmenu.label.createrole = \u521B\u5EFA\u7528\u6237/\u89D2\u8272 +objectbrowser.popupmenu.tooltip.createrole = \u521B\u5EFA\u7528\u6237/\u89D2\u8272 -objectbrowser.popupmenu.label.dropuserrole = \u5220\u9664\u7528\u6237\u002f\u89d2\u8272 -objectbrowser.popupmenu.tooltip.dropuserrole = \u5220\u9664\u7528\u6237\u002f\u89d2\u8272 +objectbrowser.popupmenu.label.dropuserrole = \u5220\u9664\u7528\u6237/\u89D2\u8272 +objectbrowser.popupmenu.tooltip.dropuserrole = \u5220\u9664\u7528\u6237/\u89D2\u8272 #Grant/Revoke objectbrowser.popupmenu.label.grantrevokewizard = \u6388\u6743/\u64A4\u9500\u6743\u9650 @@ -1138,9 +1143,9 @@ objectbrowser.popupmenu.tooltip.tablespaceproperties=\u670D\u52A1\u5668\u5C5E\u6 #Create C function popup menu for objectbrowser objectbrowser.popupmenu.id.createcfunction= org.opengauss.objectbrowser.popupmenu.id.createcfunction -objectbrowser.popupmenu.label.createcfunction = \u521b\u5efa\u0043\u51fd\u6570 +objectbrowser.popupmenu.label.createcfunction = \u521B\u5EFAC\u51FD\u6570 objectbrowser.popupmenu.mnemonics.createcfunction = c -objectbrowser.popupmenu.tooltip.createcfunction = \u521b\u5efa\u0043\u51fd\u6570objectbrowser.popupmenu.tooltip.tablespaceproperties=\u670D\u52A1\u5668\u5C5E\u6027 +objectbrowser.popupmenu.tooltip.createcfunction = \u521B\u5EFAC\u51FD\u6570objectbrowser.popupmenu.tooltip.tablespaceproperties=\u670D\u52A1\u5668\u5C5E\u6027 #Save As Menu editmenu.id.savesqlas = org.opengauss.editmenu.id.savesqlas @@ -1162,9 +1167,9 @@ objectbrowser.popupmenu.tooltip.edittabledata = \u7F16\u8F91\u8868\u6570\u636E #Edit ERD pop-up menu for object browser objectbrowser.popupmenu.id.viewerd = org.opengauss.mppdbide.command.id.viewerd -objectbrowser.popupmenu.label.viewerd = \u0045\u0052\u56fe +objectbrowser.popupmenu.label.viewerd = ER\u56FE objectbrowser.popupmenu.mnemonics.viewerd = v -objectbrowser.popupmenu.tooltip.viewerd = \u67e5\u770b\u0045\u0052\u56fe +objectbrowser.popupmenu.tooltip.viewerd = \u67E5\u770BER\u56FE #Create Synonym org.opengauss.objectbrowser.popupmenu.id.createsynonym =org.opengauss.objectbrowser.popupmenu.id.createsynonym @@ -1180,20 +1185,20 @@ objectbrowser.popupmenu.mnemonics.dropsynonym = D #Start Debugging org.opengauss.objectbrowser.popupmenu.id.startdebug = org.opengauss.objectbrowser.popupmenu.id.startdebug -objectbrowser.popupmenu.label.startdebug = \u542f\u52a8\u8c03\u8bd5 -objectbrowser.popupmenu.tooltip.startdebug = \u542f\u52a8\u8c03\u8bd5 +objectbrowser.popupmenu.label.startdebug = \u542F\u52A8\u8C03\u8BD5 +objectbrowser.popupmenu.tooltip.startdebug = \u542F\u52A8\u8C03\u8BD5 objectbrowser.popupmenu.mnemonics.startdebug = S #Trigger Create org.opengauss.objectbrowser.popupmenu.id.triggergroup.create = org.opengauss.objectbrowser.popupmenu.id.triggergroup.create -objectbrowser.popupmenu.label.triggergroup.create = \u521b\u5efa\u89e6\u53d1\u5668 +objectbrowser.popupmenu.label.triggergroup.create = \u521B\u5EFA\u89E6\u53D1\u5668 objectbrowser.popupmenu.mnemonics.triggergroup.create = c -objectbrowser.popupmenu.tooltip.triggergroup.create = \u521b\u5efa\u89e6\u53d1\u5668 +objectbrowser.popupmenu.tooltip.triggergroup.create = \u521B\u5EFA\u89E6\u53D1\u5668 #Trigger Drop org.opengauss.objectbrowser.popupmenu.id.trigger.drop = org.opengauss.objectbrowser.popupmenu.id.trigger.drop -objectbrowser.popupmenu.label.trigger.drop = \u5220\u9664\u89e6\u53d1\u5668 +objectbrowser.popupmenu.label.trigger.drop = \u5220\u9664\u89E6\u53D1\u5668 objectbrowser.popupmenu.mnemonics.trigger.drop = d -objectbrowser.popupmenu.tooltip.trigger.drop = \u5220\u9664\u89e6\u53d1\u5668 +objectbrowser.popupmenu.tooltip.trigger.drop = \u5220\u9664\u89E6\u53D1\u5668 #Trigger Edit org.opengauss.objectbrowser.popupmenu.id.trigger.edit = org.opengauss.objectbrowser.popupmenu.id.trigger.edit objectbrowser.popupmenu.label.trigger.edit = \u7F16\u8F91\u89E6\u53D1\u5668 @@ -1201,21 +1206,21 @@ objectbrowser.popupmenu.mnemonics.trigger.edit = i objectbrowser.popupmenu.tooltip.trigger.edit = \u7F16\u8F91\u89E6\u53D1\u5668 #Trigger Enable org.opengauss.objectbrowser.popupmenu.id.trigger.enable = org.opengauss.objectbrowser.popupmenu.id.trigger.enable -objectbrowser.popupmenu.label.trigger.enable = \u542f\u7528\u89e6\u53d1\u5668 +objectbrowser.popupmenu.label.trigger.enable = \u542F\u7528\u89E6\u53D1\u5668 objectbrowser.popupmenu.mnemonics.trigger.enable = e -objectbrowser.popupmenu.tooltip.trigger.enable = \u542f\u7528\u89e6\u53d1\u5668 +objectbrowser.popupmenu.tooltip.trigger.enable = \u542F\u7528\u89E6\u53D1\u5668 #Trigger Disable org.opengauss.objectbrowser.popupmenu.id.trigger.disable = org.opengauss.objectbrowser.popupmenu.id.trigger.disable -objectbrowser.popupmenu.label.trigger.disable = \u7981\u7528\u89e6\u53d1\u5668 +objectbrowser.popupmenu.label.trigger.disable = \u7981\u7528\u89E6\u53D1\u5668 objectbrowser.popupmenu.mnemonics.trigger.disable = i -objectbrowser.popupmenu.tooltip.trigger.disable = \u7981\u7528\u89e6\u53d1\u5668 +objectbrowser.popupmenu.tooltip.trigger.disable = \u7981\u7528\u89E6\u53D1\u5668 #Trigger Rename org.opengauss.objectbrowser.popupmenu.id.trigger.rename = org.opengauss.objectbrowser.popupmenu.id.trigger.rename -objectbrowser.popupmenu.label.trigger.rename = \u91cd\u547d\u540d +objectbrowser.popupmenu.label.trigger.rename = \u91CD\u547D\u540D objectbrowser.popupmenu.mnemonics.trigger.rename = r -objectbrowser.popupmenu.tooltip.trigger.rename = \u91cd\u547d\u540d +objectbrowser.popupmenu.tooltip.trigger.rename = \u91CD\u547D\u540D #Edit View org.opengauss.objectbrowser.popupmenu.id.view.editview = org.opengauss.objectbrowser.popupmenu.id.view.editview -objectbrowser.popupmenu.label.editview = \u7f16\u8f91\u89c6\u56fe +objectbrowser.popupmenu.label.editview = \u7F16\u8F91\u89C6\u56FE objectbrowser.popupmenu.mnemonics.editview = e -objectbrowser.popupmenu.tooltip.editview = \u7f16\u8f91\u89c6\u56fe \ No newline at end of file +objectbrowser.popupmenu.tooltip.editview = \u7F16\u8F91\u89C6\u56FE \ No newline at end of file -- Gitee From 7cd44f16c0f6406f9e7a1db4b7087887b40fa278 Mon Sep 17 00:00:00 2001 From: gitama Date: Thu, 7 Jul 2022 17:23:42 +0800 Subject: [PATCH 009/125] history --- .../mppdbide/debuger/vo/dbe/AttachVo.java | 16 ++++++++++++++++ .../mppdbide/debuger/vo/dbe/InfoCodeVo.java | 16 ++++++++++++++++ .../mppdbide/debuger/vo/dbe/TurnOnVo.java | 13 +++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/AttachVo.java create mode 100644 code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/InfoCodeVo.java create mode 100644 code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/TurnOnVo.java diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/AttachVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/AttachVo.java new file mode 100644 index 00000000..d967763e --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/AttachVo.java @@ -0,0 +1,16 @@ +package org.opengauss.mppdbide.debuger.vo.dbe; + +import org.opengauss.mppdbide.debuger.annotation.DumpFiled; + +public class AttachVo { + + @DumpFiled + public long funcoid; + @DumpFiled + public String funcname; + @DumpFiled + public int lineno; + @DumpFiled + public String query; + +} diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/InfoCodeVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/InfoCodeVo.java new file mode 100644 index 00000000..496ea310 --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/InfoCodeVo.java @@ -0,0 +1,16 @@ +package org.opengauss.mppdbide.debuger.vo.dbe; + +import org.opengauss.mppdbide.debuger.annotation.DumpFiled; + +public class InfoCodeVo { + + @DumpFiled + public int lineno; + @DumpFiled + public String query; + @DumpFiled + public boolean canbreak; + + + +} diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/TurnOnVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/TurnOnVo.java new file mode 100644 index 00000000..f4f1c7e4 --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/TurnOnVo.java @@ -0,0 +1,13 @@ +package org.opengauss.mppdbide.debuger.vo.dbe; + +import org.opengauss.mppdbide.debuger.annotation.DumpFiled; + +public class TurnOnVo { + + + @DumpFiled + public String nodename; + @DumpFiled + public int port; + +} -- Gitee From 1dcfe02b6cf0333a272ab8d7b8861db24d8edc5a Mon Sep 17 00:00:00 2001 From: gitama Date: Thu, 7 Jul 2022 18:36:50 +0800 Subject: [PATCH 010/125] history data --- .../Application.e4xmi | 1 + .../debug/DebugHistoryCoverageHandler.java | 56 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/DebugHistoryCoverageHandler.java diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/Application.e4xmi b/code/datastudio/src/org.opengauss.mppdbide.view/Application.e4xmi index 42ba4a5a..0d93b595 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/Application.e4xmi +++ b/code/datastudio/src/org.opengauss.mppdbide.view/Application.e4xmi @@ -315,6 +315,7 @@ + diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/DebugHistoryCoverageHandler.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/DebugHistoryCoverageHandler.java new file mode 100644 index 00000000..ce8e3ce0 --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/DebugHistoryCoverageHandler.java @@ -0,0 +1,56 @@ +package org.opengauss.mppdbide.view.handler.debug; + +import java.sql.SQLException; + +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.utils.logger.MPPDBIDELoggerUtility; +import org.opengauss.mppdbide.view.ui.PLSourceEditor; +import org.opengauss.mppdbide.view.utils.UIElement; +import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs; +import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs.MESSAGEDIALOGTYPE; + +public class DebugHistoryCoverageHandler { + private DebugHandlerUtils debugUtils = DebugHandlerUtils.getInstance(); + private DebugServiceHelper serviceHelper = DebugServiceHelper.getInstance(); + private PLSourceEditor plSourceEditor; + + /** + * description: can execute + * + * @return boolean true if can + */ + @CanExecute + public boolean canExecute() { + return debugUtils.canStartDebug(); + } + + /** + * description: excute the command + * + * @return void + */ + @Execute + public void execute() { + MPPDBIDELoggerUtility.error("start debugint:" + "null"); + debugUtils.initDebugSourceView(); + showMsg("get data!"); + + } + + + private void showMsg(String msg) { + Display.getDefault().asyncExec(new Runnable() { + @Override + public void run() { + MPPDBIDEDialogs.generateOKMessageDialog( + MESSAGEDIALOGTYPE.WARNING, + true, + "start debug warning", + msg); + } + }); + } + +} -- Gitee From d771ffb1c911b0022456a984769db5c4c9080990 Mon Sep 17 00:00:00 2001 From: gitama Date: Thu, 7 Jul 2022 18:39:32 +0800 Subject: [PATCH 011/125] history data --- .../view/handler/debug/DebugHistoryCoverageHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/DebugHistoryCoverageHandler.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/DebugHistoryCoverageHandler.java index ce8e3ce0..12fa3566 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/DebugHistoryCoverageHandler.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/DebugHistoryCoverageHandler.java @@ -47,7 +47,7 @@ public class DebugHistoryCoverageHandler { MPPDBIDEDialogs.generateOKMessageDialog( MESSAGEDIALOGTYPE.WARNING, true, - "start debug warning", + "get debug history coverage data warning", msg); } }); -- Gitee From 974fc77c63d7f8f449257a32f3f7942fc159599c Mon Sep 17 00:00:00 2001 From: gitama Date: Fri, 8 Jul 2022 11:33:47 +0800 Subject: [PATCH 012/125] history data table --- .../src/messages.properties | 13 ++++++++++++- .../src/messages_zh_CN.properties | 12 +++++++++++- .../mppdbide/utils/IMessagesConstants.java | 11 +++++++++++ .../handler/debug/DebugHistoryCoverageHandler.java | 7 ++++++- 4 files changed, 40 insertions(+), 3 deletions(-) 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 f12e47f1..27c9b59d 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages.properties +++ b/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages.properties @@ -3179,4 +3179,15 @@ CREATE_VIEW_UI_ADD = Add CREATE_VIEW_UI_DELETE = Delete CREATE_VIEW_UI_MATERVIEW = Materialized view CREATE_VIEW_UI_VIEW = View -CREATE_VIEW_UI_NAME_NOT_EMPTY = View name cann't be empty! \ No newline at end of file +CREATE_VIEW_UI_NAME_NOT_EMPTY = View name cann't be empty! + +OID=OID +TOTAL_LINE=TOTAL_LINE +TOTAL_RUN_LINE_NUM=TOTAL_RUN_LINE_NUM +TOTAL_Coverage=TOTAL_Coverage +REMARK_LINE=REMARK_LINE +REMARK_RUM_LIME_NUM=REMARK_RUM_LIME_NUM +REMARK_Coverage=REMARK_Coverage +DELETE_Coverage=DELETE_Coverage +DELETE_Coverage_All=DELETE_Coverage_All +EXPORT_REPORT=EXPORT_REPORT \ 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 b12252a2..92a4562d 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 @@ -3158,4 +3158,14 @@ CREATE_VIEW_UI_ADD = \u6DFB\u52A0 CREATE_VIEW_UI_DELETE = \u5220\u9664 CREATE_VIEW_UI_MATERVIEW = \u7269\u5316\u89C6\u56FE CREATE_VIEW_UI_VIEW = \u89C6\u56FE -CREATE_VIEW_UI_NAME_NOT_EMPTY = \u89C6\u56FE\u540D\u4E0D\u80FD\u4E3A\u7A7A \ No newline at end of file +CREATE_VIEW_UI_NAME_NOT_EMPTY = \u89C6\u56FE\u540D\u4E0D\u80FD\u4E3A\u7A7A +OID=OID +TOTAL_LINE=\u603B\u884C\u6570 +TOTAL_RUN_LINE_NUM=\u6267\u884C\u884C\u6570 +TOTAL_Coverage=\u603B\u8986\u76D6\u7387 +REMARK_LINE=\u6807\u8BB0\u884C\u6570 +REMARK_RUM_LIME_NUM=\u6807\u8BB0\u6267\u884C\u884C\u6570 +REMARK_Coverage=\u6807\u8BB0\u8986\u76D6\u7387 +DELETE_Coverage=\u5220\u9664\u5386\u53F2\u8986\u76D6\u7387 +DELETE_Coverage_All=\u5220\u9664\u5168\u90E8\u8986\u76D6\u7387 +EXPORT_REPORT=\u5BFC\u51FA\u8986\u76D6\u7387\u62A5\u544A \ No newline at end of file diff --git a/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java b/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java index d955d39e..872046dc 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java +++ b/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java @@ -3016,4 +3016,15 @@ public interface IMessagesConstants extends IMessagesConstantsOne { String CREATE_VIEW_UI_VIEW = "CREATE_VIEW_UI_VIEW"; String CREATE_VIEW_UI_MATERVIEW = "CREATE_VIEW_UI_MATERVIEW"; String CREATE_VIEW_UI_NAME_NOT_EMPTY = "CREATE_VIEW_UI_NAME_NOT_EMPTY"; + + String OID="OID"; + String TOTAL_LINE="TOTAL_LINE"; + String TOTAL_RUN_LINE_NUM="TOTAL_RUN_LINE_NUM"; + String TOTAL_Coverage="TOTAL_Coverage"; + String REMARK_LINE="REMARK_LINE"; + String REMARK_RUM_LIME_NUM="REMARK_RUM_LIME_NUM"; + String REMARK_Coverage="REMARK_Coverage"; + String DELETE_Coverage = "DELETE_Coverage"; + String DELETE_Coverage_All="DELETE_Coverage_All"; + String EXPORT_REPORT="EXPORT_REPORT"; } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/DebugHistoryCoverageHandler.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/DebugHistoryCoverageHandler.java index 12fa3566..618dc2ca 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/DebugHistoryCoverageHandler.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/handler/debug/DebugHistoryCoverageHandler.java @@ -5,7 +5,9 @@ import java.sql.SQLException; import org.eclipse.e4.core.di.annotations.CanExecute; import org.eclipse.e4.core.di.annotations.Execute; import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; import org.opengauss.mppdbide.utils.logger.MPPDBIDELoggerUtility; +import org.opengauss.mppdbide.view.ui.CoverageHistory; import org.opengauss.mppdbide.view.ui.PLSourceEditor; import org.opengauss.mppdbide.view.utils.UIElement; import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs; @@ -35,7 +37,10 @@ public class DebugHistoryCoverageHandler { public void execute() { MPPDBIDELoggerUtility.error("start debugint:" + "null"); debugUtils.initDebugSourceView(); - showMsg("get data!"); + Shell shell = Display.getDefault().getActiveShell(); + CoverageHistory coverageHistory=new CoverageHistory(shell); + coverageHistory.open(); + //showMsg("get data!"); } -- Gitee From 4f5c98f7cf51dd385595a2aab898074fb82400f6 Mon Sep 17 00:00:00 2001 From: gitama Date: Fri, 8 Jul 2022 16:30:41 +0800 Subject: [PATCH 013/125] CALL insert_data(param1:=210101,param2:='Alan',param3:='21.01',param4:=92); --- .../debuger/debug/DebugConstants.java | 2 ++ .../debuger/service/DebugService.java | 21 +++++++++++++++---- .../view/handler/debug/StartDebugHandler.java | 13 ++++++++++++ 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java index 57f61842..1867d616 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java @@ -15,6 +15,7 @@ package org.opengauss.mppdbide.debuger.debug; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Locale; import java.util.stream.Stream; @@ -33,6 +34,7 @@ public class DebugConstants { public static final String DBE_DEBUGGER="dbe_debugger"; public static final Integer DBE_DEBUGGER_MIN_VERSION=300; public static final LinkedHashMap enumMap=getEnumMap(DebugOpt.class); + public static HashMap oidSqlMap = new HashMap<>(); /** * get DebugOpt by different debugger diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java index 058ba38f..333241ba 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java @@ -153,16 +153,29 @@ public class DebugService implements NoticeListener, EventHander, IDebugService public Optional serverDebugCallBack(List args) throws SQLException { try { serverCallBackBegin(); - String sql = DebugConstants.getSql(functionVo.proname, args.size()); + boolean isPldebugger= VersionHelper.getDebuggerVersion(clientConn).isPldebugger(); + String sql =""; + if(isPldebugger) { + sql=DebugConstants.getSql(functionVo.proname, args.size()); + }else { + long oid=functionVo.oid; + sql="CALL "+functionVo.proname+" "+DebugConstants.oidSqlMap.get(oid); + } + try (PreparedStatement ps = serverConn.getStatement(sql)) { for (int i = 1 ; i < args.size() + 1; i ++) { ps.setObject(i, args.get(i - 1)); } try (ResultSet rs = ps.executeQuery()) { - if (rs.next()) { - return Optional.ofNullable(rs.getObject(1)); - } + if(isPldebugger) { + if (rs.next()) { + return Optional.ofNullable(rs.getObject(1)); + } + } return Optional.empty(); + }catch(Exception e) { + e.printStackTrace(); + return Optional.empty(); } } } finally { 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 14ad5dce..3ac76bd2 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 @@ -29,6 +29,7 @@ import org.opengauss.mppdbide.bl.serverdatacache.DefaultParameter; import org.opengauss.mppdbide.bl.serverdatacache.IDebugObject; import org.opengauss.mppdbide.bl.serverdatacache.ObjectParameter; import org.opengauss.mppdbide.bl.serverdatacache.ObjectParameter.PARAMETERTYPE; +import org.opengauss.mppdbide.debuger.debug.DebugConstants; import org.opengauss.mppdbide.utils.IMessagesConstants; import org.opengauss.mppdbide.utils.exceptions.DatabaseCriticalException; import org.opengauss.mppdbide.utils.exceptions.DatabaseOperationException; @@ -142,6 +143,18 @@ public class StartDebugHandler { .getDefaulParametertMap() .get(debugObject.getOid()); debugParams = getDebugParams(serverParams); + StringBuffer buffer=new StringBuffer("("); + int count=0; + for(DefaultParameter a:serverParams) { + if(count!=0) { + buffer.append(","); + } + buffer.append(a.getDefaultParameterName()); + buffer.append(":=?").append(""); + count++; + } + buffer.append(")"); + DebugConstants.oidSqlMap.put(debugObject.getOid(), buffer.toString()); } serviceHelper.getDebugService().begin(debugParams); debugUtils.setDebugStart(true); -- Gitee From 036c604259146abc18180fb4a4c5302d2e65d0e7 Mon Sep 17 00:00:00 2001 From: gitama Date: Fri, 8 Jul 2022 16:52:52 +0800 Subject: [PATCH 014/125] CALL insert_data(param1:=210101,param2:='Alan',param3:='21.01',param4:=92); --- .../debuger/service/DebugService.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java index 333241ba..87475453 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java @@ -166,17 +166,26 @@ public class DebugService implements NoticeListener, EventHander, IDebugService for (int i = 1 ; i < args.size() + 1; i ++) { ps.setObject(i, args.get(i - 1)); } - try (ResultSet rs = ps.executeQuery()) { - if(isPldebugger) { - if (rs.next()) { + if(isPldebugger) { + try (ResultSet rs = ps.executeQuery()) { + if (rs.next()) { return Optional.ofNullable(rs.getObject(1)); } + return Optional.empty(); + }catch(Exception e) { + e.printStackTrace(); + return Optional.empty(); + } + }else { + try { + ps.execute(); + }catch(Exception e) { + e.printStackTrace(); } - return Optional.empty(); - }catch(Exception e) { - e.printStackTrace(); + return Optional.empty(); } + } } finally { serverCallBackEnd(); -- Gitee From 09fd0b030b238029e789d105b39d64f922e5ffb3 Mon Sep 17 00:00:00 2001 From: gitama Date: Fri, 8 Jul 2022 17:39:50 +0800 Subject: [PATCH 015/125] CALL insert_data(param1:=210101,param2:='Alan',param3:='21.01',param4:=92); --- .../mppdbide/view/ui/CoverageHistory.java | 181 ++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java new file mode 100644 index 00000000..274cb54a --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java @@ -0,0 +1,181 @@ +package org.opengauss.mppdbide.view.ui; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +import org.eclipse.core.commands.Command; +import org.eclipse.core.commands.ParameterizedCommand; +import org.eclipse.e4.core.commands.ECommandService; +import org.eclipse.e4.core.commands.EHandlerService; +import org.eclipse.e4.core.contexts.IEclipseContext; +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.text.Document; +import org.eclipse.jface.text.IDocument; +import org.eclipse.jface.text.source.CompositeRuler; +import org.eclipse.jface.text.source.ISharedTextColors; +import org.eclipse.jface.text.source.LineNumberRulerColumn; +import org.eclipse.jface.text.source.SourceViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.ScrolledComposite; +import org.eclipse.swt.events.KeyEvent; +import org.eclipse.swt.events.KeyListener; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.swt.widgets.TableItem; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; +import org.eclipse.ui.internal.editors.text.EditorsPlugin; + +import org.opengauss.mppdbide.adapter.keywordssyntax.SQLSyntax; +import org.opengauss.mppdbide.bl.preferences.BLPreferenceManager; +import org.opengauss.mppdbide.bl.sqlhistory.SQLHistoryFactory; +import org.opengauss.mppdbide.bl.sqlhistory.SQLHistoryItem; +import org.opengauss.mppdbide.bl.sqlhistory.manager.ISqlHistoryManager; +import org.opengauss.mppdbide.eclipse.dependent.EclipseInjections; +import org.opengauss.mppdbide.utils.EnvirnmentVariableValidator; +import org.opengauss.mppdbide.utils.IMessagesConstants; +import org.opengauss.mppdbide.utils.MPPDBIDEConstants; +import org.opengauss.mppdbide.utils.exceptions.MPPDBIDEException; +import org.opengauss.mppdbide.utils.loader.MessageConfigLoader; +import org.opengauss.mppdbide.view.core.sourceeditor.SQLDocumentPartitioner; +import org.opengauss.mppdbide.view.core.sourceeditor.SQLSourceViewerConfig; +import org.opengauss.mppdbide.view.core.sourceeditor.SQLSourceViewerDecorationSupport; +import org.opengauss.mppdbide.view.ui.terminal.SQLTerminal; +import org.opengauss.mppdbide.view.utils.IUserPreference; +import org.opengauss.mppdbide.view.utils.UIElement; +import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs; +import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs.MESSAGEDIALOGTYPE; +import org.opengauss.mppdbide.view.utils.icon.IconUtility; +import org.opengauss.mppdbide.view.utils.icon.IiconPath; + + +public class CoverageHistory extends Dialog{ + + private Table table = null; + private ToolItem saveToolItem = null; + private ToolItem deleteToolItem = null; + private ToolItem deleteAllToolItem = null; + + public CoverageHistory(Shell parentShell) { + super(parentShell); + // TODO Auto-generated constructor stub + } + + /** + * Creates the contents. + * + * @param parent the parent + * @return the control + */ + @Override + public Control createContents(final Composite parent) { + final ScrolledComposite mainSc = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL); + mainSc.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); + + final Composite currentComposite = new Composite(mainSc, SWT.BORDER); + mainSc.setContent(currentComposite); + GridLayout layout = new GridLayout(1, false); + currentComposite.setLayout(layout); + createToolbar(currentComposite); + table = new Table(currentComposite, SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.BORDER); + GridData tableGD = new GridData(SWT.FILL, SWT.FILL, true, true); + tableGD.heightHint = 300; + table.setLayoutData(tableGD); + table.setHeaderVisible(true); + table.setLinesVisible(true); + table.setTopIndex(10); + + //table.addKeyListener(new org.opengauss.mppdbide.view.ui.SqlHistory.HistoryTblKeyListener()); + TableColumn serialno = new TableColumn(table, SWT.LEFT); + //TableColumn oid = new TableColumn(table, SWT.LEFT); + TableColumn totalLine = new TableColumn(table, SWT.LEFT); + TableColumn totalRunLineNum = new TableColumn(table, SWT.LEFT); + TableColumn totalCoverage = new TableColumn(table, SWT.LEFT); + TableColumn remarkLine = new TableColumn(table, SWT.LEFT); + TableColumn remarkRunLineNum = new TableColumn(table, SWT.LEFT); + TableColumn remarkCoverage = new TableColumn(table, SWT.LEFT); + TableColumn time = new TableColumn(table, SWT.LEFT); + + serialno.setText(MessageConfigLoader.getProperty(IMessagesConstants.SERIAL_NO)); + //oid.setText(org.opengauss.mppdbide.utils.loader.MessageConfigLoader.getProperty(IMessagesConstants.OID)); + totalLine.setText(org.opengauss.mppdbide.utils.loader.MessageConfigLoader.getProperty(IMessagesConstants.TOTAL_LINE)); + totalRunLineNum.setText(org.opengauss.mppdbide.utils.loader.MessageConfigLoader.getProperty(IMessagesConstants.TOTAL_RUN_LINE_NUM)); + totalCoverage.setText(org.opengauss.mppdbide.utils.loader.MessageConfigLoader.getProperty(IMessagesConstants.TOTAL_Coverage)); + remarkLine.setText(org.opengauss.mppdbide.utils.loader.MessageConfigLoader.getProperty(IMessagesConstants.REMARK_LINE)); + remarkRunLineNum.setText(org.opengauss.mppdbide.utils.loader.MessageConfigLoader.getProperty(IMessagesConstants.REMARK_RUM_LIME_NUM)); + remarkCoverage.setText(org.opengauss.mppdbide.utils.loader.MessageConfigLoader.getProperty(IMessagesConstants.REMARK_Coverage)); + time.setText(org.opengauss.mppdbide.utils.loader.MessageConfigLoader.getProperty(IMessagesConstants.ELAPSED_TIME)); + + ////databasename.setText(org.opengauss.mppdbide.utils.loader.MessageConfigLoader.getProperty(IMessagesConstants.DATABASE_NAME)); + //finalstatus.setText(org.opengauss.mppdbide.utils.loader.MessageConfigLoader.getProperty(IMessagesConstants.FINAL_STATUS)); + serialno.pack(); + //oid.pack(); + totalLine.pack(); + totalRunLineNum.pack(); + totalCoverage.pack(); + remarkLine.pack(); + remarkRunLineNum.pack(); + remarkCoverage.pack(); + time.pack(); + + //createSourceViewer(currentComposite); + mainSc.setExpandHorizontal(true); + mainSc.setExpandVertical(true); + mainSc.setMinSize(currentComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT)); + mainSc.pack(); + + return parent; + } + + + private void createToolbar(final Composite parent) { + + final ToolBar bar = new ToolBar(parent, SWT.FLAT | SWT.FOCUSED); + + final Image loadsqlIcon = IconUtility.getIconImage(IiconPath.LOAD_QUERY_SQL, getClass()); + final Image sqlcloseIcon = IconUtility.getIconImage(IiconPath.LOAD_QUERY_SQL_CLOSE, getClass()); + final Image deleteIcon = IconUtility.getIconImage(IiconPath.DELETE_SELECTED, getClass()); + + final Image deleteallIcon = IconUtility.getIconImage(IiconPath.DELETE_ALL, getClass()); + + final Image pinIcon = IconUtility.getIconImage(IiconPath.PIN_SQL, getClass()); + + final Image unpinIcon = IconUtility.getIconImage(IiconPath.UNPIN_SQL, getClass()); + + saveToolItem = new ToolItem(bar, SWT.PUSH); + saveToolItem.setEnabled(false); + saveToolItem.setImage(sqlcloseIcon); + saveToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.EXPORT_REPORT)); + //saveToolItem.addSelectionListener(new LoadsqlclosehistoryClass()); + + + deleteToolItem = new ToolItem(bar, SWT.PUSH); + deleteToolItem.setEnabled(false); + deleteToolItem.setImage(deleteIcon); + deleteToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.DELETE_Coverage)); + //deleteToolItem.addSelectionListener(new DeletesqlClass()); + + deleteAllToolItem = new ToolItem(bar, SWT.PUSH); + deleteAllToolItem.setEnabled(false); + deleteAllToolItem.setImage(deleteallIcon); + deleteAllToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.DELETE_Coverage_All)); + //deleteAllToolItem.addSelectionListener(new DeleteAllsqlClass()); + + + + } + +} -- Gitee From d9825390662b179e0f2b81b0e35e2af9604480e7 Mon Sep 17 00:00:00 2001 From: xjp Date: Fri, 8 Jul 2022 18:07:21 +0800 Subject: [PATCH 016/125] add CoverageVo --- .../mppdbide/debuger/vo/dbe/CoverageVo.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/CoverageVo.java diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/CoverageVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/CoverageVo.java new file mode 100644 index 00000000..4965155b --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/CoverageVo.java @@ -0,0 +1,27 @@ +package org.opengauss.mppdbide.debuger.vo.dbe; + +import org.opengauss.mppdbide.debuger.annotation.DumpFiled; + +public class CoverageVo { + + @DumpFiled + public long cid; + @DumpFiled + public int totalLineNum; + @DumpFiled + public int coverageLineNum; + @DumpFiled + public int[] coverageLines; + @DumpFiled + public String totalPercent; + @DumpFiled + public int remarkLineNum; + @DumpFiled + public int[] remarkLines; + @DumpFiled + public int[] remarkConverageLines; + @DumpFiled + public String remarkPercent; + @DumpFiled + public long timeUse; +} -- Gitee From 83651a6e93fa2e11cb51cc247dce9f3202ed34d1 Mon Sep 17 00:00:00 2001 From: xjp Date: Fri, 8 Jul 2022 18:42:05 +0800 Subject: [PATCH 017/125] update code --- .../mppdbide/debuger/vo/dbe/CoverageVo.java | 27 ----- .../mppdbide/view/ui/CoverageHistory.java | 100 +++++++++++++++++- .../mppdbide/view/vo/CoverageVo.java | 29 +++++ 3 files changed, 125 insertions(+), 31 deletions(-) delete mode 100644 code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/CoverageVo.java create mode 100644 code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageVo.java diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/CoverageVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/CoverageVo.java deleted file mode 100644 index 4965155b..00000000 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/CoverageVo.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.opengauss.mppdbide.debuger.vo.dbe; - -import org.opengauss.mppdbide.debuger.annotation.DumpFiled; - -public class CoverageVo { - - @DumpFiled - public long cid; - @DumpFiled - public int totalLineNum; - @DumpFiled - public int coverageLineNum; - @DumpFiled - public int[] coverageLines; - @DumpFiled - public String totalPercent; - @DumpFiled - public int remarkLineNum; - @DumpFiled - public int[] remarkLines; - @DumpFiled - public int[] remarkConverageLines; - @DumpFiled - public String remarkPercent; - @DumpFiled - public long timeUse; -} diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java index 274cb54a..ce28f6e3 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java @@ -60,6 +60,7 @@ import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs; import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs.MESSAGEDIALOGTYPE; import org.opengauss.mppdbide.view.utils.icon.IconUtility; import org.opengauss.mppdbide.view.utils.icon.IiconPath; +import org.opengauss.mppdbide.view.vo.CoverageVo; public class CoverageHistory extends Dialog{ @@ -137,10 +138,22 @@ public class CoverageHistory extends Dialog{ mainSc.setMinSize(currentComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT)); mainSc.pack(); + TableItem item = new TableItem(table,SWT.NONE); + CoverageVo vo = new CoverageVo(); + item.setText(new String[]{ + String.valueOf(1), + String.valueOf(vo.cid), + String.valueOf(vo.totalLineNum), + String.valueOf(vo.coverageLineNum), + String.valueOf(vo.totalPercent), + String.valueOf(vo.remarkLineNum), + String.valueOf(vo.remarkPercent), + String.valueOf(vo.timeUse) + }); +// item.dispose(); return parent; } - private void createToolbar(final Composite parent) { final ToolBar bar = new ToolBar(parent, SWT.FLAT | SWT.FOCUSED); @@ -169,13 +182,92 @@ public class CoverageHistory extends Dialog{ //deleteToolItem.addSelectionListener(new DeletesqlClass()); deleteAllToolItem = new ToolItem(bar, SWT.PUSH); - deleteAllToolItem.setEnabled(false); + deleteAllToolItem.setEnabled(true); deleteAllToolItem.setImage(deleteallIcon); deleteAllToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.DELETE_Coverage_All)); - //deleteAllToolItem.addSelectionListener(new DeleteAllsqlClass()); + deleteAllToolItem.addSelectionListener(new DeleteAllsqlClass()); + } + + private final class DeleteAllsqlClass implements SelectionListener { + + @Override + public void widgetSelected(SelectionEvent event) { + boolean isPinned = false; + boolean isUnpinned = false; + TableItem[] items = table.getItems(); + + for (TableItem item : items) { + if (((SQLHistoryItem) item.getData()).isPinned()) { + isPinned = true; + } else { + isUnpinned = true; + } + } + + if (isPinned && !isUnpinned) { + MPPDBIDEDialogs.generateOKMessageDialog(MESSAGEDIALOGTYPE.INFORMATION, true, + MessageConfigLoader.getProperty(IMessagesConstants.DELETE_SQL), + MessageConfigLoader.getProperty(IMessagesConstants.PINNED_DELETION)); + } else { + int type = MPPDBIDEDialogs.generateOKCancelMessageDialog(MESSAGEDIALOGTYPE.WARNING, true, + MessageConfigLoader.getProperty(IMessagesConstants.DELETE_SQL), + MessageConfigLoader.getProperty(IMessagesConstants.DELETE_ALL_HISTORY_ALERT, "192.168.31.120", + MPPDBIDEConstants.LINE_SEPARATOR)); + + deleteSQLHistory(type, items); + + } + resetSerialNumber(); - + } + @Override + public void widgetDefaultSelected(SelectionEvent event) { + + } + } + + private void deleteSQLHistory(int type, TableItem[] items) { +// this.manager = SQLHistoryFactory.getInstance(); + if (type == 0) { + List historyItems = new LinkedList(); + int counter = 0; + for (TableItem item : items) { + if (!((SQLHistoryItem) item.getData()).isPinned()) { + historyItems.add((SQLHistoryItem) item.getData()); + item.dispose(); + counter++; + } + } + if (counter != 0) { +// manager.deleteHistoryItems(historyItems); + } +// sourceViewer.getDocument().set(""); + } } + private void resetSerialNumber() { + if (table != null) { + TableItem[] items = table.getItems(); + int size = items.length; + if (size <= 0) { + enablebuttons(false); + return; + } + + for (int indx = 0; indx < size; indx++) { + items[indx].setText(0, Integer.toString(indx + 1)); + } + } + } + + protected void enablebuttons(boolean value) { +// openToolItem.setEnabled(value); + saveToolItem.setEnabled(value); + deleteAllToolItem.setEnabled(value); + deleteToolItem.setEnabled(value); +// pinToolItem.setEnabled(value); +// unpinToolItem.setEnabled(value); + + } } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageVo.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageVo.java new file mode 100644 index 00000000..24db8883 --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageVo.java @@ -0,0 +1,29 @@ +package org.opengauss.mppdbide.view.vo; + +import java.util.List; + +import org.opengauss.mppdbide.debuger.annotation.DumpFiled; + +public class CoverageVo { + + @DumpFiled + public long cid =1; + @DumpFiled + public int totalLineNum =2; + @DumpFiled + public int coverageLineNum=3; +// @DumpFiled + public List coverageLines; + @DumpFiled + public String totalPercent="4"; + @DumpFiled + public int remarkLineNum=5; +// @DumpFiled + public List remarkLines; +// @DumpFiled + public List remarkConverageLines; + @DumpFiled + public String remarkPercent="6"; + @DumpFiled + public long timeUse=100; +} -- Gitee From fde23bcf4bb699ba7f4c11f61368d8aea6ff4b5f Mon Sep 17 00:00:00 2001 From: xjp Date: Mon, 11 Jul 2022 15:14:29 +0800 Subject: [PATCH 018/125] delete info and delete all --- .../CoverageHistoryManagerImpl.java | 32 ++ .../manager/CoverageHistoryManager.java | 34 ++ .../src/messages.properties | 52 ++- .../src/messages_zh_CN.properties | 50 ++- .../mppdbide/utils/IMessagesConstants.java | 15 +- .../mppdbide/view/ui/CoverageHistory.java | 412 ++++++++++++------ .../mppdbide/view/vo/CoverageVo.java | 47 +- 7 files changed, 458 insertions(+), 184 deletions(-) create mode 100644 code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/CoverageHistoryManagerImpl.java create mode 100644 code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/manager/CoverageHistoryManager.java diff --git a/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/CoverageHistoryManagerImpl.java b/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/CoverageHistoryManagerImpl.java new file mode 100644 index 00000000..cc79c916 --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/CoverageHistoryManagerImpl.java @@ -0,0 +1,32 @@ +package org.opengauss.mppdbide.bl.sqlhistory; + +import java.util.List; + +import org.opengauss.mppdbide.bl.sqlhistory.manager.CoverageHistoryManager; + +public class CoverageHistoryManagerImpl implements CoverageHistoryManager{ + +// @Override +// public List setRemarkInfo(String... rowLines) { +// // TODO Auto-generated method stub +// return null; +// } + + @Override + public List getRemarkInfo(String oid) { + // TODO Auto-generated method stub + return null; + } + +// @Override +// public List getCoverageInfoByOid(String oid) { +// // TODO Auto-generated method stub +// return null; +// } + + @Override + public void delCoverageInfoByOid(String oid, Integer cid) { + // TODO Auto-generated method stub + + } +} diff --git a/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/manager/CoverageHistoryManager.java b/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/manager/CoverageHistoryManager.java new file mode 100644 index 00000000..e32316ef --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/manager/CoverageHistoryManager.java @@ -0,0 +1,34 @@ +package org.opengauss.mppdbide.bl.sqlhistory.manager; + +import java.util.List; + +public interface CoverageHistoryManager { + + /** + * set Highlight + * @param rowLines + */ +// List setRemarkInfo(String...rowLines); + + /** + * Get the line number of the tag according to the ID + * @param oid + * @return + */ + List getRemarkInfo(String oid); + + + /** + * get info by id + * @param oid + * @return + */ +// List getCoverageInfoByOid(String oid); + + /** + * delete info + * @param oid + * @param cid + */ + void delCoverageInfoByOid(String oid, Integer cid); +} 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 27c9b59d..539b8dd6 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages.properties +++ b/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages.properties @@ -75,7 +75,7 @@ MSG_HINT_GUI_CONNECTION_FAIL = HINT (Try one of the below): \ \n1. Verify the connection properties specified.\ \n2. Check whether the Data Studio and Server are version compatible. \ \n3. Check whether the configurations are set properly, refer the client and server manual for more information. - + MSG_HINT_GUI_CONNECTION_FAIL_FOR_SSL = HINT (Try one of the below): \ \n1. Verify that SSL password is valid\ \n2. Verify that valid certificate and key files are used @@ -85,7 +85,7 @@ ERR_GUI_RESULT_SET_INVALID = Result set fetch invalid. ERR_SYNONYM_NOT_SUPPORTED = Synonyms are not supported in this server, please uncheck Synonyms and search. ERR_EXPORT_TABLE_TO_CSV=Error while exporting table data - + #BL Error messages @@ -159,7 +159,7 @@ ERR_EXE_PLAN_QUERY_PARSE_FAILED=Query parsing failed. Check if the query is comp MSG_HINT_REFRESH_OBJECTBROWSER = \nHint: Check whether function/procedure has been dropped/modified from another terminal or access privilege is modified. \ \nTry refreshing after some time. - + MSG_HINT_GETSOURCE = \nHINT: Try refreshing after sometime. MSG_CLEAR_EDITOR_CONTENT_ON_ERROR = Error refreshing object opened in editor: Clearing editor contents @@ -170,7 +170,7 @@ MSG_HINT_DATABASE_CRITICAL_ERROR = Critical error occurred in database session. ERR_MSG_OUT_OF_MEMORY_ERROR_OCCURRED = Out of memory error occurred. Connection will be closed. \ \nHint: \n 1. Try increasing the heap memory size in configuration file. - + ERR_TITLE_DB_CRITICAL_ERROR = Database Critical Error ERR_QUERY_EXECUTION_FAILED = Update failed. No rows affected. Cancel changes, refresh the data and try again. @@ -303,7 +303,7 @@ CONSOLE_WINDOW_ERROR_SCROLLING_MSG=Error occurred while scrolling to last of mes CONSOLE_WINDOW_LINE_NUMBER_MSG=number of lines: CONSOLE_WINDOW_OFFSET_MSG = offset: CONSOLE_WINDOW_LENGTH_MSG = length: - + EXECDIALOG_PARAMETER_VALUE=Enter the parameter values. EXECDIALOG_EXEC_PL_SQL=Execute Function/Procedure @@ -314,9 +314,9 @@ EXECDIALOG_VALUE=Value EXECDIALOG_HINT= HINT: OBJECT_BROWSER_LABEL_MSG=Unknown Type - + LABEL_VIEW_SOURCE=View Source - + PL_SOURCE_EDITOR_AT= at # {0} ANALYSE_TABLE_ERROR_MSG=Error while analyzing @@ -994,7 +994,7 @@ BTN_CANCEL = Cancel BTN_CLEAR = Clear MSG_DS__NO_DATA_ENCRYPT_DISCLAIMER = 1) Data Studio does not support data encryption. Sensitive information may be accessible to hackers.\n Action Required: Ensure that the file is saved in a secure location.\n - + MSG_DS__NO_DATA_ENCRYPT_DISCLAIMER_SECONDPART2 = 2) Data Studio will not set any permissions of the exported files.\n Action Required: Read/Write permissions of folders must be set by the user. MSG_DO_NOT_SHOW_AGAIN = Do not show again. TITLE_DISCLAIMER = Data Studio Security Warning @@ -1060,7 +1060,7 @@ SECURITY_FAILURE_SUGGESTION=1. Delete the security folder from Data Studio folde EDIT_DATA_WIZARD_TITLE=Edit Table Data Wizard - + CANCEL_OPERATION_TITLE= Cancel Operation CANCEL_OPERATION_MSG= Are you sure you want to cancel the operation? @@ -1264,7 +1264,7 @@ SQL_HISTORY_DISABLED_TOOL_TIP = SQL Execution History - Profile Not Loaded SQL_HISTORY_TITLE = SQL Execution History - {0} SQL_AUTOCOMMIT_ON_TOOL_TIP = Auto Commit On SQL_AUTOCOMMIT_OFF_TOOL_TIP = Auto Commit Off - + SQL_AUTOCOMMIT_DISABLED_TOOL_TIP = Turn Auto Commit On/Off - No Active Connections ERR_SQL_AUTOCOMMIT_TOGGLE_TITLE = Turning Auto Commit On Failed @@ -1284,7 +1284,7 @@ UNPIN_SQL = Unpin SQL SERIAL_NO = Serial No CONN_PROFILE_ERROR_MSG=Error occurred while loading profiles : {0}.These profiles are removed from the profile list. CIPHER_DECRYPT_ERROR_MSG=Error occurred while loading profiles : {0}. Decrypting passwords for these profiles failed. Re-enter the password. - + TABLESPACE_NAME=Name* TABLESPACE_RELATIVE_PATH=Relative Path TABLESPACE_LOCATION=Location* @@ -1792,12 +1792,12 @@ PREFERENCE_SHORTCUT_EXECUTION_PLAN_AND_COST=Explain Plan and Cost PREFERENCE_SHORTCUT_VISUAL_EXPLAIN_PLAN=Visual Explain Plan PREFERENCE_SHORTCUT_FORMAT_SQL_STATEMENT = Format PREFERENCE_SHORTCUT_OPEN_SAVED_FILE =Open - + PREFERENCE_SHORTCUT_TO_SAVE_FILE =Save PREFERENCE_SHORTCUT_TO_SAVE_FILE_AS =Save As PREFERENCE_SHORTCUT_CANCEL_SQL_STETEMNT =Cancel PREFERENCE_SHORTCUT_CLOSE_ACTIVE_VIEWER =Close Active Source Viewer - + PREFERENCE_SHORTCUT_COLAPSE_ALL_OBJECTS=Collapse Open Objects PREFERENCE_SHORTCUT_AUTO_SUGGEST=Auto Suggest @@ -1819,31 +1819,31 @@ YES_EXPIRY_OPTION= Allow NO_EXPIRY_OPTION = Not Allow CIPHER_EXPIRY_MSG_TITLE = The password is about to expire. CIPHER_EXPIRY_INFORMATION = The password is about to expire and certain operations may be restricted. Contact administrator to reset password. - + EDITTABLE_TITLE = Table Data Save Option YES_EDITTABLE_OPTION=Valid data will be saved. All invalid data will be highlighted for correction and will not be saved. NO_EDITTABLE_OPTION=If an error occurs no data will be saved. Invalid data will be highlighted for correction. EDIT_TABLE_ENABLE_OPTION=Save Valid Data EDIT_TABLE_DISABLE_OPTION=Do Not Save - - + + SHOW_USER_MSG_ON_TABLE_UPDATE_TITLE =Table Property Update SHOW_USER_MSG_ON_TABLE_UPDATE_BODY =Modifying the {0} will delete the information from {1} tab. - - + + CONSTRAINT_INDEXES_HANDLER_NOT_SUPPORTED_TITLE=Operation Not Supported CONSTRAINT_HANDLER_FOR_COLUMN_ORIENTATION_BODY=Creation of constraints for column orientation table is not supported. CHANGE_INDEX_FOR_COLUMN_ORIENTATION_TABLE= Modification of fill factor for index in column orientation table is not supported. This value has been set by default to 100. - + DATA_DISTRIBUTION_TAB=data distribution INDEXES_TAB=indexes CONSTRAINT_TAB=constraint PARTITION_TAB=partition - + CANCEL_CONNECTION_TITLE=Cancel Connection CANCEL_CONNECTION_BODY=Do you wish to cancel connecting to the database? USER_CANCEL_MSG =Operation canceled on user request - + REFRESH_TABLE_TOOLTIP=Refresh REFRESH_TABLE_TOOLTIP_DISABLED = Save/Cancel changes to refresh INSERT_ROW_TOOLTIP= Add @@ -1872,7 +1872,7 @@ USER_CANCEL_MSG =Operation canceled on user request PASTE_INVALID_SELECTION_DIALOG_MSG=The number of pasted cell and the selected cell does not match QUERY_EXECUTION_FAILURE_ERROR_TITLE=Data Modification Failed QUERY_EXECUTION_FAILURE_ERROR=Failed to update one or more rows. Please move the cursor on row line number to check the error message in tool tip. - + GRID_EDIT_STATUS_INSERTED = Inserted: GRID_EDIT_STATUS_UPDATED = Modified: GRID_EDIT_STATUS_DELETED = Deleted: @@ -3037,7 +3037,7 @@ CURSOR_DATA_NODE = Cursor Data RESULT_TAB_COL_VALUE = Value CURSOR_TOOLTIP_TEXT = double click to see the full data - + VOID_VALUE_TOOLTIP_TEXT = no value returned by server EDIT_TERMINAL_INPUT_VALUE = Edit Function/procedure input parameter values @@ -3190,4 +3190,8 @@ REMARK_RUM_LIME_NUM=REMARK_RUM_LIME_NUM REMARK_Coverage=REMARK_Coverage DELETE_Coverage=DELETE_Coverage DELETE_Coverage_All=DELETE_Coverage_All -EXPORT_REPORT=EXPORT_REPORT \ No newline at end of file +EXPORT_REPORT=EXPORT_REPORT +COVERAGE_HISTORY_TITLE= Coverage_Report +DELETE_COVERAGE_REPORT_TITLE = Delete Stored Procedure +DELETE_SELECTED_COVERAGE_HISTORY_ALERT= Are you sure you want to delete the selected stored procedure query history for the {0} connection profile? +DELETE_ALL_COVERAGE_HISTORY_ALERT=Are you sure you want to delete the stored procedure query history for the {0} connection profile? 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 92a4562d..be1f9cb3 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 @@ -86,7 +86,7 @@ ERR_GUI_RESULT_SET_INVALID = \u83B7\u53D6\u7ED3\u679C\u65E0\u6548. ERR_SYNONYM_NOT_SUPPORTED = \u670D\u52A1\u5668\u4E0D\u652F\u6301\u540C\u4E49\u8BCD\u3002\u8BF7\u53D6\u6D88\u540C\u4E49\u8BCD\u68C0\u67E5\u548C\u641C\u7D22\u3002 ERR_EXPORT_TABLE_TO_CSV= \u5BFC\u51FA\u8868\u6570\u636E\u51FA\u9519.. - + EDIT_TABLE_INVALID_BOOLEAN_DATATYPE=\u7C98\u8D34\u7684\u5185\u5BB9\u4E0D\u5339\u914DBoolean/Bit\u6570\u636E\u7C7B\u578B\u683C\u5F0F\u3002 #BL Error messages @@ -158,7 +158,7 @@ ERR_EXE_PLAN_QUERY_PARSE_FAILED=\u67E5\u8BE2\u89E3\u6790\u5931\u8D25.\u8BF7\u68C MSG_HINT_REFRESH_OBJECTBROWSER = \n\u63D0\u793A: \ \u68C0\u67E5\u8FC7\u7A0B/\u51FD\u6570\u662F\u5426\u88AB\u6765\u81EA\u5176\u4ED6\u7EC8\u7AEF\u4E22\u5F03/\u4FEE\u6539.\ \n\u5C1D\u8BD5\u4E00\u6BB5\u65F6\u95F4\u540E\u5237\u65B0. - + MSG_HINT_GETSOURCE = \n\u63D0\u793A: \u5C1D\u8BD5\u4E00\u6BB5\u65F6\u95F4\u540E\u5237\u65B0. MSG_CLEAR_EDITOR_CONTENT_ON_ERROR = \u5237\u65B0\u7F16\u8F91\u5668\u4E2D\u7684\u5BF9\u8C61\u65F6\u51FA\u9519\uFF1A\u6B63\u5728\u6E05\u9664\u7F16\u8F91\u5668\u4E2D\u5185\u5BB9\u3002 @@ -166,10 +166,10 @@ MSG_CLEAR_EDITOR_CONTENT_ON_ERROR = \u5237\u65B0\u7F16\u8F91\u5668\u4E2D\u7684\ MSG_GUI_OBJECT_MAY_DROPPED = \u5BF9\u8C61\u53EF\u80FD\u672A\u5220\u9664\u3002 MSG_HINT_DATABASE_CRITICAL_ERROR = \u6570\u636E\u5E93\u4F1A\u8BDD\u53D1\u751F\u4E25\u91CD\u9519\u8BEF\uFF0C\u65E0\u6CD5\u7EE7\u7EED\u3002\u8BF7\u91CD\u65B0\u8FDE\u63A5\u670D\u52A1\u5668\u3002 - + ERR_MSG_OUT_OF_MEMORY_ERROR_OCCURRED = \u53D1\u751F\u6EA2\u51FA\u9519\u8BEF.\u8FDE\u63A5\u5C06\u88AB\u5173\u95ED. \ \n\u63D0\u793A: \n \u5C1D\u8BD5\u5728\u914D\u7F6E\u6587\u4EF6\u4E2D\u589E\u52A0\u5806\u5185\u5B58\u5927\u5C0F - + ERR_TITLE_DB_CRITICAL_ERROR = \u6570\u636E\u5E93\u4E25\u91CD\u9519\u8BEF ERR_QUERY_EXECUTION_FAILED = \u66F4\u65B0\u5931\u8D25\uFF0C\u5404\u884C\u5747\u672A\u53D7\u5230\u5F71\u54CD\u3002\u8BF7\u53D6\u6D88\u66F4\u6539\uFF0C\u5237\u65B0\u6570\u636E\uFF0C\u7136\u540E\u91CD\u8BD5\u3002 @@ -300,9 +300,9 @@ EXECDIALOG_VALUE=\u503C EXECDIALOG_HINT= \u63D0\u793A OBJECT_BROWSER_LABEL_MSG=\u672A\u77E5\u7C7B\u578B - + LABEL_VIEW_SOURCE=\u67E5\u770B\u6765\u6E90 - + PL_SOURCE_EDITOR_AT= \u3002\u6240\u5728\u884C\uFF1A# {0} ANALYSE_TABLE_ERROR_MSG=\u5206\u6790\u65F6\u9519\u8BEF @@ -930,7 +930,7 @@ LOCALE_CHANGE_APP_RESTART_TITLE=Data Studio\u5373\u5C06\u91CD\u542F LOCALE_CHANGE_APP_RESTART_MSG=\u6240\u6709\u7684\u8FDE\u63A5\u5C06\u88AB\u5173\u95ED\uFF0C\u6240\u6709\u672A\u4FDD\u5B58\u7684\u6570\u636E\u90FD\u5C06\u4E22\u5931\u3002\u4F60\u60F3\u73B0\u5728\u91CD\u65B0\u542F\u52A8\uFF1F LOCALE_CHANGE_APP_RESTART_NOTE=\u6CE8\u610F\uFF1A LOCALE_CHANGE_APP_RESTART_NOTE_NO= \u5982\u679C\u9009\u62E9\u201C\u5426\u201D\uFF0C\u5373\u4F7FData Studio\u91CD\u542F\u4E5F\u4E0D\u4F1A\u6539\u53D8\u5F53\u524D\u8BED\u8A00\u3002 - + TYPE_ALIGN = \u6309\u7C7B\u522B\u5206\u6790 @@ -978,7 +978,7 @@ TITLE_EXPORT_IN_PROGRESS = \u51FA\u53E3\u8FDB\u5EA6 ERR_WHILE_EXPORTING = \u3002\u5728\u5BFC\u51FA\u67E5\u8BE2\u6570\u636E\u9519\u8BEF\\u9519\u8BEF\uFF1A GUI_NEWDBCONNECTION_OPEN_CONNECTION_WIZARD=\u7528\u6237\u624B\u518C... - + CIPHER_EXPIRE_CONFIRMATION = \u5BC6\u7801\u8FC7\u671F\u4FE1\u606F CIPHER_EXPIRED = \u5BC6\u7801\u5DF2\u8FC7\u671F\u3002\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u66F4\u6539\u5BC6\u7801\u3002 CIPHER_YET_TO_EXPIRE = \u8BE5\u5BC6\u7801\u5C06\u5728 {0} \u5929\u540E\u8FC7\u671F\u3002\u8BF7\u66F4\u6539\u5BC6\u7801\u3002 @@ -1233,7 +1233,7 @@ ERR_SQL_AUTOCOMMIT_TOGGLE_TITLE = \u672A\u80FD\u542F\u7528\u81EA\u52A8\u63D0\u4E ERR_SQL_AUTOCOMMIT_TOGGLE = \u8BF7\u63D0\u4EA4\u6216\u56DE\u6EDA\u5F53\u524D\u4E8B\u52A1\u3002 SQL_AUTOCOMMIT_SAVE_CHANGES_TITLE = \u4FDD\u5B58\u66F4\u6539 SQL_AUTOCOMMIT_SAVE_CHANGES_MSG = \u65B0\u7684\u66F4\u6539\u5C06\u88AB\u4FDD\u5B58\uFF0C\u4F46\u4E0D\u4F1A\u63D0\u4EA4\u3002\n\u8BF7\u5728SQL\u7EC8\u7AEF\u4E2D\u6267\u884CCOMMIT\u547D\u4EE4\u4EE5\u63D0\u4EA4\u66F4\u6539\u3002 - + REMOVE_CONN_TITLE=\u5220\u9664\u8FDE\u63A5\u6587\u4EF6 REMOVE_CONN_MSG=\u60A8\u786E\u5B9A\u8981\u79FB\u9664\u8FDE\u63A5\u6587\u4EF6\u5417\uFF1F SELECT_CONN_TO_REMOVE=\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u5220\u9664\u7684\u8FDE\u63A5\u6587\u4EF6 @@ -1255,7 +1255,7 @@ CONN_DIALOG_SAVE_CIPHER =\u4FDD\u5B58\u5BC6\u7801 CIPHER_DECRYPT_ERROR_MSG=\u52A0\u8F7D\u914D\u7F6E\u6587\u4EF6\u65F6\u51FA\u9519\uFF1A{ 0 }\u3002\u89E3\u5BC6\u8FD9\u4E9B\u914D\u7F6E\u6587\u4EF6\u7684\u5BC6\u7801\u5931\u8D25\uFF0C\u8BF7\u518D\u6B21\u8F93\u5165\u5BC6\u7801\u3002 MSG_DS__NO_DATA_ENCRYPT_DISCLAIMER = 1\uFF09Data Studio\u4E0D\u652F\u6301\u6570\u636E\u52A0\u5BC6\uFF0C\u9ED1\u5BA2\u53EF\u80FD\u8BBF\u95EE\u5230\u654F\u611F\u4FE1\u606F\u3002 \n\u5E94\u5BF9\u63AA\u65BD\uFF1A\u786E\u4FDD\u6587\u4EF6\u4FDD\u5B58\u5728\u5B89\u5168\u7684\u4F4D\u7F6E\u3002 - + MSG_DS__NO_DATA_ENCRYPT_DISCLAIMER_SECONDPART2 =\n2\uFF09Data Studio\u5BF9\u5BFC\u51FA\u7684\u6570\u636E\u6587\u4EF6\u4E0D\u8BBE\u7F6E\u4EFB\u4F55\u6743\u9650\u3002 \n\u5E94\u5BF9\u63AA\u65BD\uFF1A\u7528\u6237\u9700\u81EA\u884C\u8BBE\u7F6E\u6570\u636E\u6587\u4EF6\u6240\u5728\u6587\u4EF6\u5939\u7684\u6743\u9650\u3002 TABLESPACE_CREATION_SUCCEEDED = \u8868\u7A7A\u95F4\u521B\u5EFA\u6210\u529F @@ -1745,7 +1745,7 @@ PARTITION_UI_SELECT=\u8BF7\u9009\u62E9 VERSION=\u7248\u672C PREFERENCE_COMMAND_NEW_NODE_CONNECTION= \u65B0\u5EFA\u8FDE\u63A5 PREFERENCE_SHORTCUT_DISSCONN_FRM_DB =\u65AD\u5F00\u8FDE\u63A5 - + PREFERENCE_SHORTCUT_EXE_DB_OBJECT = \u6267\u884C PREFERENCE_SHORTCUT_REF_SREVER_OBJECT = \u5237\u65B0 @@ -1755,12 +1755,12 @@ PREFERENCE_SHORTCUT_EXECUTION_PLAN_AND_COST=\u89E3\u91CA\u8BA1\u5212\u548C\u6210 PREFERENCE_SHORTCUT_VISUAL_EXPLAIN_PLAN=\u53EF\u89C6\u5316\u89E3\u91CA\u8BA1\u5212 PREFERENCE_SHORTCUT_FORMAT_SQL_STATEMENT = \u683C\u5F0F\u5316 PREFERENCE_SHORTCUT_OPEN_SAVED_FILE =\u6253\u5F00 - + PREFERENCE_SHORTCUT_TO_SAVE_FILE = \u4FDD\u5B58 PREFERENCE_SHORTCUT_TO_SAVE_FILE_AS = \u53E6\u5B58\u4E3A PREFERENCE_SHORTCUT_CANCEL_SQL_STETEMNT = \u7EC8\u6B62\u8BED\u53E5 PREFERENCE_SHORTCUT_CLOSE_ACTIVE_VIEWER = \u5173\u95ED\u5F53\u524D\u7684\u6E90\u67E5\u770B\u5668 - + PREFERENCE_SHORTCUT_COLAPSE_ALL_OBJECTS= \u6298\u53E0\u5DF2\u6253\u5F00\u7684\u5BF9\u8C61 PREFERENCE_SHORTCUT_AUTO_SUGGEST= \u81EA\u52A8\u5EFA\u8BAE @@ -1772,7 +1772,7 @@ PREFERENCE_SHORTCUT_GO_TO_LINE= \u8F6C\u5230\u884C PREFERENCE_SHORTCUT_FORWARD_SEARCH= \u67E5\u627E\u4E0B\u4E00\u5904 PREFERENCE_SHORTCUT_BACKWARD_SEARCH = \u67E5\u627E\u4E0A\u4E00\u5904 PREFERENCE_SHORTCUT_KEY_BINDING_SEARCH_DESC= \u641C\u7D22\u5BF9\u8C61 - + PREFERENCE_RESTART_REQUIRED_MSG=\u5DF2\u66F4\u6539\u9996\u9009\u9879\u3002\u8BF7\u91CD\u542FData Studio\u4EE5\u4F7F\u66F4\u6539\u751F\u6548\u3002 COLUMN_OLD_NAME ={1}.{2}\u8868\u4E2D\u7684{0}\u5217 @@ -1797,21 +1797,21 @@ VACCUME_TABLE_TITLE= \u6E05\u7A7A\u8868 SHOW_USER_MSG_ON_TABLE_UPDATE_TITLE =\u66F4\u65B0\u5217 SHOW_USER_MSG_ON_TABLE_UPDATE_BODY =\u5982\u679C\u4FEE\u6539\u8BE5\u5217\uFF0C{0}\u9875\u7B7E\u4E2D\u7684\u4FE1\u606F\u5C06\u88AB\u5220\u9664\u3002 - + CONSTRAINT_INDEXES_HANDLER_NOT_SUPPORTED_TITLE=\u4E0D\u652F\u6301\u7684\u64CD\u4F5C CONSTRAINT_HANDLER_FOR_COLUMN_ORIENTATION_BODY=\u4E0D\u652F\u6301\u4E3A\u5217\u5B58\u8868\u521B\u5EFA\u7EA6\u675F\u3002 CHANGE_INDEX_FOR_COLUMN_ORIENTATION_TABLE= \u5217\u5B58\u8868\u4E2D\u65E0\u6CD5\u4FEE\u6539\u7D22\u5F15\u7684\u586B\u5145\u56E0\u5B50\u3002\u8BE5\u503C\u5DF2\u88AB\u8BBE\u7F6E\u4E3A\u9ED8\u8BA4\u503C100\u3002 - + DATA_DISTRIBUTION_TAB=\u6570\u636E\u5206\u5E03 INDEXES_TAB=\u7D22\u5F15 CONSTRAINT_TAB=\u7EA6\u675F PARTITION_TAB= \u5206\u533A - + CANCEL_CONNECTION_TITLE=\u53D6\u6D88\u8FDE\u63A5 CANCEL_CONNECTION_BODY=\u786E\u5B9A\u8981\u53D6\u6D88\u8BE5\u6570\u636E\u5E93\u7684\u8FDE\u63A5\u5417\uFF1F USER_CANCEL_MSG =\u5DF2\u6839\u636E\u7528\u6237\u8BF7\u6C42\u53D6\u6D88\u8BE5\u64CD\u4F5C\u3002 - + REFRESH_TABLE_TOOLTIP=\u5237\u65B0 REFRESH_TABLE_TOOLTIP_DISABLED = \u5237\u65B0\u524D\u8BF7\u4FDD\u5B58/\u53D6\u6D88\u66F4\u6539 INSERT_ROW_TOOLTIP=\u6DFB\u52A0 @@ -1831,8 +1831,8 @@ USER_CANCEL_MSG =\u5DF2\u6839\u636E\u7528\u6237\u8BF7\u6C42\u53D6\u6D88\u8BE5\u6 GROUP_COLUMNS_HEADER=\u5217 NO_PHYSICAL_UNQ_KEY_MSG=\u5BF9\u8BE5\u8868\u672A\u5B9A\u4E49\u552F\u4E00\u7269\u7406\u952E\uFF1A DEFINE_UNQ_KEY_MSG =\u8981\u7EE7\u7EED\u64CD\u4F5C\uFF0C\u8BF7\u5B9A\u4E49\u552F\u4E00\u952E\u6216\u9009\u62E9\u6240\u6709\u5217\u3002 - - + + CONNECT_DB_CANCEL_MSG=\u5DF2\u6839\u636E\u7528\u6237\u8BF7\u6C42\u53D6\u6D88\u6570\u636E\u5E93\u8FDE\u63A5\u3002 @@ -1840,12 +1840,12 @@ CONNECT_DB_CANCEL_MSG=\u5DF2\u6839\u636E\u7528\u6237\u8BF7\u6C42\u53D6\u6D88\u65 PASTE_INVALID_SELECTION_DIALOG_MSG=\u590D\u5236\u7684\u5355\u5143\u683C\u6570\u5FC5\u987B\u4E0EData Studio\u4E2D\u9009\u62E9\u7684\u5355\u5143\u683C\u6570\u5339\u914D\u3002 QUERY_EXECUTION_FAILURE_ERROR_TITLE=\u6570\u636E\u4FEE\u6539\u5931\u8D25 QUERY_EXECUTION_FAILURE_ERROR=\u65E0\u6CD5\u66F4\u65B0\u4E00\u884C\u6216\u591A\u884C\u3002\u8BF7\u5C06\u9F20\u6807\u60AC\u505C\u5728\u7EA2\u8272\u884C\u53F7\u5904\uFF0C\u68C0\u67E5\u5177\u4F53\u7684\u9519\u8BEF\u4FE1\u606F\u3002 - + GRID_EDIT_STATUS_INSERTED = \u63D2\u5165\uFF1A GRID_EDIT_STATUS_UPDATED = \u4FEE\u6539\uFF1A GRID_EDIT_STATUS_DELETED = \u5220\u9664\uFF1A EDIT_TABLE_DATA_CONNECTION_LOST_ERR_MSG= \u4FDD\u5B58\u8868\u6570\u636E\u65F6\u53D1\u751F\u9519\u8BEF\uFF0C\u8FDE\u63A5\u53EF\u80FD\u4E22\u5931\u3002\u8BF7\u91CD\u65B0\u8FDE\u63A5\u5E76\u7F16\u8F91\u8868\u6570\u636E\u3002 - + DB_ASSISTANT_LANGUAGE=zh_CN @@ -3168,4 +3168,8 @@ REMARK_RUM_LIME_NUM=\u6807\u8BB0\u6267\u884C\u884C\u6570 REMARK_Coverage=\u6807\u8BB0\u8986\u76D6\u7387 DELETE_Coverage=\u5220\u9664\u5386\u53F2\u8986\u76D6\u7387 DELETE_Coverage_All=\u5220\u9664\u5168\u90E8\u8986\u76D6\u7387 -EXPORT_REPORT=\u5BFC\u51FA\u8986\u76D6\u7387\u62A5\u544A \ No newline at end of file +EXPORT_REPORT=\u5BFC\u51FA\u8986\u76D6\u7387\u62A5\u544A +COVERAGE_HISTORY_TITLE= \u8986\u76D6\u7387\u62A5\u544A - {0} +DELETE_COVERAGE_REPORT_TITLE = \u5220\u9664\u5B58\u50A8\u8FC7\u7A0B +DELETE_SELECTED_COVERAGE_HISTORY_ALERT= \u4F60\u786E\u5B9A\u8981\u5220\u9664\u201C{0}\u201D\u8FDE\u63A5\u914D\u7F6E\u6587\u4EF6\u7684\u9009\u5B9A\u7684\u5B58\u50A8\u8FC7\u7A0B\u67E5\u8BE2\u5386\u53F2\uFF1F +DELETE_ALL_COVERAGE_HISTORY_ALERT=\u4F60\u786E\u5B9A\u8981\u5220\u9664\u201C{0}\u201D\u8FDE\u63A5\u914D\u7F6E\u6587\u4EF6\u7684\u5B58\u50A8\u8FC7\u7A0B\u67E5\u8BE2\u5386\u53F2\uFF1F diff --git a/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java b/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java index 872046dc..2c78ed99 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java +++ b/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2022 Huawei Technologies Co.,Ltd. * * openGauss is licensed under Mulan PSL v2. @@ -6,7 +6,7 @@ * You may obtain a copy of Mulan PSL v2 at: * * http://license.coscl.org.cn/MulanPSL2 - * + * * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. @@ -1027,7 +1027,7 @@ public interface IMessagesConstants extends IMessagesConstantsOne { String YES_OPTION = "YES_OPTION"; String NO_OPTION = "NO_OPTION"; - + String SECURITY_WARNING_OPTION = "SECURITY_WARNING_OPTION"; String ENABLE_OPTION = "ENABLE_OPTION"; @@ -1948,7 +1948,7 @@ public interface IMessagesConstants extends IMessagesConstantsOne { String CODE_TEMPLATE_PREFPAGE_MESSAGE = "CODE_TEMPLATE_PREFPAGE_MESSAGE"; String CODE_TEMPLATE_PREFPAGE_TITLE = "CODE_TEMPLATE_PREFPAGE_TITLE"; - + String CODE_TEMPLATE_DUPLICATE_MSG = "CODE_TEMPLATE_DUPLICATE_MSG"; String CODE_TEMPLATE_PREFPAGE_EDIT = "CODE_TEMPLATE_PREFPAGE_EDIT"; @@ -3016,7 +3016,7 @@ public interface IMessagesConstants extends IMessagesConstantsOne { String CREATE_VIEW_UI_VIEW = "CREATE_VIEW_UI_VIEW"; String CREATE_VIEW_UI_MATERVIEW = "CREATE_VIEW_UI_MATERVIEW"; String CREATE_VIEW_UI_NAME_NOT_EMPTY = "CREATE_VIEW_UI_NAME_NOT_EMPTY"; - + String OID="OID"; String TOTAL_LINE="TOTAL_LINE"; String TOTAL_RUN_LINE_NUM="TOTAL_RUN_LINE_NUM"; @@ -3027,4 +3027,9 @@ public interface IMessagesConstants extends IMessagesConstantsOne { String DELETE_Coverage = "DELETE_Coverage"; String DELETE_Coverage_All="DELETE_Coverage_All"; String EXPORT_REPORT="EXPORT_REPORT"; + + String COVERAGE_HISTORY_TITLE = "COVERAGE_HISTORY_TITLE"; + String DELETE_COVERAGE_REPORT_TITLE = "DELETE_COVERAGE_REPORT_TITLE"; + String DELETE_SELECTED_COVERAGE_HISTORY_ALERT = "DELETE_SELECTED_COVERAGE_HISTORY_ALERT"; + String DELETE_ALL_COVERAGE_HISTORY_ALERT = "DELETE_ALL_COVERAGE_HISTORY_ALERT"; } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java index ce28f6e3..9ee28d68 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java @@ -1,6 +1,7 @@ package org.opengauss.mppdbide.view.ui; import java.util.ArrayList; +import java.util.Arrays; import java.util.LinkedList; import java.util.List; @@ -64,15 +65,45 @@ import org.opengauss.mppdbide.view.vo.CoverageVo; public class CoverageHistory extends Dialog{ - + + private static final int SERIAL_NUMBER_COLUMN = 0; + private static final int SPACE_BETWEEN_RULER = 1; + private static final int SQL_QUERY_COLUMN = 2; + private static final int PIN_STATUS_COLUMN = 1; + private static final int NUMBER_OF_ROWS_COLUMN = 3; + private static final int START_TIME_COLUMN = 4; + private static final int ELAPSED_TIME = 5; + private static final int DATABASE_NAME_COLUMN = 6; + private static final int EXECUTION_STATUS_COLUMN = 7; private Table table = null; private ToolItem saveToolItem = null; private ToolItem deleteToolItem = null; - private ToolItem deleteAllToolItem = null; - - public CoverageHistory(Shell parentShell) { - super(parentShell); - // TODO Auto-generated constructor stub + private ToolItem deleteAllToolItem = null; + private SourceViewer sourceViewer = null; + private CompositeRuler fCompositeRuler; + private SQLSyntax syntax; + + private String terminalParentId = null; + private String profileName = "192.168.31.120"; + private String profileId; + private int displaySqlCount; + private ISqlHistoryManager manager; + + + // public CoverageHistory(Shell parent1, String profileName, String profileId, String uiID) { + // super(parent1); + // this.profileName = profileName; + // this.profileId = profileId; + // this.terminalParentId = uiID; + // displaySqlCount = BLPreferenceManager.getInstance().getBLPreference().getSQLHistorySize(); + // } + + public CoverageHistory(Shell parent1) { + super(parent1); + // this.profileName = profileName; + // this.profileId = profileId; + // this.terminalParentId = uiID; + // displaySqlCount = BLPreferenceManager.getInstance().getBLPreference().getSQLHistorySize(); } /** @@ -132,142 +163,273 @@ public class CoverageHistory extends Dialog{ remarkCoverage.pack(); time.pack(); - //createSourceViewer(currentComposite); + createSourceViewer(currentComposite); mainSc.setExpandHorizontal(true); mainSc.setExpandVertical(true); mainSc.setMinSize(currentComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT)); mainSc.pack(); - TableItem item = new TableItem(table,SWT.NONE); - CoverageVo vo = new CoverageVo(); - item.setText(new String[]{ - String.valueOf(1), - String.valueOf(vo.cid), - String.valueOf(vo.totalLineNum), - String.valueOf(vo.coverageLineNum), - String.valueOf(vo.totalPercent), - String.valueOf(vo.remarkLineNum), - String.valueOf(vo.remarkPercent), - String.valueOf(vo.timeUse) - }); -// item.dispose(); return parent; } - + + protected void configureShell(Shell shell) { + super.configureShell(shell); + shell.setText(MessageConfigLoader.getProperty(IMessagesConstants.COVERAGE_HISTORY_TITLE, profileName)); + shell.setImage(IconUtility.getIconImage(IiconPath.SQL_HISTORY1, this.getClass())); + shell.setSize(1000, 750); + } + + private void createSourceViewer(Composite parent) { + + sourceViewer = new SourceViewer(parent, getCompositeRuler(), null, false, + SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.WRAP | SWT.BORDER); + sourceViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); + sourceViewer.configure(new SQLSourceViewerConfig(getSyntax())); + setDocument(new Document("")); + sourceViewer.setEditable(false); + // setDecoration(); + SQLDocumentPartitioner.connectDocument(sourceViewer.getDocument(), 0); + table.addSelectionListener(new SelectionListener() { + @Override + public void widgetSelected(SelectionEvent event) { + TableItem[] items = table.getSelection(); + String query = items[0].getText(SQL_QUERY_COLUMN); + sourceViewer.getDocument().set(query); + } + + @Override + public void widgetDefaultSelected(SelectionEvent event) { + + } + }); + + table.addMouseListener(new MouseListener() { + @Override + public void mouseDoubleClick(MouseEvent event) { + loadQuerytoSQLTerminal(); + } + + @Override + public void mouseDown(MouseEvent event) { + + } + + @Override + public void mouseUp(MouseEvent event) { + + } + + }); + + displaySqlHistoryObject(); + } + + public void displaySqlHistoryObject() { + this.manager = SQLHistoryFactory.getInstance(); + List items = new ArrayList(10); + // try { + // items = this.manager.getHistoryContent(profileId, displaySqlCount); + // + // } catch (MPPDBIDEException exception) { + // + // MPPDBIDEDialogs.generateOKMessageDialog(MESSAGEDIALOGTYPE.WARNING, true, + // MessageConfigLoader.getProperty(IMessagesConstants.HISTORY_LOADING_IN_PROGRESS_TILTLE), + // exception.getMessage()); + // } + + //todo + CoverageVo vo = new CoverageVo(11,100, 101, Arrays.asList(1,2,4), "51%", 30, Arrays.asList(2,22,3), Arrays.asList(2,22), "20%", 2506); + CoverageVo vo1 = new CoverageVo(12,100, 102, Arrays.asList(1,2,4), "51%", 30, Arrays.asList(2,22,3), Arrays.asList(2,22), "20%", 2506); + items.add(vo); + items.add(vo1); + setInput(items); + } + + public void setInput(List items) { + int index = 1; + for (CoverageVo item : items) { + TableItem row = new TableItem(table, SWT.NONE); + setColValues(row, item, index); + index++; + row.setData(item); + } + if (table != null) { + if (table.getItems().length > 0) { + enablebuttons(true); + } + } + } + + private void setColValues(TableItem row, CoverageVo item, Integer count) { + row.setText(SERIAL_NUMBER_COLUMN, count.toString()); + row.setText(PIN_STATUS_COLUMN, String.valueOf(item.totalLineNum)); + row.setText(SQL_QUERY_COLUMN, String.valueOf(item.coverageLineNum)); + row.setText(NUMBER_OF_ROWS_COLUMN, String.valueOf(item.totalPercent)); + row.setText(START_TIME_COLUMN, String.valueOf(item.remarkLineNum)); + row.setText(ELAPSED_TIME, String.valueOf(item.remarkConverageLines)); + row.setText(DATABASE_NAME_COLUMN, String.valueOf(item.remarkPercent)); + row.setText(EXECUTION_STATUS_COLUMN, String.valueOf(item.timeUse)); + } + + private void loadQuerytoSQLTerminal() { + String query = null; + StringBuilder sb = new StringBuilder(MPPDBIDEConstants.STRING_BUILDER_CAPACITY); + SQLTerminal terminal = UIElement.getInstance().getTerminal(terminalParentId); + TableItem[] items = table.getSelection(); + for (TableItem t : items) { + query = t.getText(SQL_QUERY_COLUMN); + sb.append(query); + sb.append(EnvirnmentVariableValidator.validateAndGetLineSeperator()); + } + + if (null != terminal) { + terminal.getTerminalCore().setSelectedQuery(sb.toString()); + terminal.resetSQLTerminalButton(); + terminal.resetAutoCommitButton(); + terminal.setModified(true); + terminal.setModifiedAfterCreate(true); + } + } + + public SQLSyntax getSyntax() { + return syntax; + } + + public void setSyntax(SQLSyntax syntax) { + this.syntax = syntax; + } + + public CompositeRuler getCompositeRuler() { + fCompositeRuler = new CompositeRuler(SPACE_BETWEEN_RULER); + fCompositeRuler.addDecorator(1, new LineNumberRulerColumn()); + + return fCompositeRuler; + } + + public void setDocument(IDocument document) { + sourceViewer.setDocument(document); + } + private void createToolbar(final Composite parent) { - final ToolBar bar = new ToolBar(parent, SWT.FLAT | SWT.FOCUSED); + final ToolBar bar = new ToolBar(parent, SWT.FLAT | SWT.FOCUSED); + + // final Image loadsqlIcon = IconUtility.getIconImage(IiconPath.LOAD_QUERY_SQL, getClass()); + final Image sqlcloseIcon = IconUtility.getIconImage(IiconPath.LOAD_QUERY_SQL_CLOSE, getClass()); + final Image deleteIcon = IconUtility.getIconImage(IiconPath.DELETE_SELECTED, getClass()); - final Image loadsqlIcon = IconUtility.getIconImage(IiconPath.LOAD_QUERY_SQL, getClass()); - final Image sqlcloseIcon = IconUtility.getIconImage(IiconPath.LOAD_QUERY_SQL_CLOSE, getClass()); - final Image deleteIcon = IconUtility.getIconImage(IiconPath.DELETE_SELECTED, getClass()); + final Image deleteallIcon = IconUtility.getIconImage(IiconPath.DELETE_ALL, getClass()); - final Image deleteallIcon = IconUtility.getIconImage(IiconPath.DELETE_ALL, getClass()); + // final Image pinIcon = IconUtility.getIconImage(IiconPath.PIN_SQL, getClass()); - final Image pinIcon = IconUtility.getIconImage(IiconPath.PIN_SQL, getClass()); + // final Image unpinIcon = IconUtility.getIconImage(IiconPath.UNPIN_SQL, getClass()); - final Image unpinIcon = IconUtility.getIconImage(IiconPath.UNPIN_SQL, getClass()); - - saveToolItem = new ToolItem(bar, SWT.PUSH); - saveToolItem.setEnabled(false); - saveToolItem.setImage(sqlcloseIcon); - saveToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.EXPORT_REPORT)); - //saveToolItem.addSelectionListener(new LoadsqlclosehistoryClass()); + saveToolItem = new ToolItem(bar, SWT.PUSH); + saveToolItem.setEnabled(false); + saveToolItem.setImage(sqlcloseIcon); + saveToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.EXPORT_REPORT)); + //saveToolItem.addSelectionListener(new LoadsqlclosehistoryClass()); - - deleteToolItem = new ToolItem(bar, SWT.PUSH); - deleteToolItem.setEnabled(false); - deleteToolItem.setImage(deleteIcon); - deleteToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.DELETE_Coverage)); - //deleteToolItem.addSelectionListener(new DeletesqlClass()); - deleteAllToolItem = new ToolItem(bar, SWT.PUSH); - deleteAllToolItem.setEnabled(true); - deleteAllToolItem.setImage(deleteallIcon); - deleteAllToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.DELETE_Coverage_All)); - deleteAllToolItem.addSelectionListener(new DeleteAllsqlClass()); - } + deleteToolItem = new ToolItem(bar, SWT.PUSH); + deleteToolItem.setEnabled(false); + deleteToolItem.setImage(deleteIcon); + deleteToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.DELETE_Coverage)); + deleteToolItem.addSelectionListener(new DeletesqlClass()); + + deleteAllToolItem = new ToolItem(bar, SWT.PUSH); + deleteAllToolItem.setEnabled(false); + deleteAllToolItem.setImage(deleteallIcon); + deleteAllToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.DELETE_Coverage_All)); + deleteAllToolItem.addSelectionListener(new DeleteAllsqlClass()); + } + + private final class DeletesqlClass implements SelectionListener { + + @Override + public void widgetSelected(SelectionEvent event) { + TableItem[] tableItems = table.getSelection(); + if (tableItems.length == 0) { + MPPDBIDEDialogs.generateOKMessageDialog(MESSAGEDIALOGTYPE.INFORMATION, true, + MessageConfigLoader.getProperty(IMessagesConstants.DELETE_COVERAGE_REPORT_TITLE), + MessageConfigLoader.getProperty(IMessagesConstants.SELECT_QUERY_TO_DELETE)); + return; + } + int type = MPPDBIDEDialogs.generateOKCancelMessageDialog(MESSAGEDIALOGTYPE.WARNING, true, + MessageConfigLoader.getProperty(IMessagesConstants.DELETE_COVERAGE_REPORT_TITLE), + MessageConfigLoader.getProperty(IMessagesConstants.DELETE_SELECTED_COVERAGE_HISTORY_ALERT, profileName, + MPPDBIDEConstants.LINE_SEPARATOR)); + deleteSQLHistory(type, tableItems); + resetSerialNumber(); + } + + private void displayInfoMessage() { + MPPDBIDEDialogs.generateOKMessageDialog(MESSAGEDIALOGTYPE.INFORMATION, true, + MessageConfigLoader.getProperty(IMessagesConstants.DELETE_SQL), + MessageConfigLoader.getProperty(IMessagesConstants.PINNED_DELETION)); + } + + @Override + public void widgetDefaultSelected(SelectionEvent event) { + + } + } private final class DeleteAllsqlClass implements SelectionListener { - @Override - public void widgetSelected(SelectionEvent event) { - boolean isPinned = false; - boolean isUnpinned = false; - TableItem[] items = table.getItems(); - - for (TableItem item : items) { - if (((SQLHistoryItem) item.getData()).isPinned()) { - isPinned = true; - } else { - isUnpinned = true; - } - } - - if (isPinned && !isUnpinned) { - MPPDBIDEDialogs.generateOKMessageDialog(MESSAGEDIALOGTYPE.INFORMATION, true, - MessageConfigLoader.getProperty(IMessagesConstants.DELETE_SQL), - MessageConfigLoader.getProperty(IMessagesConstants.PINNED_DELETION)); - } else { - int type = MPPDBIDEDialogs.generateOKCancelMessageDialog(MESSAGEDIALOGTYPE.WARNING, true, - MessageConfigLoader.getProperty(IMessagesConstants.DELETE_SQL), - MessageConfigLoader.getProperty(IMessagesConstants.DELETE_ALL_HISTORY_ALERT, "192.168.31.120", - MPPDBIDEConstants.LINE_SEPARATOR)); - - deleteSQLHistory(type, items); - - } - resetSerialNumber(); - - } - - @Override - public void widgetDefaultSelected(SelectionEvent event) { - - } - } - + @Override + public void widgetSelected(SelectionEvent event) { + TableItem[] items = table.getItems(); + int type = MPPDBIDEDialogs.generateOKCancelMessageDialog(MESSAGEDIALOGTYPE.WARNING, true, + MessageConfigLoader.getProperty(IMessagesConstants.DELETE_COVERAGE_REPORT_TITLE), + MessageConfigLoader.getProperty(IMessagesConstants.DELETE_ALL_COVERAGE_HISTORY_ALERT, profileName, + MPPDBIDEConstants.LINE_SEPARATOR)); + deleteSQLHistory(type, items); + resetSerialNumber(); + } + + @Override + public void widgetDefaultSelected(SelectionEvent event) { + + } + } + private void deleteSQLHistory(int type, TableItem[] items) { -// this.manager = SQLHistoryFactory.getInstance(); - if (type == 0) { - List historyItems = new LinkedList(); - int counter = 0; - for (TableItem item : items) { - if (!((SQLHistoryItem) item.getData()).isPinned()) { - historyItems.add((SQLHistoryItem) item.getData()); - item.dispose(); - counter++; - } - } - if (counter != 0) { -// manager.deleteHistoryItems(historyItems); - } -// sourceViewer.getDocument().set(""); - } - } - - private void resetSerialNumber() { - if (table != null) { - TableItem[] items = table.getItems(); - int size = items.length; - if (size <= 0) { - enablebuttons(false); - return; - } - - for (int indx = 0; indx < size; indx++) { - items[indx].setText(0, Integer.toString(indx + 1)); - } - } - } - - protected void enablebuttons(boolean value) { -// openToolItem.setEnabled(value); - saveToolItem.setEnabled(value); - deleteAllToolItem.setEnabled(value); - deleteToolItem.setEnabled(value); -// pinToolItem.setEnabled(value); -// unpinToolItem.setEnabled(value); - - } +// this.manager = SQLHistoryFactory.getInstance(); + if (type == 0) { + List historyItems = new LinkedList(); + int counter = 0; + for (TableItem item : items) { + historyItems.add((CoverageVo) item.getData()); + item.dispose(); + counter++; + } + if (counter != 0) { + //todo xjp +// manager.deleteHistoryItems(historyItems); + } + sourceViewer.getDocument().set(""); + } + } + + private void resetSerialNumber() { + if (table != null) { + TableItem[] items = table.getItems(); + int size = items.length; + if (size <= 0) { + enablebuttons(false); + return; + } + + for (int indx = 0; indx < size; indx++) { + items[indx].setText(0, Integer.toString(indx + 1)); + } + } + } + + protected void enablebuttons(boolean value) { + saveToolItem.setEnabled(value); + deleteAllToolItem.setEnabled(value); + deleteToolItem.setEnabled(value); + } } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageVo.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageVo.java index 24db8883..bdf3677d 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageVo.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageVo.java @@ -2,28 +2,61 @@ package org.opengauss.mppdbide.view.vo; import java.util.List; +import org.apache.commons.collections4.CollectionUtils; import org.opengauss.mppdbide.debuger.annotation.DumpFiled; public class CoverageVo { @DumpFiled - public long cid =1; + public long cid; @DumpFiled - public int totalLineNum =2; + public int totalLineNum; @DumpFiled - public int coverageLineNum=3; + public int coverageLineNum; // @DumpFiled public List coverageLines; @DumpFiled - public String totalPercent="4"; + public String totalPercent; @DumpFiled - public int remarkLineNum=5; + public int remarkLineNum; // @DumpFiled public List remarkLines; // @DumpFiled public List remarkConverageLines; @DumpFiled - public String remarkPercent="6"; + public String remarkPercent; @DumpFiled - public long timeUse=100; + public long timeUse; + + public CoverageVo() { + + } + + public CoverageVo(long cid, + int totalLineNum, + int coverageLineNum, + List coverageLines, + String totalPercent, + int remarkLineNum, + List remarkLines, + List remarkConverageLines, + String remarkPercent, + long timeUse) { + this.cid = cid; + this.totalLineNum = totalLineNum; + this.coverageLineNum = coverageLineNum; + if (CollectionUtils.isNotEmpty(coverageLines)) { + this.coverageLines = coverageLines; + } + this.totalPercent = totalPercent; + this.remarkLineNum = remarkLineNum; + if (CollectionUtils.isNotEmpty(remarkLines)) { + this.remarkLines = remarkLines; + } + if (CollectionUtils.isNotEmpty(remarkConverageLines)) { + this.remarkConverageLines = remarkConverageLines; + } + this.remarkPercent = remarkPercent; + this.timeUse = timeUse; + } } -- Gitee From 7e74e933cef908235d70c3001ec711f241326617 Mon Sep 17 00:00:00 2001 From: xjp Date: Mon, 18 Jul 2022 14:43:56 +0800 Subject: [PATCH 019/125] export --- .../src/messages.properties | 2 + .../src/messages_zh_CN.properties | 2 + .../mppdbide/utils/IMessagesConstants.java | 3 + .../mppdbide/view/ui/CoverageHistory.java | 71 +++++++++++++++++-- .../mppdbide/view/vo/CoverageVo.java | 6 +- 5 files changed, 77 insertions(+), 7 deletions(-) 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 539b8dd6..95c6ed7f 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages.properties +++ b/code/datastudio/src/org.opengauss.mppdbide.utils/src/messages.properties @@ -3191,6 +3191,8 @@ REMARK_Coverage=REMARK_Coverage DELETE_Coverage=DELETE_Coverage DELETE_Coverage_All=DELETE_Coverage_All EXPORT_REPORT=EXPORT_REPORT +SURE_EXPORT_REPORT=Are you sure you want to export coverage reports? +COVERAGE_REPORT_NOT_EXIST=Coverage report does not exist COVERAGE_HISTORY_TITLE= Coverage_Report DELETE_COVERAGE_REPORT_TITLE = Delete Stored Procedure DELETE_SELECTED_COVERAGE_HISTORY_ALERT= Are you sure you want to delete the selected stored procedure query history for the {0} connection profile? 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 be1f9cb3..bdc61dd4 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 @@ -3169,6 +3169,8 @@ REMARK_Coverage=\u6807\u8BB0\u8986\u76D6\u7387 DELETE_Coverage=\u5220\u9664\u5386\u53F2\u8986\u76D6\u7387 DELETE_Coverage_All=\u5220\u9664\u5168\u90E8\u8986\u76D6\u7387 EXPORT_REPORT=\u5BFC\u51FA\u8986\u76D6\u7387\u62A5\u544A +SURE_EXPORT_REPORT=\u786E\u5B9A\u5BFC\u51FA\u8986\u76D6\u7387\u62A5\u544A\u5417? +COVERAGE_REPORT_NOT_EXIST=\u8986\u76D6\u7387\u62A5\u544A\u4E0D\u5B58\u5728 COVERAGE_HISTORY_TITLE= \u8986\u76D6\u7387\u62A5\u544A - {0} DELETE_COVERAGE_REPORT_TITLE = \u5220\u9664\u5B58\u50A8\u8FC7\u7A0B DELETE_SELECTED_COVERAGE_HISTORY_ALERT= \u4F60\u786E\u5B9A\u8981\u5220\u9664\u201C{0}\u201D\u8FDE\u63A5\u914D\u7F6E\u6587\u4EF6\u7684\u9009\u5B9A\u7684\u5B58\u50A8\u8FC7\u7A0B\u67E5\u8BE2\u5386\u53F2\uFF1F diff --git a/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java b/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java index 2c78ed99..be197219 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java +++ b/code/datastudio/src/org.opengauss.mppdbide.utils/src/org/opengauss/mppdbide/utils/IMessagesConstants.java @@ -3032,4 +3032,7 @@ public interface IMessagesConstants extends IMessagesConstantsOne { String DELETE_COVERAGE_REPORT_TITLE = "DELETE_COVERAGE_REPORT_TITLE"; String DELETE_SELECTED_COVERAGE_HISTORY_ALERT = "DELETE_SELECTED_COVERAGE_HISTORY_ALERT"; String DELETE_ALL_COVERAGE_HISTORY_ALERT = "DELETE_ALL_COVERAGE_HISTORY_ALERT"; + String SURE_EXPORT_REPORT = "SURE_EXPORT_REPORT"; + String COVERAGE_REPORT_NOT_EXIST = "COVERAGE_REPORT_NOT_EXIST"; + } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java index 9ee28d68..b758675b 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java @@ -1,9 +1,15 @@ package org.opengauss.mppdbide.view.ui; +import java.math.BigDecimal; +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Arrays; +import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; import org.eclipse.core.commands.Command; import org.eclipse.core.commands.ParameterizedCommand; @@ -55,6 +61,7 @@ import org.opengauss.mppdbide.view.core.sourceeditor.SQLDocumentPartitioner; import org.opengauss.mppdbide.view.core.sourceeditor.SQLSourceViewerConfig; import org.opengauss.mppdbide.view.core.sourceeditor.SQLSourceViewerDecorationSupport; import org.opengauss.mppdbide.view.ui.terminal.SQLTerminal; +import org.opengauss.mppdbide.view.utils.ExportUtil; import org.opengauss.mppdbide.view.utils.IUserPreference; import org.opengauss.mppdbide.view.utils.UIElement; import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs; @@ -238,8 +245,8 @@ public class CoverageHistory extends Dialog{ // } //todo - CoverageVo vo = new CoverageVo(11,100, 101, Arrays.asList(1,2,4), "51%", 30, Arrays.asList(2,22,3), Arrays.asList(2,22), "20%", 2506); - CoverageVo vo1 = new CoverageVo(12,100, 102, Arrays.asList(1,2,4), "51%", 30, Arrays.asList(2,22,3), Arrays.asList(2,22), "20%", 2506); + CoverageVo vo = new CoverageVo(11,300, 40, Arrays.asList(1,2,4), "51%", 30, Arrays.asList(2,22,3), 10, Arrays.asList(2,22), "20%", 2506); + CoverageVo vo1 = new CoverageVo(12,151, 5, Arrays.asList(1,2,4), "51%", 30, Arrays.asList(2,22,3), 20, Arrays.asList(2,22), "20%", 2506); items.add(vo); items.add(vo1); setInput(items); @@ -266,7 +273,7 @@ public class CoverageHistory extends Dialog{ row.setText(SQL_QUERY_COLUMN, String.valueOf(item.coverageLineNum)); row.setText(NUMBER_OF_ROWS_COLUMN, String.valueOf(item.totalPercent)); row.setText(START_TIME_COLUMN, String.valueOf(item.remarkLineNum)); - row.setText(ELAPSED_TIME, String.valueOf(item.remarkConverageLines)); + row.setText(ELAPSED_TIME, String.valueOf(item.remarkCoverageLineNum)); row.setText(DATABASE_NAME_COLUMN, String.valueOf(item.remarkPercent)); row.setText(EXECUTION_STATUS_COLUMN, String.valueOf(item.timeUse)); } @@ -328,8 +335,7 @@ public class CoverageHistory extends Dialog{ saveToolItem.setEnabled(false); saveToolItem.setImage(sqlcloseIcon); saveToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.EXPORT_REPORT)); - //saveToolItem.addSelectionListener(new LoadsqlclosehistoryClass()); - + saveToolItem.addSelectionListener(new ExportCoverageReport()); deleteToolItem = new ToolItem(bar, SWT.PUSH); deleteToolItem.setEnabled(false); @@ -343,7 +349,7 @@ public class CoverageHistory extends Dialog{ deleteAllToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.DELETE_Coverage_All)); deleteAllToolItem.addSelectionListener(new DeleteAllsqlClass()); } - + private final class DeletesqlClass implements SelectionListener { @Override @@ -375,6 +381,59 @@ public class CoverageHistory extends Dialog{ } } + private final class ExportCoverageReport implements SelectionListener { + + @Override + public void widgetSelected(SelectionEvent event) { + TableItem[] items = table.getItems(); + if (items.length == 0) { + MPPDBIDEDialogs.generateOKMessageDialog(MESSAGEDIALOGTYPE.INFORMATION, true, + MessageConfigLoader.getProperty(IMessagesConstants.EXPORT_REPORT), + MessageConfigLoader.getProperty(IMessagesConstants.COVERAGE_REPORT_NOT_EXIST)); + return; + } + int type = MPPDBIDEDialogs.generateOKCancelMessageDialog(MESSAGEDIALOGTYPE.WARNING, true, + MessageConfigLoader.getProperty(IMessagesConstants.EXPORT_REPORT), + MessageConfigLoader.getProperty(IMessagesConstants.SURE_EXPORT_REPORT)); + if (type == 0) { + List list = getData(items); + //todo xjp 控制å°è¯­å¥å±•示 + Map map = new LinkedHashMap(); + map.put(false, "create table"); + map.put(true, "test values(id int)"); + exportReport(map,list); + } + } + + @Override + public void widgetDefaultSelected(SelectionEvent event) { + + } + } + + private List getData(TableItem[] items) { + CoverageVo coverageVo = new CoverageVo(); + for (TableItem item : items) { + CoverageVo vo = (CoverageVo) item.getData(); + coverageVo.totalLineNum += vo.totalLineNum; + coverageVo.coverageLineNum += vo.coverageLineNum; + coverageVo.remarkLineNum += vo.remarkLineNum; + coverageVo.remarkCoverageLineNum += vo.remarkCoverageLineNum; + coverageVo.timeUse += vo.timeUse; + } + String totalPercent = String.format("%.2f", ((double)coverageVo.coverageLineNum / (double)coverageVo.totalLineNum)); + coverageVo.totalPercent = Double.parseDouble(totalPercent) * 100 + "%"; + String remarkPercent = String.format("%.2f", ((double)coverageVo.remarkCoverageLineNum / (double)coverageVo.remarkLineNum)); + coverageVo.remarkPercent = Double.parseDouble(remarkPercent) * 100 + "%"; + return Stream.of(String.valueOf(coverageVo.totalLineNum),String.valueOf(coverageVo.coverageLineNum),coverageVo.totalPercent, + String.valueOf(coverageVo.remarkLineNum),String.valueOf(coverageVo.remarkCoverageLineNum), + coverageVo.remarkPercent,String.valueOf(coverageVo.timeUse)).collect(Collectors.toList()); + } + + private void exportReport(LinkedHashMap executeSql, List list) { + ExportUtil.exportReport(executeSql, list); + } + private final class DeleteAllsqlClass implements SelectionListener { @Override diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageVo.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageVo.java index bdf3677d..710d3866 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageVo.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageVo.java @@ -21,6 +21,8 @@ public class CoverageVo { public int remarkLineNum; // @DumpFiled public List remarkLines; + @DumpFiled + public int remarkCoverageLineNum; // @DumpFiled public List remarkConverageLines; @DumpFiled @@ -29,7 +31,7 @@ public class CoverageVo { public long timeUse; public CoverageVo() { - + } public CoverageVo(long cid, @@ -39,6 +41,7 @@ public class CoverageVo { String totalPercent, int remarkLineNum, List remarkLines, + int remarkCoverageLineNum, List remarkConverageLines, String remarkPercent, long timeUse) { @@ -50,6 +53,7 @@ public class CoverageVo { } this.totalPercent = totalPercent; this.remarkLineNum = remarkLineNum; + this.remarkCoverageLineNum = remarkCoverageLineNum; if (CollectionUtils.isNotEmpty(remarkLines)) { this.remarkLines = remarkLines; } -- Gitee From 2ff360516d3a757b73ea12f334c1aa8ea5c4837f Mon Sep 17 00:00:00 2001 From: xjp Date: Mon, 18 Jul 2022 14:46:08 +0800 Subject: [PATCH 020/125] export --- .../src/org/opengauss/mppdbide/view/ui/CoverageHistory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java index b758675b..2bd091eb 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java @@ -398,7 +398,7 @@ public class CoverageHistory extends Dialog{ if (type == 0) { List list = getData(items); //todo xjp 控制å°è¯­å¥å±•示 - Map map = new LinkedHashMap(); + LinkedHashMap map = new LinkedHashMap(); map.put(false, "create table"); map.put(true, "test values(id int)"); exportReport(map,list); -- Gitee From 38a96d9d62559be10625dbedb7e6695f5c131863 Mon Sep 17 00:00:00 2001 From: xjp Date: Mon, 18 Jul 2022 16:15:13 +0800 Subject: [PATCH 021/125] export --- .../mppdbide/view/ui/CoverageHistory.java | 6 +-- .../mppdbide/view/utils/ExportUtil.java | 53 +++++++++++++++++++ 2 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java index 2bd091eb..e53ea7eb 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java @@ -401,7 +401,7 @@ public class CoverageHistory extends Dialog{ LinkedHashMap map = new LinkedHashMap(); map.put(false, "create table"); map.put(true, "test values(id int)"); - exportReport(map,list); + ExportUtil.exportReport(map, list); } } @@ -429,10 +429,6 @@ public class CoverageHistory extends Dialog{ String.valueOf(coverageVo.remarkLineNum),String.valueOf(coverageVo.remarkCoverageLineNum), coverageVo.remarkPercent,String.valueOf(coverageVo.timeUse)).collect(Collectors.toList()); } - - private void exportReport(LinkedHashMap executeSql, List list) { - ExportUtil.exportReport(executeSql, list); - } private final class DeleteAllsqlClass implements SelectionListener { diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java new file mode 100644 index 00000000..2dc76f0b --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java @@ -0,0 +1,53 @@ +package org.opengauss.mppdbide.view.utils; + +import java.util.LinkedHashMap; +import java.util.List; + +public final class ExportUtil { + + private ExportUtil() { + + } + + public static void exportReport(LinkedHashMap executeSql, List list) { + try { +// Document parse = Jsoup.parse(new File("D:\\VsCodeProjects\\openGauss\\exportTemplate.html"), "utf-8"); +// Element data = parse.getElementById("data"); +// list.forEach(item -> { +// Element td = data.appendElement("td"); +// td.text(item); +// }); +// Element excuteSql = parse.getElementById("executeSql"); +// executeSql.forEach((k,v) -> { +// Element tr = excuteSql.appendElement("tr"); +// Element td = tr.appendElement("td"); +// td.text(v); +// if (k) { +// td.addClass("bac"); +// } else { +// td.addClass("bac_nor"); +// } +// }); +// +// String s = parse.outerHtml(); +//// FileUtil.writeUtf8String(s, "D:\\VsCodeProjects\\openGauss\\aa.html"); +// loadStr("D:\\VsCodeProjects\\openGauss\\aa.html", s); + } catch (Exception e) { + e.printStackTrace(); + } + } + +// private static void loadStr(String path,String text_description) throws Exception{ +// //è¦å†™å…¥æ–‡ä»¶æ‰€ä»¥åˆ›å»ºBufferedWriter +// BufferedWriter bw = new BufferedWriter(new FileWriter(new File(path))); +// //想ç€åŒ¹é…到多个空格就进行一个æ¢è¡Œ ä¸çŸ¥é“能ä¸èƒ½è¡Œé€š ä¸å–œæ¬¢å¿½ç•¥ +// String[] split = text_description.split(" "); +// for (String str : split) { +// bw.write(str+"\r\n"); +// } +// //å…³é—­æµ +// if(bw!=null){ +// bw.close(); +// } +// } +} -- Gitee From e2da59c86fe0916449c1330c3160106286be035b Mon Sep 17 00:00:00 2001 From: xjp Date: Tue, 19 Jul 2022 11:28:35 +0800 Subject: [PATCH 022/125] add jsoup.jar --- 3rd_src/pom.xml | 5 +++++ code/datastudio/src/copyExternalsToBuild.bat | 1 + code/datastudio/src/copyExternalsToBuild.sh | 1 + 3 files changed, 7 insertions(+) diff --git a/3rd_src/pom.xml b/3rd_src/pom.xml index 022739ae..e49474a3 100644 --- a/3rd_src/pom.xml +++ b/3rd_src/pom.xml @@ -18,6 +18,11 @@ win + + org.jsoup + jsoup + 1.14.3 + org.antlr antlr4-runtime diff --git a/code/datastudio/src/copyExternalsToBuild.bat b/code/datastudio/src/copyExternalsToBuild.bat index b6b8bc23..0be7b37b 100644 --- a/code/datastudio/src/copyExternalsToBuild.bat +++ b/code/datastudio/src/copyExternalsToBuild.bat @@ -48,6 +48,7 @@ xcopy %SOURCE%\3rd_src\target\dependency\guava-30.1.1-jre.jar %DEST%\org.opengau xcopy %SOURCE%\3rd_src\target\dependency\javafx-base-18-ea+2-win.jar %DEST%\org.opengauss.mppdbide.view\. /Y /S /E xcopy %SOURCE%\3rd_src\target\dependency\javafx-controls-18-ea+2-win.jar %DEST%\org.opengauss.mppdbide.view\. /Y /S /E xcopy %SOURCE%\3rd_src\target\dependency\javafx-graphics-18-ea+2-win.jar %DEST%\org.opengauss.mppdbide.view\. /Y /S /E +xcopy %SOURCE%\3rd_src\target\dependency\jsoup-1.14.3.jar %DEST%\org.opengauss.mppdbide.view\. /Y /S /E xcopy %SOURCE%\platform\Gauss200\gs_jdbc\gsjdbc4.jar %DEST%\org.opengauss.dbdriver.jdbc.gauss\. /Y /S /E rmdir /Q /S %TEST%\org.opengauss.mppdbide.adapter.test.fragment\lib diff --git a/code/datastudio/src/copyExternalsToBuild.sh b/code/datastudio/src/copyExternalsToBuild.sh index 9c2d20c8..b23aead6 100644 --- a/code/datastudio/src/copyExternalsToBuild.sh +++ b/code/datastudio/src/copyExternalsToBuild.sh @@ -49,6 +49,7 @@ cp $SOURCE/3rd_src/target/dependency/guava-30.1.1-jre.jar $DEST/org.opengauss.mp cp $SOURCE/3rd_src/target/dependency/javafx-base-18-ea+2-win.jar $DEST/org.opengauss.mppdbide.view/. cp $SOURCE/3rd_src/target/dependency/javafx-controls-18-ea+2-win.jar $DEST/org.opengauss.mppdbide.view/. cp $SOURCE/3rd_src/target/dependency/javafx-graphics-18-ea+2-win.jar $DEST/org.opengauss.mppdbide.view/. +cp $SOURCE/3rd_src/target/dependency/jsoup-1.14.3.jar $DEST/org.opengauss.mppdbide.view/. cp $SOURCE/platform/Gauss200/gs_jdbc/gsjdbc4.jar $DEST/org.opengauss.dbdriver.jdbc.gauss/. rm -rf $TEST/org.opengauss.mppdbide.adapter.test.fragment/lib -- Gitee From 57921ee006959a0e3ea16d9347ee288ee7daf27e Mon Sep 17 00:00:00 2001 From: xjp Date: Tue, 19 Jul 2022 11:58:33 +0800 Subject: [PATCH 023/125] update --- .../META-INF/MANIFEST.MF | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/META-INF/MANIFEST.MF b/code/datastudio/src/org.opengauss.mppdbide.view/META-INF/MANIFEST.MF index b8eb0ac8..2c4b6673 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/META-INF/MANIFEST.MF +++ b/code/datastudio/src/org.opengauss.mppdbide.view/META-INF/MANIFEST.MF @@ -71,12 +71,20 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="3.15.300", openjfx.graphics.win32_64;bundle-version="17.0.2", openjfx.swing;bundle-version="17.0.2", openjfx.swt;bundle-version="17.0.2" -Bundle-RequiredExecutionEnvironment: JavaSE-11 +Bundle-RequiredExecutionEnvironment: JavaSE-11, + OSGi/Minimum-1.2 Bundle-ActivationPolicy: lazy Import-Package: com.google.common.collect;version="15.0.0", com.google.inject;version="1.3.0", com.google.inject.binder;version="1.3.0", com.google.inject.util;version="1.3.0", + javax.annotation;version="1.0.0";resolution:=optional, + javax.inject;version="1.0.0", + org.apache.commons.collections4.trie, + org.apache.commons.csv, + org.eclipse.ui.editors.text, + org.jsoup;version="1.14.3", + org.jsoup.nodes;version="1.14.3", org.opengauss.mppdbide.editor.extension.nameparser, org.opengauss.mppdbide.explainplan.ui.model, org.opengauss.mppdbide.parser.alias, @@ -93,9 +101,4 @@ Import-Package: com.google.common.collect;version="15.0.0", org.opengauss.mppdbide.presentation.resultsetif, org.opengauss.mppdbide.presentation.search, org.opengauss.mppdbide.presentation.visualexplainplan, - javax.annotation;version="1.0.0";resolution:=optional, - javax.inject;version="1.0.0", - org.apache.commons.collections4.trie, - org.apache.commons.csv, - org.eclipse.ui.editors.text, org.postgresql -- Gitee From 5a1760b04905b6fb3b74c866ecc40e99412773a3 Mon Sep 17 00:00:00 2001 From: xjp Date: Tue, 19 Jul 2022 12:30:21 +0800 Subject: [PATCH 024/125] update code --- .../mppdbide/view/utils/ExportUtil.java | 70 ++++++++++--------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java index 2dc76f0b..6458704b 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java @@ -1,8 +1,15 @@ package org.opengauss.mppdbide.view.utils; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; import java.util.LinkedHashMap; import java.util.List; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; + public final class ExportUtil { private ExportUtil() { @@ -11,43 +18,38 @@ public final class ExportUtil { public static void exportReport(LinkedHashMap executeSql, List list) { try { -// Document parse = Jsoup.parse(new File("D:\\VsCodeProjects\\openGauss\\exportTemplate.html"), "utf-8"); -// Element data = parse.getElementById("data"); -// list.forEach(item -> { -// Element td = data.appendElement("td"); -// td.text(item); -// }); -// Element excuteSql = parse.getElementById("executeSql"); -// executeSql.forEach((k,v) -> { -// Element tr = excuteSql.appendElement("tr"); -// Element td = tr.appendElement("td"); -// td.text(v); -// if (k) { -// td.addClass("bac"); -// } else { -// td.addClass("bac_nor"); -// } -// }); -// -// String s = parse.outerHtml(); -//// FileUtil.writeUtf8String(s, "D:\\VsCodeProjects\\openGauss\\aa.html"); -// loadStr("D:\\VsCodeProjects\\openGauss\\aa.html", s); + Document parse = Jsoup.parse(new File("D:\\VsCodeProjects\\openGauss\\exportTemplate.html"), "utf-8"); + Element data = parse.getElementById("data"); + list.forEach(item -> { + Element td = data.appendElement("td"); + td.text(item); + }); + Element excuteSql = parse.getElementById("executeSql"); + executeSql.forEach((k,v) -> { + Element tr = excuteSql.appendElement("tr"); + Element td = tr.appendElement("td"); + td.text(v); + if (k) { + td.addClass("bac"); + } else { + td.addClass("bac_nor"); + } + }); + String s = parse.outerHtml(); + loadStr("D:\\VsCodeProjects\\openGauss\\aa.html", s); } catch (Exception e) { e.printStackTrace(); } } -// private static void loadStr(String path,String text_description) throws Exception{ -// //è¦å†™å…¥æ–‡ä»¶æ‰€ä»¥åˆ›å»ºBufferedWriter -// BufferedWriter bw = new BufferedWriter(new FileWriter(new File(path))); -// //想ç€åŒ¹é…到多个空格就进行一个æ¢è¡Œ ä¸çŸ¥é“能ä¸èƒ½è¡Œé€š ä¸å–œæ¬¢å¿½ç•¥ -// String[] split = text_description.split(" "); -// for (String str : split) { -// bw.write(str+"\r\n"); -// } -// //å…³é—­æµ -// if(bw!=null){ -// bw.close(); -// } -// } + private static void loadStr(String path,String text_description) throws Exception{ + BufferedWriter bw = new BufferedWriter(new FileWriter(new File(path))); + String[] split = text_description.split(" "); + for (String str : split) { + bw.write(str+"\r\n"); + } + if(bw!=null){ + bw.close(); + } + } } -- Gitee From bd5d91edc540181c9814bea1fbbfc2100bf05416 Mon Sep 17 00:00:00 2001 From: xjp Date: Tue, 19 Jul 2022 14:15:29 +0800 Subject: [PATCH 025/125] update code --- .../mppdbide/view/utils/ExportUtil.java | 16 +++++- .../src/resources/exportTemplate.html | 57 +++++++++++++++++++ 2 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 code/datastudio/src/org.opengauss.mppdbide.view/src/resources/exportTemplate.html diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java index 6458704b..892ae5cd 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java @@ -3,6 +3,7 @@ package org.opengauss.mppdbide.view.utils; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; +import java.io.InputStream; import java.util.LinkedHashMap; import java.util.List; @@ -13,11 +14,20 @@ import org.jsoup.nodes.Element; public final class ExportUtil { private ExportUtil() { - + } - + public static void exportReport(LinkedHashMap executeSql, List list) { try { + InputStream inputStream = ExportUtil.class.getClassLoader().getResourceAsStream("exportTemplate.html"); + String filePath = ExportUtil.class.getResource("/resources/exportTemplate.html").getPath(); + filePath = filePath.substring(1); + File fi = new File(filePath); + String path = System.getProperty("user.dir"); + File directory = new File("");// 傿•°ä¸ºç©º + String courseFile = directory.getCanonicalPath(); + System.out.println(courseFile); + System.out.println(path); Document parse = Jsoup.parse(new File("D:\\VsCodeProjects\\openGauss\\exportTemplate.html"), "utf-8"); Element data = parse.getElementById("data"); list.forEach(item -> { @@ -41,7 +51,7 @@ public final class ExportUtil { e.printStackTrace(); } } - + private static void loadStr(String path,String text_description) throws Exception{ BufferedWriter bw = new BufferedWriter(new FileWriter(new File(path))); String[] split = text_description.split(" "); diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/resources/exportTemplate.html b/code/datastudio/src/org.opengauss.mppdbide.view/src/resources/exportTemplate.html new file mode 100644 index 00000000..c97962dd --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/resources/exportTemplate.html @@ -0,0 +1,57 @@ + + + + + + + + + + + +
执行语å¥
+ + + + + + + + + + + + + + + + +
总行数执行行数总覆盖率标志行数标记执行行数标志覆盖率执行时间(毫秒)
+ + + \ No newline at end of file -- Gitee From eb587c47405cb79af83c514fa8e8fe06f1b05eed Mon Sep 17 00:00:00 2001 From: xjp Date: Tue, 19 Jul 2022 15:42:02 +0800 Subject: [PATCH 026/125] update code --- .../mppdbide/view/ui/CoverageHistory.java | 6 ++++- .../mppdbide/view/utils/ExportUtil.java | 24 +++++++++---------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java index e53ea7eb..6947cc34 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java @@ -1,6 +1,7 @@ package org.opengauss.mppdbide.view.ui; import java.math.BigDecimal; +import java.net.URL; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Arrays; @@ -401,7 +402,10 @@ public class CoverageHistory extends Dialog{ LinkedHashMap map = new LinkedHashMap(); map.put(false, "create table"); map.put(true, "test values(id int)"); - ExportUtil.exportReport(map, list); + String path = ExportUtil.exportReport(map, list); + MPPDBIDEDialogs.generateOKMessageDialog(MESSAGEDIALOGTYPE.INFORMATION, true, + "æç¤º", + "报告已下载到:"+path); } } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java index 892ae5cd..587520d6 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java @@ -3,10 +3,11 @@ package org.opengauss.mppdbide.view.utils; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; -import java.io.InputStream; +import java.net.URL; import java.util.LinkedHashMap; import java.util.List; +import org.eclipse.core.runtime.FileLocator; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; @@ -17,18 +18,12 @@ public final class ExportUtil { } - public static void exportReport(LinkedHashMap executeSql, List list) { + public static String exportReport(LinkedHashMap executeSql, List list) { try { - InputStream inputStream = ExportUtil.class.getClassLoader().getResourceAsStream("exportTemplate.html"); - String filePath = ExportUtil.class.getResource("/resources/exportTemplate.html").getPath(); - filePath = filePath.substring(1); - File fi = new File(filePath); - String path = System.getProperty("user.dir"); - File directory = new File("");// 傿•°ä¸ºç©º - String courseFile = directory.getCanonicalPath(); - System.out.println(courseFile); - System.out.println(path); - Document parse = Jsoup.parse(new File("D:\\VsCodeProjects\\openGauss\\exportTemplate.html"), "utf-8"); + URL url = ExportUtil.class.getClassLoader().getResource("exportTemplate.html"); + String path = FileLocator.toFileURL(url).getPath().substring(1); + File file = new File(path); + Document parse = Jsoup.parse(file, "utf-8"); Element data = parse.getElementById("data"); list.forEach(item -> { Element td = data.appendElement("td"); @@ -46,9 +41,12 @@ public final class ExportUtil { } }); String s = parse.outerHtml(); - loadStr("D:\\VsCodeProjects\\openGauss\\aa.html", s); + String outPath = path.substring(0, path.lastIndexOf("/")+1)+"report_"+ System.currentTimeMillis()+".html"; + loadStr(outPath, s); + return outPath; } catch (Exception e) { e.printStackTrace(); + return e.getMessage(); } } -- Gitee From 4715f990c3d683810ea7d8388e12cff819f9f32a Mon Sep 17 00:00:00 2001 From: gitama Date: Tue, 19 Jul 2022 17:52:23 +0800 Subject: [PATCH 027/125] his covrage commond --- .../opengauss/mppdbide/debuger/debug/DebugConstants.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java index 1867d616..a839522a 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java @@ -105,7 +105,12 @@ public class DebugConstants { DBE_GET_STACKS("DBE_PLDEBUGGER.backtrace", 1), DBE_GET_BREAKPOINTS("DBE_PLDEBUGGER.info_breakpoints", 1), DBE_DROP_BREAKPOINT("DBE_PLDEBUGGER.delete_breakpoint", 2), - DBE_SET_BREAKPOINT("DBE_PLDEBUGGER.add_breakpoint", 3); + DBE_SET_BREAKPOINT("DBE_PLDEBUGGER.add_breakpoint", 3), + DBE_REMARK_INFO_SET("DBE_PLDEBUGGER.remark_info_set",2), + DBE_REMARK_INFO_GET("DBE_PLDEBUGGER.remark_info_get",1), + DBE_COVERAGE_INFO_GET("DBE_PLDEBUGGER.coverage_info_get",1), + DBE_COVERAGE_INFO_DEL("DBE_PLDEBUGGER.coverage_info_del",2) + ; /** * opt of interface -- Gitee From 437ace2baeddbdddf3f34f3af91c429425e2fc91 Mon Sep 17 00:00:00 2001 From: xjp Date: Tue, 19 Jul 2022 18:24:33 +0800 Subject: [PATCH 028/125] update code --- .../common/QueryResVoConvertHelper.java | 1 + .../mppdbide/debuger/vo/SourceCodeVo.java | 15 +++++++++- .../core/sourceeditor/PLSourceEditorCore.java | 28 +++++++++++++++++-- .../sourceeditor/SQLSyntaxColorProvider.java | 2 ++ .../view/manager/CoverageHistoryService.java} | 11 +++++--- .../manager/CoverageHistoryServiceImpl.java} | 28 +++++++++---------- 6 files changed, 63 insertions(+), 22 deletions(-) rename code/datastudio/src/{org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/manager/CoverageHistoryManager.java => org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryService.java} (61%) rename code/datastudio/src/{org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/CoverageHistoryManagerImpl.java => org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryServiceImpl.java} (35%) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/QueryResVoConvertHelper.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/QueryResVoConvertHelper.java index 37c97432..7e2d0578 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/QueryResVoConvertHelper.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/common/QueryResVoConvertHelper.java @@ -52,6 +52,7 @@ public class QueryResVoConvertHelper { public static T convertToSourceCodeVo(ResultSet rs) throws SQLException { SourceCodeVo sourceCodeVo = new SourceCodeVo(); List infoCodeList= ParseVo.parseList(rs,InfoCodeVo.class); + sourceCodeVo.setCodes(infoCodeList); StringBuffer buffer=new StringBuffer();; infoCodeList.forEach(a->{ buffer.append(a.query) ; diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java index 07afdb40..0a2391eb 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java @@ -15,7 +15,10 @@ package org.opengauss.mppdbide.debuger.vo; +import java.util.List; + import org.opengauss.mppdbide.debuger.annotation.DumpFiled; +import org.opengauss.mppdbide.debuger.vo.dbe.InfoCodeVo; /** * Title: the SourceCodeVo class @@ -28,7 +31,9 @@ public class SourceCodeVo { */ @DumpFiled public String pldbg_get_source; - + @DumpFiled + private List codes; + /** * get source code * @@ -41,4 +46,12 @@ public class SourceCodeVo { public void setSourceCode(String sourceCode) { this.pldbg_get_source=sourceCode; } + + public List getCodes() { + return codes; + } + + public void setCodes(List codes) { + this.codes=codes; + } } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java index c8be61ec..8a742f55 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java @@ -15,6 +15,7 @@ package org.opengauss.mppdbide.view.core.sourceeditor; +import java.sql.SQLException; import java.util.ArrayList; import java.util.Iterator; import java.util.Locale; @@ -85,6 +86,7 @@ import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.events.VerifyEvent; +import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.layout.GridData; @@ -100,12 +102,14 @@ import org.eclipse.ui.texteditor.SourceViewerDecorationSupport; import org.opengauss.mppdbide.adapter.keywordssyntax.SQLSyntax; import org.opengauss.mppdbide.bl.serverdatacache.Database; +import org.opengauss.mppdbide.debuger.service.ServiceFactory; import org.opengauss.mppdbide.gauss.sqlparser.SQLFoldingConstants; import org.opengauss.mppdbide.utils.IMessagesConstants; import org.opengauss.mppdbide.utils.MPPDBIDEConstants; import org.opengauss.mppdbide.utils.loader.MessageConfigLoader; import org.opengauss.mppdbide.utils.logger.MPPDBIDELoggerUtility; import org.opengauss.mppdbide.view.core.SelectMenuItem; +import org.opengauss.mppdbide.view.handler.debug.DBConnectionProvider; import org.opengauss.mppdbide.view.handler.debug.DebugHandlerUtils; import org.opengauss.mppdbide.view.handler.debug.DebugServiceHelper; import org.opengauss.mppdbide.view.prefernces.DSFormatterPreferencePage; @@ -123,6 +127,7 @@ import org.opengauss.mppdbide.view.uidisplay.UIDisplayState; import org.opengauss.mppdbide.view.uidisplay.uidisplayif.UIDisplayStateIf; import org.opengauss.mppdbide.view.utils.IUserPreference; import org.opengauss.mppdbide.view.utils.TerminalStatusBar; +import org.opengauss.mppdbide.view.utils.UIElement; import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs; import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs.MESSAGEDIALOGTYPE; import org.opengauss.mppdbide.view.utils.icon.IconUtility; @@ -1344,9 +1349,26 @@ public final class PLSourceEditorCore extends SelectMenuItem implements IPropert @Override public void widgetSelected(SelectionEvent event) { - Command cmd = commandService.getCommand("org.opengauss.mppdbide.view.command.ToggleLineComment"); - ParameterizedCommand parameterizedCmd = new ParameterizedCommand(cmd, null); - handlerService.executeHandler(parameterizedCmd); + ISelection res = viewer.getSelection(); + int index = Integer.valueOf(res.toString().split("startLine: ")[1].substring(0,1)); + PLSourceEditor pl = UIElement.getInstance().getVisibleSourceViewer(); +// try { +// ServiceFactory serviceFactory = new ServiceFactory(new DBConnectionProvider(pl.getDebugObject().getDatabase())); +//// serviceFactory.getQueryService() +//// db.getFreeConnection().get().getStatement(""); +// } catch (SQLException e) { +// e.printStackTrace(); +// } + long oid = pl.getDebugObject().getOid(); + //todo + int[] indexs = new int[] {}; + for (int arr : indexs) { + if (index == arr) { + viewer.getTextWidget().setLineBackground(index, 1, SQLSyntaxColorProvider.BACKGROUND_COLOR_BLUE); + } else { + viewer.getTextWidget().setLineBackground(index, 1, SQLSyntaxColorProvider.BACKGROUND_COLOR); + } + } } @Override diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/SQLSyntaxColorProvider.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/SQLSyntaxColorProvider.java index 7d67c146..86e1dd82 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/SQLSyntaxColorProvider.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/SQLSyntaxColorProvider.java @@ -71,6 +71,8 @@ public class SQLSyntaxColorProvider { * The Constant BACKGROUND_COLOR. */ public static final Color BACKGROUND_COLOR = new Color(Display.getCurrent(), BACKGROUND); + + public static final Color BACKGROUND_COLOR_BLUE = new Color(Display.getCurrent(), new RGB(0, 0, 255)); /** * use for debug position highlight diff --git a/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/manager/CoverageHistoryManager.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryService.java similarity index 61% rename from code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/manager/CoverageHistoryManager.java rename to code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryService.java index e32316ef..e0a6aadf 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/manager/CoverageHistoryManager.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryService.java @@ -1,14 +1,16 @@ -package org.opengauss.mppdbide.bl.sqlhistory.manager; +package org.opengauss.mppdbide.view.manager; import java.util.List; -public interface CoverageHistoryManager { +import org.opengauss.mppdbide.view.vo.CoverageVo; + +public interface CoverageHistoryService { /** * set Highlight * @param rowLines */ -// List setRemarkInfo(String...rowLines); + List setRemarkInfo(String...rowLines); /** * Get the line number of the tag according to the ID @@ -23,7 +25,7 @@ public interface CoverageHistoryManager { * @param oid * @return */ -// List getCoverageInfoByOid(String oid); + List getCoverageInfoByOid(String oid); /** * delete info @@ -32,3 +34,4 @@ public interface CoverageHistoryManager { */ void delCoverageInfoByOid(String oid, Integer cid); } + diff --git a/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/CoverageHistoryManagerImpl.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryServiceImpl.java similarity index 35% rename from code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/CoverageHistoryManagerImpl.java rename to code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryServiceImpl.java index cc79c916..e290802c 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.bl/src/org/opengauss/mppdbide/bl/sqlhistory/CoverageHistoryManagerImpl.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryServiceImpl.java @@ -1,16 +1,16 @@ -package org.opengauss.mppdbide.bl.sqlhistory; +package org.opengauss.mppdbide.view.manager; import java.util.List; -import org.opengauss.mppdbide.bl.sqlhistory.manager.CoverageHistoryManager; +import org.opengauss.mppdbide.view.vo.CoverageVo; -public class CoverageHistoryManagerImpl implements CoverageHistoryManager{ +public class CoverageHistoryServiceImpl implements CoverageHistoryService{ -// @Override -// public List setRemarkInfo(String... rowLines) { -// // TODO Auto-generated method stub -// return null; -// } + @Override + public List setRemarkInfo(String... rowLines) { + // TODO Auto-generated method stub + return null; + } @Override public List getRemarkInfo(String oid) { @@ -18,15 +18,15 @@ public class CoverageHistoryManagerImpl implements CoverageHistoryManager{ return null; } -// @Override -// public List getCoverageInfoByOid(String oid) { -// // TODO Auto-generated method stub -// return null; -// } + @Override + public List getCoverageInfoByOid(String oid) { + // TODO Auto-generated method stub + return null; + } @Override public void delCoverageInfoByOid(String oid, Integer cid) { // TODO Auto-generated method stub } -} +} \ No newline at end of file -- Gitee From 6be28873181b041c15fbc0680f16df2aff835c25 Mon Sep 17 00:00:00 2001 From: xjp Date: Tue, 19 Jul 2022 18:36:19 +0800 Subject: [PATCH 029/125] update code --- .../debuger/service/ServiceFactory.java | 12 +++++++++ .../core/sourceeditor/PLSourceEditorCore.java | 15 +++++------ .../view/manager/CoverageHistoryService.java | 6 ++--- .../manager/CoverageHistoryServiceImpl.java | 13 +++++++--- .../mppdbide/view/ui/CoverageHistory.java | 25 ++----------------- 5 files changed, 35 insertions(+), 36 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/ServiceFactory.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/ServiceFactory.java index f6f19ba1..27e93a6e 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/ServiceFactory.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/ServiceFactory.java @@ -23,6 +23,8 @@ import org.opengauss.mppdbide.common.IConnection; import org.opengauss.mppdbide.common.IConnectionProvider; import org.opengauss.mppdbide.debuger.vo.VersionVo; import org.opengauss.mppdbide.utils.logger.MPPDBIDELoggerUtility; +import org.opengauss.mppdbide.view.manager.CoverageHistoryService; +import org.opengauss.mppdbide.view.manager.CoverageHistoryServiceImpl; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -52,6 +54,10 @@ public class ServiceFactory { public QueryService getQueryService() throws SQLException { return createQueryService(provider.getValidFreeConnection()); } + + public CoverageHistoryServiceImpl getCoverageService() throws SQLException { + return createCoverageService(provider.getValidFreeConnection()); + } /** * description: get debug service @@ -131,4 +137,10 @@ public class ServiceFactory { queryService.setConn(conn); return queryService; } + + private static CoverageHistoryServiceImpl createCoverageService(IConnection conn) { + CoverageHistoryServiceImpl service = new CoverageHistoryServiceImpl(); + service.setConn(conn); + return service; + } } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java index 8a742f55..13d61b40 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java @@ -112,6 +112,7 @@ import org.opengauss.mppdbide.view.core.SelectMenuItem; import org.opengauss.mppdbide.view.handler.debug.DBConnectionProvider; import org.opengauss.mppdbide.view.handler.debug.DebugHandlerUtils; import org.opengauss.mppdbide.view.handler.debug.DebugServiceHelper; +import org.opengauss.mppdbide.view.manager.CoverageHistoryServiceImpl; import org.opengauss.mppdbide.view.prefernces.DSFormatterPreferencePage; import org.opengauss.mppdbide.view.prefernces.FormatterPreferenceKeys; import org.opengauss.mppdbide.view.prefernces.IAutoCompletePreference; @@ -1352,14 +1353,14 @@ public final class PLSourceEditorCore extends SelectMenuItem implements IPropert ISelection res = viewer.getSelection(); int index = Integer.valueOf(res.toString().split("startLine: ")[1].substring(0,1)); PLSourceEditor pl = UIElement.getInstance().getVisibleSourceViewer(); -// try { -// ServiceFactory serviceFactory = new ServiceFactory(new DBConnectionProvider(pl.getDebugObject().getDatabase())); -//// serviceFactory.getQueryService() -//// db.getFreeConnection().get().getStatement(""); -// } catch (SQLException e) { -// e.printStackTrace(); -// } long oid = pl.getDebugObject().getOid(); + try { + ServiceFactory serviceFactory = new ServiceFactory(new DBConnectionProvider(pl.getDebugObject().getDatabase())); + CoverageHistoryServiceImpl service = serviceFactory.getCoverageService(); + service.getRemarkInfo(oid); + } catch (SQLException e) { + e.printStackTrace(); + } //todo int[] indexs = new int[] {}; for (int arr : indexs) { diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryService.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryService.java index e0a6aadf..6fe6af01 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryService.java @@ -17,7 +17,7 @@ public interface CoverageHistoryService { * @param oid * @return */ - List getRemarkInfo(String oid); + List getRemarkInfo(long oid); /** @@ -25,13 +25,13 @@ public interface CoverageHistoryService { * @param oid * @return */ - List getCoverageInfoByOid(String oid); + List getCoverageInfoByOid(long oid); /** * delete info * @param oid * @param cid */ - void delCoverageInfoByOid(String oid, Integer cid); + void delCoverageInfoByOid(long oid, Integer cid); } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryServiceImpl.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryServiceImpl.java index e290802c..f50b3ab4 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryServiceImpl.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryServiceImpl.java @@ -2,10 +2,17 @@ package org.opengauss.mppdbide.view.manager; import java.util.List; +import org.opengauss.mppdbide.common.IConnection; import org.opengauss.mppdbide.view.vo.CoverageVo; public class CoverageHistoryServiceImpl implements CoverageHistoryService{ + private IConnection conn = null; + + public void setConn(IConnection conn) { + this.conn = conn; + } + @Override public List setRemarkInfo(String... rowLines) { // TODO Auto-generated method stub @@ -13,19 +20,19 @@ public class CoverageHistoryServiceImpl implements CoverageHistoryService{ } @Override - public List getRemarkInfo(String oid) { + public List getRemarkInfo(long oid) { // TODO Auto-generated method stub return null; } @Override - public List getCoverageInfoByOid(String oid) { + public List getCoverageInfoByOid(long oid) { // TODO Auto-generated method stub return null; } @Override - public void delCoverageInfoByOid(String oid, Integer cid) { + public void delCoverageInfoByOid(long oid, Integer cid) { // TODO Auto-generated method stub } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java index 6947cc34..c0512b09 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java @@ -1,33 +1,23 @@ package org.opengauss.mppdbide.view.ui; -import java.math.BigDecimal; -import java.net.URL; -import java.text.DecimalFormat; +import java.net.InetAddress; +import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; -import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.eclipse.core.commands.Command; -import org.eclipse.core.commands.ParameterizedCommand; -import org.eclipse.e4.core.commands.ECommandService; -import org.eclipse.e4.core.commands.EHandlerService; -import org.eclipse.e4.core.contexts.IEclipseContext; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.text.Document; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.source.CompositeRuler; -import org.eclipse.jface.text.source.ISharedTextColors; import org.eclipse.jface.text.source.LineNumberRulerColumn; import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.ScrolledComposite; -import org.eclipse.swt.events.KeyEvent; -import org.eclipse.swt.events.KeyListener; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.SelectionEvent; @@ -35,35 +25,25 @@ import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; -import org.eclipse.ui.internal.editors.text.EditorsPlugin; - import org.opengauss.mppdbide.adapter.keywordssyntax.SQLSyntax; -import org.opengauss.mppdbide.bl.preferences.BLPreferenceManager; import org.opengauss.mppdbide.bl.sqlhistory.SQLHistoryFactory; -import org.opengauss.mppdbide.bl.sqlhistory.SQLHistoryItem; import org.opengauss.mppdbide.bl.sqlhistory.manager.ISqlHistoryManager; -import org.opengauss.mppdbide.eclipse.dependent.EclipseInjections; import org.opengauss.mppdbide.utils.EnvirnmentVariableValidator; import org.opengauss.mppdbide.utils.IMessagesConstants; import org.opengauss.mppdbide.utils.MPPDBIDEConstants; -import org.opengauss.mppdbide.utils.exceptions.MPPDBIDEException; import org.opengauss.mppdbide.utils.loader.MessageConfigLoader; import org.opengauss.mppdbide.view.core.sourceeditor.SQLDocumentPartitioner; import org.opengauss.mppdbide.view.core.sourceeditor.SQLSourceViewerConfig; -import org.opengauss.mppdbide.view.core.sourceeditor.SQLSourceViewerDecorationSupport; import org.opengauss.mppdbide.view.ui.terminal.SQLTerminal; import org.opengauss.mppdbide.view.utils.ExportUtil; -import org.opengauss.mppdbide.view.utils.IUserPreference; import org.opengauss.mppdbide.view.utils.UIElement; import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs; import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs.MESSAGEDIALOGTYPE; @@ -124,7 +104,6 @@ public class CoverageHistory extends Dialog{ public Control createContents(final Composite parent) { final ScrolledComposite mainSc = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL); mainSc.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - final Composite currentComposite = new Composite(mainSc, SWT.BORDER); mainSc.setContent(currentComposite); GridLayout layout = new GridLayout(1, false); -- Gitee From 3442b5f5f0925d75220b052668221c1f01bb37cd Mon Sep 17 00:00:00 2001 From: xjp Date: Tue, 19 Jul 2022 18:39:28 +0800 Subject: [PATCH 030/125] update code --- .../view/core/sourceeditor/PLSourceEditorCore.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java index 13d61b40..3dd48cd3 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java @@ -18,6 +18,7 @@ package org.opengauss.mppdbide.view.core.sourceeditor; import java.sql.SQLException; import java.util.ArrayList; import java.util.Iterator; +import java.util.List; import java.util.Locale; import javax.annotation.PreDestroy; @@ -1354,16 +1355,15 @@ public final class PLSourceEditorCore extends SelectMenuItem implements IPropert int index = Integer.valueOf(res.toString().split("startLine: ")[1].substring(0,1)); PLSourceEditor pl = UIElement.getInstance().getVisibleSourceViewer(); long oid = pl.getDebugObject().getOid(); + List list=null; try { ServiceFactory serviceFactory = new ServiceFactory(new DBConnectionProvider(pl.getDebugObject().getDatabase())); CoverageHistoryServiceImpl service = serviceFactory.getCoverageService(); - service.getRemarkInfo(oid); + list = service.getRemarkInfo(oid); } catch (SQLException e) { e.printStackTrace(); } - //todo - int[] indexs = new int[] {}; - for (int arr : indexs) { + for (Integer arr : list) { if (index == arr) { viewer.getTextWidget().setLineBackground(index, 1, SQLSyntaxColorProvider.BACKGROUND_COLOR_BLUE); } else { -- Gitee From a8869eec856b715948792be8d1dda28b0a1ff100 Mon Sep 17 00:00:00 2001 From: xjp Date: Wed, 20 Jul 2022 11:10:10 +0800 Subject: [PATCH 031/125] update code --- .../debuger/service/ServiceFactory.java | 17 +--- .../core/sourceeditor/PLSourceEditorCore.java | 27 ++---- .../view/manager/CoverageHistoryService.java | 37 -------- .../manager/CoverageHistoryServiceImpl.java | 39 -------- .../view/service/CoverageServiceFactory.java | 45 +++++++++ .../mppdbide/view/vo/CoverageService.java | 91 +++++++++++++++++++ 6 files changed, 148 insertions(+), 108 deletions(-) delete mode 100644 code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryService.java delete mode 100644 code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryServiceImpl.java create mode 100644 code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/service/CoverageServiceFactory.java create mode 100644 code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageService.java diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/ServiceFactory.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/ServiceFactory.java index 27e93a6e..2100564e 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/ServiceFactory.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/ServiceFactory.java @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2022 Huawei Technologies Co.,Ltd. * * openGauss is licensed under Mulan PSL v2. @@ -6,7 +6,7 @@ * You may obtain a copy of Mulan PSL v2 at: * * http://license.coscl.org.cn/MulanPSL2 - * + * * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. @@ -23,9 +23,6 @@ import org.opengauss.mppdbide.common.IConnection; import org.opengauss.mppdbide.common.IConnectionProvider; import org.opengauss.mppdbide.debuger.vo.VersionVo; import org.opengauss.mppdbide.utils.logger.MPPDBIDELoggerUtility; -import org.opengauss.mppdbide.view.manager.CoverageHistoryService; -import org.opengauss.mppdbide.view.manager.CoverageHistoryServiceImpl; - import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -54,10 +51,6 @@ public class ServiceFactory { public QueryService getQueryService() throws SQLException { return createQueryService(provider.getValidFreeConnection()); } - - public CoverageHistoryServiceImpl getCoverageService() throws SQLException { - return createCoverageService(provider.getValidFreeConnection()); - } /** * description: get debug service @@ -137,10 +130,4 @@ public class ServiceFactory { queryService.setConn(conn); return queryService; } - - private static CoverageHistoryServiceImpl createCoverageService(IConnection conn) { - CoverageHistoryServiceImpl service = new CoverageHistoryServiceImpl(); - service.setConn(conn); - return service; - } } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java index 3dd48cd3..dc92ce0f 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2022 Huawei Technologies Co.,Ltd. * * openGauss is licensed under Mulan PSL v2. @@ -6,7 +6,7 @@ * You may obtain a copy of Mulan PSL v2 at: * * http://license.coscl.org.cn/MulanPSL2 - * + * * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. @@ -15,7 +15,6 @@ package org.opengauss.mppdbide.view.core.sourceeditor; -import java.sql.SQLException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -65,8 +64,6 @@ import org.eclipse.jface.text.source.IOverviewRuler; import org.eclipse.jface.text.source.ISharedTextColors; import org.eclipse.jface.text.source.OverviewRuler; import org.eclipse.jface.text.source.SourceViewer; -import org.eclipse.jface.text.source.projection.ProjectionAnnotation; -import org.eclipse.jface.text.source.projection.ProjectionAnnotationModel; import org.eclipse.jface.text.source.projection.ProjectionSupport; import org.eclipse.jface.text.source.projection.ProjectionViewer; import org.eclipse.jface.util.IPropertyChangeListener; @@ -83,11 +80,9 @@ import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.events.KeyListener; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; -import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.events.VerifyEvent; -import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.layout.GridData; @@ -100,10 +95,8 @@ import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Widget; import org.eclipse.ui.internal.editors.text.EditorsPlugin; import org.eclipse.ui.texteditor.SourceViewerDecorationSupport; - import org.opengauss.mppdbide.adapter.keywordssyntax.SQLSyntax; import org.opengauss.mppdbide.bl.serverdatacache.Database; -import org.opengauss.mppdbide.debuger.service.ServiceFactory; import org.opengauss.mppdbide.gauss.sqlparser.SQLFoldingConstants; import org.opengauss.mppdbide.utils.IMessagesConstants; import org.opengauss.mppdbide.utils.MPPDBIDEConstants; @@ -111,14 +104,13 @@ import org.opengauss.mppdbide.utils.loader.MessageConfigLoader; import org.opengauss.mppdbide.utils.logger.MPPDBIDELoggerUtility; import org.opengauss.mppdbide.view.core.SelectMenuItem; import org.opengauss.mppdbide.view.handler.debug.DBConnectionProvider; -import org.opengauss.mppdbide.view.handler.debug.DebugHandlerUtils; import org.opengauss.mppdbide.view.handler.debug.DebugServiceHelper; -import org.opengauss.mppdbide.view.manager.CoverageHistoryServiceImpl; import org.opengauss.mppdbide.view.prefernces.DSFormatterPreferencePage; import org.opengauss.mppdbide.view.prefernces.FormatterPreferenceKeys; import org.opengauss.mppdbide.view.prefernces.IAutoCompletePreference; import org.opengauss.mppdbide.view.prefernces.KeyBindingWrapper; import org.opengauss.mppdbide.view.prefernces.PreferenceWrapper; +import org.opengauss.mppdbide.view.service.CoverageServiceFactory; import org.opengauss.mppdbide.view.ui.DBAssistantWindow; import org.opengauss.mppdbide.view.ui.FindAndReplaceOptions; import org.opengauss.mppdbide.view.ui.PLSourceEditor; @@ -134,6 +126,7 @@ import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs; import org.opengauss.mppdbide.view.utils.dialog.MPPDBIDEDialogs.MESSAGEDIALOGTYPE; import org.opengauss.mppdbide.view.utils.icon.IconUtility; import org.opengauss.mppdbide.view.utils.icon.IiconPath; +import org.opengauss.mppdbide.view.vo.CoverageService; import org.opengauss.mppdbide.view.workerjob.UIWorkerJob; /** @@ -1357,11 +1350,11 @@ public final class PLSourceEditorCore extends SelectMenuItem implements IPropert long oid = pl.getDebugObject().getOid(); List list=null; try { - ServiceFactory serviceFactory = new ServiceFactory(new DBConnectionProvider(pl.getDebugObject().getDatabase())); - CoverageHistoryServiceImpl service = serviceFactory.getCoverageService(); + CoverageServiceFactory serviceFactory = new CoverageServiceFactory(new DBConnectionProvider(pl.getDebugObject().getDatabase())); + CoverageService service = serviceFactory.getCoverageService(); list = service.getRemarkInfo(oid); - } catch (SQLException e) { - e.printStackTrace(); + } catch (Exception e) { + MPPDBIDELoggerUtility.error(e.getMessage()); } for (Integer arr : list) { if (index == arr) { @@ -2511,7 +2504,7 @@ public final class PLSourceEditorCore extends SelectMenuItem implements IPropert /** * to remove completed Job - * + * * @param job which job need to be removed */ public void removeCompletedJob(UIWorkerJob job) { @@ -2530,7 +2523,7 @@ public final class PLSourceEditorCore extends SelectMenuItem implements IPropert public AnnotationModel getfAnnotationModel() { return fAnnotationModel; } - + /** * pre destroy */ diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryService.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryService.java deleted file mode 100644 index 6fe6af01..00000000 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryService.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.opengauss.mppdbide.view.manager; - -import java.util.List; - -import org.opengauss.mppdbide.view.vo.CoverageVo; - -public interface CoverageHistoryService { - - /** - * set Highlight - * @param rowLines - */ - List setRemarkInfo(String...rowLines); - - /** - * Get the line number of the tag according to the ID - * @param oid - * @return - */ - List getRemarkInfo(long oid); - - - /** - * get info by id - * @param oid - * @return - */ - List getCoverageInfoByOid(long oid); - - /** - * delete info - * @param oid - * @param cid - */ - void delCoverageInfoByOid(long oid, Integer cid); -} - diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryServiceImpl.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryServiceImpl.java deleted file mode 100644 index f50b3ab4..00000000 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/manager/CoverageHistoryServiceImpl.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.opengauss.mppdbide.view.manager; - -import java.util.List; - -import org.opengauss.mppdbide.common.IConnection; -import org.opengauss.mppdbide.view.vo.CoverageVo; - -public class CoverageHistoryServiceImpl implements CoverageHistoryService{ - - private IConnection conn = null; - - public void setConn(IConnection conn) { - this.conn = conn; - } - - @Override - public List setRemarkInfo(String... rowLines) { - // TODO Auto-generated method stub - return null; - } - - @Override - public List getRemarkInfo(long oid) { - // TODO Auto-generated method stub - return null; - } - - @Override - public List getCoverageInfoByOid(long oid) { - // TODO Auto-generated method stub - return null; - } - - @Override - public void delCoverageInfoByOid(long oid, Integer cid) { - // TODO Auto-generated method stub - - } -} \ No newline at end of file diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/service/CoverageServiceFactory.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/service/CoverageServiceFactory.java new file mode 100644 index 00000000..48106535 --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/service/CoverageServiceFactory.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 Huawei Technologies Co.,Ltd. + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +package org.opengauss.mppdbide.view.service; + +import java.sql.SQLException; + +import org.opengauss.mppdbide.common.IConnection; +import org.opengauss.mppdbide.common.IConnectionProvider; +import org.opengauss.mppdbide.view.vo.CoverageService; + +/** + * Title: the ServiceFactory class + * + * @since 3.0.0 + */ +public class CoverageServiceFactory { + private IConnectionProvider provider; + + public CoverageServiceFactory(IConnectionProvider provider) { + this.provider = provider; + } + + public CoverageService getCoverageService() throws SQLException { + return createCoverageService(provider.getValidFreeConnection()); + } + + private static CoverageService createCoverageService(IConnection conn) { + CoverageService service = new CoverageService (); + service.setConn(conn); + return service; + } +} diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageService.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageService.java new file mode 100644 index 00000000..1e3d4ab6 --- /dev/null +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageService.java @@ -0,0 +1,91 @@ +package org.opengauss.mppdbide.view.vo; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +import org.opengauss.mppdbide.common.IConnection; +import org.opengauss.mppdbide.debuger.annotation.ParseVo; +import org.opengauss.mppdbide.debuger.service.IService; +import org.opengauss.mppdbide.utils.logger.MPPDBIDELoggerUtility; + +public class CoverageService implements IService{ + + private IConnection conn = null; + + public void setConn(IConnection conn) { + this.conn = conn; + } + + public List setRemarkInfo(Integer... rowLines) throws SQLException { + String sql = null; + return queryList(sql, CoverageVo.class); + } + + public List getRemarkInfo(long oid) throws SQLException { + String sql = null; + return queryList(sql, Integer.class); + } + + public List getCoverageInfoByOid(long oid) throws SQLException { + String sql = null; + return queryList(sql, CoverageVo.class); + } + + public void delCoverageInfoByOid(long oid, Integer cid) throws SQLException { + String sql = null; + executeSql(sql); + } + + public Boolean executeSql(String sql) throws SQLException{ + Boolean flag = false; + try (PreparedStatement ps = conn.getStatement(sql)) { + flag = ps.execute(sql); + } catch (SQLException e) { + throw new SQLException("sql execute exception!"); + } + return flag; + } + + public T queryObj(String sql, Class clazz) throws SQLException { + T t = null; + try (PreparedStatement ps = conn.getStatement(sql)) { + try (ResultSet rs = ps.executeQuery()) { + if (rs.next()) { + t = ParseVo.parse(rs, clazz); + } + } + } catch (SQLException e) { + throw new SQLException("sql execute exception!"); + } + return t; + } + + private List queryList(String sql, Class clazz) throws SQLException{ + List list = null; + try (PreparedStatement ps = conn.getStatement(sql)) { + try (ResultSet rs = ps.executeQuery()) { + if (rs.next()) { + list = ParseVo.parseList(rs, clazz); + } + } + } catch (SQLException e) { + throw new SQLException("sql execute exception!"); + } + return list; + } + + @Override + public void closeService() { + try { + if (this.conn != null) { + this.conn.close(); + this.conn = null; + } + } catch (SQLException e) { + MPPDBIDELoggerUtility.warn("close conn with err:" + e.toString()); + } + + } +} -- Gitee From 168aeba2544946751613df255ce3eb983dec6446 Mon Sep 17 00:00:00 2001 From: xjp Date: Wed, 20 Jul 2022 14:29:24 +0800 Subject: [PATCH 032/125] update code --- .../core/sourceeditor/PLSourceEditorCore.java | 45 ++++++++++++++----- .../mppdbide/view/vo/CoverageService.java | 9 +++- 2 files changed, 41 insertions(+), 13 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java index dc92ce0f..0a8ac7f3 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/core/sourceeditor/PLSourceEditorCore.java @@ -15,10 +15,14 @@ package org.opengauss.mppdbide.view.core.sourceeditor; +import java.sql.SQLException; import java.util.ArrayList; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Locale; +import java.util.Map; +import java.util.stream.Collectors; import javax.annotation.PreDestroy; @@ -135,6 +139,7 @@ import org.opengauss.mppdbide.view.workerjob.UIWorkerJob; * @since 3.0.0 */ public final class PLSourceEditorCore extends SelectMenuItem implements IPropertyChangeListener { + private static final String FORMAT_COMMAND_ID = "org.opengauss.mppdbide.command.id.format"; private ECommandService commandService; @@ -1335,7 +1340,6 @@ public final class PLSourceEditorCore extends SelectMenuItem implements IPropert toggleLineComments.setImage(IconUtility.getIconImage(IiconPath.ICON_TOGGLE_LINE_COMMENTS, this.getClass())); } - private void addRemarkLineCommentMenuItem(Menu menuItem) { toggleLineComments = new MenuItem(menuItem, SWT.PUSH); toggleLineComments.setText(MessageConfigLoader @@ -1345,23 +1349,42 @@ public final class PLSourceEditorCore extends SelectMenuItem implements IPropert @Override public void widgetSelected(SelectionEvent event) { ISelection res = viewer.getSelection(); - int index = Integer.valueOf(res.toString().split("startLine: ")[1].substring(0,1)); + int start = Integer.valueOf(res.toString().split("startLine: ")[1].substring(0,1)); + String[] arr = res.toString().split("endLine: "); + int endLength = 1; + if (arr.length > 1) { + endLength = Integer.valueOf(arr[1].substring(0,1)); + } + List list = new ArrayList(); + for(int i = start; i< (endLength==1?start+1:endLength+1); i++) { + list.add(i); + } PLSourceEditor pl = UIElement.getInstance().getVisibleSourceViewer(); long oid = pl.getDebugObject().getOid(); - List list=null; + List remarkLines= new ArrayList(); + CoverageService service = null; try { CoverageServiceFactory serviceFactory = new CoverageServiceFactory(new DBConnectionProvider(pl.getDebugObject().getDatabase())); - CoverageService service = serviceFactory.getCoverageService(); - list = service.getRemarkInfo(oid); + service = serviceFactory.getCoverageService(); + remarkLines.addAll(service.getRemarkInfo(oid)); } catch (Exception e) { MPPDBIDELoggerUtility.error(e.getMessage()); } - for (Integer arr : list) { - if (index == arr) { - viewer.getTextWidget().setLineBackground(index, 1, SQLSyntaxColorProvider.BACKGROUND_COLOR_BLUE); - } else { - viewer.getTextWidget().setLineBackground(index, 1, SQLSyntaxColorProvider.BACKGROUND_COLOR); - } + for (Integer index : list) { + viewer.getTextWidget().setLineBackground(index, 1, SQLSyntaxColorProvider.BACKGROUND_COLOR_BLUE); + + List cancel = remarkLines.stream().filter(item -> item.equals(index)).collect(Collectors.toList()); + cancel.forEach(item -> viewer.getTextWidget().setLineBackground(item, 1, SQLSyntaxColorProvider.BACKGROUND_COLOR)); + + try { + if (cancel.size() == 0) { + service.setRemarkInfo(oid, index); + }else { + service.cancelRemarkInfo(oid, index); + } + } catch (Exception e) { + e.printStackTrace(); + } } } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageService.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageService.java index 1e3d4ab6..f403479b 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageService.java @@ -18,9 +18,14 @@ public class CoverageService implements IService{ this.conn = conn; } - public List setRemarkInfo(Integer... rowLines) throws SQLException { + public void setRemarkInfo(long oid, Integer... rowLines) throws SQLException { String sql = null; - return queryList(sql, CoverageVo.class); + executeSql(sql); + } + + public void cancelRemarkInfo(long oid, Integer... rowLines) throws SQLException { + String sql = null; + executeSql(sql); } public List getRemarkInfo(long oid) throws SQLException { -- Gitee From 913c7b9ab603d6c645b7ba84e255ae0b996c2afa Mon Sep 17 00:00:00 2001 From: gitama Date: Wed, 20 Jul 2022 14:53:20 +0800 Subject: [PATCH 033/125] attach --- .../mppdbide/debuger/service/DebugService.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java index 87475453..3b41d88f 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java @@ -112,7 +112,9 @@ public class DebugService implements NoticeListener, EventHander, IDebugService boolean isPldebugger= VersionHelper.getDebuggerVersion(clientConn).isPldebugger(); if(!isPldebugger) { turnOnVo=ParseVo.parse(rs, TurnOnVo.class); - updateServerPort(turnOnVo.port); //for test + SQLWarning sql=new SQLWarning("Pldebugger is started successfully, you are SERVER now."); + noticeReceived(sql); + //updateServerPort(turnOnVo.port); //for test } } @@ -178,12 +180,13 @@ public class DebugService implements NoticeListener, EventHander, IDebugService } }else { try { + SQLWarning sqlWarning=new SQLWarning("YOUR PROXY PORT ID IS:"+turnOnVo.port); + noticeReceived(sqlWarning); ps.execute(); }catch(Exception e) { e.printStackTrace(); } - - return Optional.empty(); + return Optional.of(0); } } @@ -561,6 +564,15 @@ public class DebugService implements NoticeListener, EventHander, IDebugService synchronized (waitLock) { waitLock.notifyAll(); } + try { + boolean isPldebugger= VersionHelper.getDebuggerVersion(clientConn).isPldebugger(); + if(!isPldebugger) { + attachDebug(); + } + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } /** -- Gitee From acd09622ec4d5eb8e3d57c71879864b494341437 Mon Sep 17 00:00:00 2001 From: xjp Date: Wed, 20 Jul 2022 15:17:53 +0800 Subject: [PATCH 034/125] update code --- .../mppdbide/debuger/vo/SourceCodeVo.java | 6 ++- .../mppdbide/debuger/vo/dbe/InfoCodeVo.java | 6 +++ .../mppdbide/view/ui/CoverageHistory.java | 46 +++++++++++++++---- .../mppdbide/view/utils/ExportUtil.java | 5 +- 4 files changed, 50 insertions(+), 13 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java index 0a2391eb..32eb1934 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java @@ -16,6 +16,8 @@ package org.opengauss.mppdbide.debuger.vo; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; import org.opengauss.mppdbide.debuger.annotation.DumpFiled; import org.opengauss.mppdbide.debuger.vo.dbe.InfoCodeVo; @@ -47,8 +49,8 @@ public class SourceCodeVo { this.pldbg_get_source=sourceCode; } - public List getCodes() { - return codes; + public Map getCodes() { + return codes.stream().collect(Collectors.toMap(InfoCodeVo::getLineno, InfoCodeVo::getQuery)); } public void setCodes(List codes) { diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/InfoCodeVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/InfoCodeVo.java index 496ea310..228c0068 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/InfoCodeVo.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/dbe/InfoCodeVo.java @@ -11,6 +11,12 @@ public class InfoCodeVo { @DumpFiled public boolean canbreak; + public Integer getLineno() { + return lineno; + } + public String getQuery() { + return query; + } } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java index c0512b09..40c46e43 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java @@ -2,11 +2,15 @@ package org.opengauss.mppdbide.view.ui; import java.net.InetAddress; import java.net.UnknownHostException; +import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -36,12 +40,18 @@ import org.eclipse.swt.widgets.ToolItem; import org.opengauss.mppdbide.adapter.keywordssyntax.SQLSyntax; import org.opengauss.mppdbide.bl.sqlhistory.SQLHistoryFactory; import org.opengauss.mppdbide.bl.sqlhistory.manager.ISqlHistoryManager; +import org.opengauss.mppdbide.debuger.vo.SourceCodeVo; +import org.opengauss.mppdbide.debuger.vo.dbe.InfoCodeVo; import org.opengauss.mppdbide.utils.EnvirnmentVariableValidator; import org.opengauss.mppdbide.utils.IMessagesConstants; import org.opengauss.mppdbide.utils.MPPDBIDEConstants; import org.opengauss.mppdbide.utils.loader.MessageConfigLoader; +import org.opengauss.mppdbide.utils.logger.MPPDBIDELoggerUtility; import org.opengauss.mppdbide.view.core.sourceeditor.SQLDocumentPartitioner; import org.opengauss.mppdbide.view.core.sourceeditor.SQLSourceViewerConfig; +import org.opengauss.mppdbide.view.handler.debug.DBConnectionProvider; +import org.opengauss.mppdbide.view.handler.debug.DebugServiceHelper; +import org.opengauss.mppdbide.view.service.CoverageServiceFactory; import org.opengauss.mppdbide.view.ui.terminal.SQLTerminal; import org.opengauss.mppdbide.view.utils.ExportUtil; import org.opengauss.mppdbide.view.utils.UIElement; @@ -224,7 +234,7 @@ public class CoverageHistory extends Dialog{ // exception.getMessage()); // } - //todo + //todo CoverageVo vo = new CoverageVo(11,300, 40, Arrays.asList(1,2,4), "51%", 30, Arrays.asList(2,22,3), 10, Arrays.asList(2,22), "20%", 2506); CoverageVo vo1 = new CoverageVo(12,151, 5, Arrays.asList(1,2,4), "51%", 30, Arrays.asList(2,22,3), 20, Arrays.asList(2,22), "20%", 2506); items.add(vo); @@ -329,7 +339,7 @@ public class CoverageHistory extends Dialog{ deleteAllToolItem.setToolTipText(MessageConfigLoader.getProperty(IMessagesConstants.DELETE_Coverage_All)); deleteAllToolItem.addSelectionListener(new DeleteAllsqlClass()); } - + private final class DeletesqlClass implements SelectionListener { @Override @@ -377,11 +387,29 @@ public class CoverageHistory extends Dialog{ MessageConfigLoader.getProperty(IMessagesConstants.SURE_EXPORT_REPORT)); if (type == 0) { List list = getData(items); - //todo xjp 控制å°è¯­å¥å±•示 - LinkedHashMap map = new LinkedHashMap(); - map.put(false, "create table"); - map.put(true, "test values(id int)"); - String path = ExportUtil.exportReport(map, list); + PLSourceEditor pl = UIElement.getInstance().getVisibleSourceViewer(); + long oid = pl.getDebugObject().getOid(); + Optional vo = Optional.empty(); + try { + DebugServiceHelper.getInstance().createServiceFactory(pl.getDebugObject()); + vo = DebugServiceHelper.getInstance().getQueryService().getSourceCode(oid); + } catch (SQLException e) { + e.printStackTrace(); + } + List remarkLines= new ArrayList(); + try { + CoverageServiceFactory serviceFactory = new CoverageServiceFactory(new DBConnectionProvider(pl.getDebugObject().getDatabase())); +// remarkLines.addAll(serviceFactory.getCoverageService().getRemarkInfo(oid)); + } catch (Exception e) { + MPPDBIDELoggerUtility.error(e.getMessage()); + } + remarkLines.add(1); //xjp + Map code = new HashMap(); + if (vo.isPresent()) { + SourceCodeVo sourceCodeVo = vo.get(); + code = sourceCodeVo.getCodes(); + } + String path = ExportUtil.exportReport(code,remarkLines, list); MPPDBIDEDialogs.generateOKMessageDialog(MESSAGEDIALOGTYPE.INFORMATION, true, "æç¤º", "报告已下载到:"+path); @@ -393,7 +421,7 @@ public class CoverageHistory extends Dialog{ } } - + private List getData(TableItem[] items) { CoverageVo coverageVo = new CoverageVo(); for (TableItem item : items) { @@ -412,7 +440,7 @@ public class CoverageHistory extends Dialog{ String.valueOf(coverageVo.remarkLineNum),String.valueOf(coverageVo.remarkCoverageLineNum), coverageVo.remarkPercent,String.valueOf(coverageVo.timeUse)).collect(Collectors.toList()); } - + private final class DeleteAllsqlClass implements SelectionListener { @Override diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java index 587520d6..d7285dfa 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java @@ -6,6 +6,7 @@ import java.io.FileWriter; import java.net.URL; import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import org.eclipse.core.runtime.FileLocator; import org.jsoup.Jsoup; @@ -18,7 +19,7 @@ public final class ExportUtil { } - public static String exportReport(LinkedHashMap executeSql, List list) { + public static String exportReport(Map executeSql,List remarkLines, List list) { try { URL url = ExportUtil.class.getClassLoader().getResource("exportTemplate.html"); String path = FileLocator.toFileURL(url).getPath().substring(1); @@ -34,7 +35,7 @@ public final class ExportUtil { Element tr = excuteSql.appendElement("tr"); Element td = tr.appendElement("td"); td.text(v); - if (k) { + if (remarkLines.contains(k)) { td.addClass("bac"); } else { td.addClass("bac_nor"); -- Gitee From cd1ad2c46abc7ae8ae1c837ee84bea244d9b434d Mon Sep 17 00:00:00 2001 From: gitama Date: Wed, 20 Jul 2022 15:23:40 +0800 Subject: [PATCH 035/125] attach --- .../src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java index 0a2391eb..120f6dd3 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java @@ -31,7 +31,7 @@ public class SourceCodeVo { */ @DumpFiled public String pldbg_get_source; - @DumpFiled + private List codes; /** -- Gitee From a6c3d57d425a015686e017fc24395b02355583ed Mon Sep 17 00:00:00 2001 From: xjp Date: Wed, 20 Jul 2022 16:12:59 +0800 Subject: [PATCH 036/125] update code --- .../src/org/opengauss/mppdbide/view/ui/CoverageHistory.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java index 40c46e43..93ca1d74 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java @@ -399,15 +399,13 @@ public class CoverageHistory extends Dialog{ List remarkLines= new ArrayList(); try { CoverageServiceFactory serviceFactory = new CoverageServiceFactory(new DBConnectionProvider(pl.getDebugObject().getDatabase())); -// remarkLines.addAll(serviceFactory.getCoverageService().getRemarkInfo(oid)); + remarkLines.addAll(serviceFactory.getCoverageService().getRemarkInfo(oid)); } catch (Exception e) { MPPDBIDELoggerUtility.error(e.getMessage()); } - remarkLines.add(1); //xjp Map code = new HashMap(); if (vo.isPresent()) { - SourceCodeVo sourceCodeVo = vo.get(); - code = sourceCodeVo.getCodes(); + code = vo.get().getCodes(); } String path = ExportUtil.exportReport(code,remarkLines, list); MPPDBIDEDialogs.generateOKMessageDialog(MESSAGEDIALOGTYPE.INFORMATION, true, -- Gitee From bd6c94880ef0489b04c8c8be6cd4756ec9a30007 Mon Sep 17 00:00:00 2001 From: xjp Date: Wed, 20 Jul 2022 16:33:30 +0800 Subject: [PATCH 037/125] update code --- .../src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java index 8ffec4b6..2d48c503 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/vo/SourceCodeVo.java @@ -15,6 +15,7 @@ package org.opengauss.mppdbide.debuger.vo; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -50,6 +51,9 @@ public class SourceCodeVo { } public Map getCodes() { + if (null == codes) { + return Collections.emptyMap(); + } return codes.stream().collect(Collectors.toMap(InfoCodeVo::getLineno, InfoCodeVo::getQuery)); } -- Gitee From 8784d95380cbf7a1edd966ee1558fc96ecb1bd88 Mon Sep 17 00:00:00 2001 From: gitama Date: Wed, 20 Jul 2022 16:37:46 +0800 Subject: [PATCH 038/125] attach --- .../debuger/service/DebugService.java | 47 ++++++++----------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java index 3b41d88f..7c484a56 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java @@ -155,40 +155,30 @@ public class DebugService implements NoticeListener, EventHander, IDebugService public Optional serverDebugCallBack(List args) throws SQLException { try { serverCallBackBegin(); - boolean isPldebugger= VersionHelper.getDebuggerVersion(clientConn).isPldebugger(); - String sql =""; - if(isPldebugger) { - sql=DebugConstants.getSql(functionVo.proname, args.size()); - }else { - long oid=functionVo.oid; - sql="CALL "+functionVo.proname+" "+DebugConstants.oidSqlMap.get(oid); - } - + String sql = DebugConstants.getSql(functionVo.proname, args.size()); try (PreparedStatement ps = serverConn.getStatement(sql)) { for (int i = 1 ; i < args.size() + 1; i ++) { ps.setObject(i, args.get(i - 1)); } - if(isPldebugger) { - try (ResultSet rs = ps.executeQuery()) { - if (rs.next()) { - return Optional.ofNullable(rs.getObject(1)); + boolean isPldebugger= VersionHelper.getDebuggerVersion(clientConn).isPldebugger(); + if(!isPldebugger) { + Runnable runnable=new Runnable() { + @Override + public void run() { + SQLWarning sqlWarning=new SQLWarning("YOUR PROXY PORT ID IS:"+turnOnVo.port); + noticeReceived(sqlWarning); } - return Optional.empty(); - }catch(Exception e) { - e.printStackTrace(); - return Optional.empty(); - } - }else { - try { - SQLWarning sqlWarning=new SQLWarning("YOUR PROXY PORT ID IS:"+turnOnVo.port); - noticeReceived(sqlWarning); - ps.execute(); - }catch(Exception e) { - e.printStackTrace(); - } - return Optional.of(0); + }; + Thread thread=new Thread(runnable); + thread.start(); } + try (ResultSet rs = ps.executeQuery()) { + if (rs.next()) { + return Optional.ofNullable(rs.getObject(1)); + } + return Optional.empty(); + } } } finally { serverCallBackEnd(); @@ -567,9 +557,10 @@ public class DebugService implements NoticeListener, EventHander, IDebugService try { boolean isPldebugger= VersionHelper.getDebuggerVersion(clientConn).isPldebugger(); if(!isPldebugger) { + Thread.sleep(5000l); attachDebug(); } - } catch (SQLException e) { + } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } -- Gitee From fe3d30b1f97d5a881a60b6a41dabfb5f3321785a Mon Sep 17 00:00:00 2001 From: gitama Date: Wed, 20 Jul 2022 18:08:49 +0800 Subject: [PATCH 039/125] attach --- .../opengauss/mppdbide/debuger/service/DebugService.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java index 7c484a56..8b239589 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java @@ -401,12 +401,16 @@ public class DebugService implements NoticeListener, EventHander, IDebugService } private List getListVos(DebugConstants.DebugOpt debugOpt, Class clazz) throws SQLException { + DebugOpt opt=VersionHelper.getDebugOptByDebuggerVersion(clientConn,debugOpt); List inputParams = Arrays.asList(sessionVo.clientPort); try (PreparedStatement ps = clientConn.getDebugOptPrepareStatement( - debugOpt, inputParams)) { + opt, inputParams)) { try (ResultSet rs = ps.executeQuery()) { List results = ParseVo.parseList(rs, clazz); return results; + }catch(Exception e) { + e.printStackTrace(); + return new ArrayList(); } } } @@ -557,7 +561,7 @@ public class DebugService implements NoticeListener, EventHander, IDebugService try { boolean isPldebugger= VersionHelper.getDebuggerVersion(clientConn).isPldebugger(); if(!isPldebugger) { - Thread.sleep(5000l); + Thread.sleep(1000l); attachDebug(); } } catch (Exception e) { -- Gitee From 5a8a318a97a1876e5f5a3d252b0c520b35e819f3 Mon Sep 17 00:00:00 2001 From: xjp Date: Wed, 20 Jul 2022 18:09:29 +0800 Subject: [PATCH 040/125] update code --- .../mppdbide/view/ui/CoverageHistory.java | 47 ++++++++++++------- .../mppdbide/view/utils/ExportUtil.java | 11 ++++- .../mppdbide/view/vo/CoverageService.java | 7 ++- .../src/resources/exportTemplate.html | 7 ++- 4 files changed, 50 insertions(+), 22 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java index 93ca1d74..cdb15b12 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/ui/CoverageHistory.java @@ -6,11 +6,13 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -45,6 +47,8 @@ import org.opengauss.mppdbide.debuger.vo.dbe.InfoCodeVo; import org.opengauss.mppdbide.utils.EnvirnmentVariableValidator; import org.opengauss.mppdbide.utils.IMessagesConstants; import org.opengauss.mppdbide.utils.MPPDBIDEConstants; +import org.opengauss.mppdbide.utils.exceptions.DatabaseCriticalException; +import org.opengauss.mppdbide.utils.exceptions.DatabaseOperationException; import org.opengauss.mppdbide.utils.loader.MessageConfigLoader; import org.opengauss.mppdbide.utils.logger.MPPDBIDELoggerUtility; import org.opengauss.mppdbide.view.core.sourceeditor.SQLDocumentPartitioner; @@ -234,12 +238,15 @@ public class CoverageHistory extends Dialog{ // exception.getMessage()); // } - //todo - CoverageVo vo = new CoverageVo(11,300, 40, Arrays.asList(1,2,4), "51%", 30, Arrays.asList(2,22,3), 10, Arrays.asList(2,22), "20%", 2506); - CoverageVo vo1 = new CoverageVo(12,151, 5, Arrays.asList(1,2,4), "51%", 30, Arrays.asList(2,22,3), 20, Arrays.asList(2,22), "20%", 2506); - items.add(vo); - items.add(vo1); - setInput(items); + PLSourceEditor pl = UIElement.getInstance().getVisibleSourceViewer(); + long oid = pl.getDebugObject().getOid(); + CoverageServiceFactory serviceFactory = new CoverageServiceFactory(new DBConnectionProvider(pl.getDebugObject().getDatabase())); + try { + List ls = serviceFactory.getCoverageService().getCoverageInfoByOid(oid); + setInput(ls); + } catch (SQLException e) { + e.printStackTrace(); + } } public void setInput(List items) { @@ -389,25 +396,29 @@ public class CoverageHistory extends Dialog{ List list = getData(items); PLSourceEditor pl = UIElement.getInstance().getVisibleSourceViewer(); long oid = pl.getDebugObject().getOid(); - Optional vo = Optional.empty(); - try { - DebugServiceHelper.getInstance().createServiceFactory(pl.getDebugObject()); - vo = DebugServiceHelper.getInstance().getQueryService().getSourceCode(oid); - } catch (SQLException e) { - e.printStackTrace(); - } - List remarkLines= new ArrayList(); + Set remarkLines= new HashSet(); + Set coverageLines= new HashSet(); try { CoverageServiceFactory serviceFactory = new CoverageServiceFactory(new DBConnectionProvider(pl.getDebugObject().getDatabase())); - remarkLines.addAll(serviceFactory.getCoverageService().getRemarkInfo(oid)); + List ls = serviceFactory.getCoverageService().getCoverageInfoByOid(oid); + ls.forEach(item -> { + remarkLines.addAll(item.remarkLines); + coverageLines.addAll(item.coverageLines); + }); } catch (Exception e) { MPPDBIDELoggerUtility.error(e.getMessage()); } Map code = new HashMap(); - if (vo.isPresent()) { - code = vo.get().getCodes(); + try { + String sourceCode = pl.getDebugObject().getLatestSouceCode().getCode(); + String[] s = sourceCode.split("\n"); + for (int i=0;i executeSql,List remarkLines, List list) { + public static String exportReport(Map executeSql,Set coverageLines,Set remarkLines, List list) { try { URL url = ExportUtil.class.getClassLoader().getResource("exportTemplate.html"); String path = FileLocator.toFileURL(url).getPath().substring(1); @@ -36,7 +37,13 @@ public final class ExportUtil { Element td = tr.appendElement("td"); td.text(v); if (remarkLines.contains(k)) { - td.addClass("bac"); + td.addClass("bac_blue"); + } else { + td.addClass("bac_nor"); + } + + if (coverageLines.contains(k)) { + td.addClass("bac_red"); } else { td.addClass("bac_nor"); } diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageService.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageService.java index f403479b..ab14b531 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/vo/CoverageService.java @@ -3,6 +3,8 @@ package org.opengauss.mppdbide.view.vo; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.opengauss.mppdbide.common.IConnection; @@ -35,7 +37,10 @@ public class CoverageService implements IService{ public List getCoverageInfoByOid(long oid) throws SQLException { String sql = null; - return queryList(sql, CoverageVo.class); +// return queryList(sql, CoverageVo.class); + CoverageVo vo = new CoverageVo(11,300, 40, Arrays.asList(0), "51%", 30, Arrays.asList(1), 10, Arrays.asList(2,22), "20%", 2506); + CoverageVo vo1 = new CoverageVo(12,151, 5, Arrays.asList(2), "51%", 30, Arrays.asList(3), 20, Arrays.asList(2,22), "20%", 2506); + return Arrays.asList(vo,vo1); } public void delCoverageInfoByOid(long oid, Integer cid) throws SQLException { diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/resources/exportTemplate.html b/code/datastudio/src/org.opengauss.mppdbide.view/src/resources/exportTemplate.html index c97962dd..3b80b853 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/resources/exportTemplate.html +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/resources/exportTemplate.html @@ -33,7 +33,12 @@ border-top: none; border-bottom: none; } - .bac { + .bac_blue { + color: blue; + border-top: none; + border-bottom: none; + } + .bac_red { color: red; border-top: none; border-bottom: none; -- Gitee From 356adfa9042630b404c49f8471240d41e8636bb3 Mon Sep 17 00:00:00 2001 From: gitama Date: Wed, 20 Jul 2022 19:20:13 +0800 Subject: [PATCH 041/125] attach --- .../mppdbide/debuger/service/DebugService.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java index 8b239589..53183cd2 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/service/DebugService.java @@ -49,6 +49,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Optional; +import java.util.Timer; +import java.util.TimerTask; /** * Title: the DebugService class @@ -162,15 +164,13 @@ public class DebugService implements NoticeListener, EventHander, IDebugService } boolean isPldebugger= VersionHelper.getDebuggerVersion(clientConn).isPldebugger(); if(!isPldebugger) { - Runnable runnable=new Runnable() { - @Override - public void run() { + Timer timer = new Timer(); + timer.schedule(new TimerTask() { + public void run() { SQLWarning sqlWarning=new SQLWarning("YOUR PROXY PORT ID IS:"+turnOnVo.port); noticeReceived(sqlWarning); - } - }; - Thread thread=new Thread(runnable); - thread.start(); + } + }, 2000); } try (ResultSet rs = ps.executeQuery()) { @@ -561,11 +561,9 @@ public class DebugService implements NoticeListener, EventHander, IDebugService try { boolean isPldebugger= VersionHelper.getDebuggerVersion(clientConn).isPldebugger(); if(!isPldebugger) { - Thread.sleep(1000l); attachDebug(); } } catch (Exception e) { - // TODO Auto-generated catch block e.printStackTrace(); } } -- Gitee From d2945fe193a9931adbcace91bdecfca9ea79ede7 Mon Sep 17 00:00:00 2001 From: gitama Date: Wed, 20 Jul 2022 19:26:52 +0800 Subject: [PATCH 042/125] attach --- .../org/opengauss/mppdbide/debuger/debug/DebugConstants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java index a839522a..577fc099 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java +++ b/code/datastudio/src/org.opengauss.mppdbide.debuger/src/org/opengauss/mppdbide/debuger/debug/DebugConstants.java @@ -102,7 +102,7 @@ public class DebugConstants { DBE_CONTINUE_EXEC("DBE_PLDEBUGGER.continue", 0), DBE_ABORT_TARGET("DBE_PLDEBUGGER.abort", 0), DBE_GET_VARIABLES("", 1), - DBE_GET_STACKS("DBE_PLDEBUGGER.backtrace", 1), + DBE_GET_STACKS("DBE_PLDEBUGGER.backtrace", 0), DBE_GET_BREAKPOINTS("DBE_PLDEBUGGER.info_breakpoints", 1), DBE_DROP_BREAKPOINT("DBE_PLDEBUGGER.delete_breakpoint", 2), DBE_SET_BREAKPOINT("DBE_PLDEBUGGER.add_breakpoint", 3), -- Gitee From 9a641b5eba6ab6c7b41df563f3e6be46f20d1778 Mon Sep 17 00:00:00 2001 From: xjp Date: Wed, 20 Jul 2022 19:44:11 +0800 Subject: [PATCH 043/125] update code --- .../src/org/opengauss/mppdbide/view/utils/ExportUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java index 408c0eae..1e425c84 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/org/opengauss/mppdbide/view/utils/ExportUtil.java @@ -49,7 +49,7 @@ public final class ExportUtil { } }); String s = parse.outerHtml(); - String outPath = path.substring(0, path.lastIndexOf("/")+1)+"report_"+ System.currentTimeMillis()+".html"; + String outPath = path.substring(0, path.indexOf("/")+1)+"report_"+ System.currentTimeMillis()+".html"; loadStr(outPath, s); return outPath; } catch (Exception e) { -- Gitee From bf7dd75c35f1a46a42cdf849f0cf2273f800c031 Mon Sep 17 00:00:00 2001 From: gitama Date: Wed, 20 Jul 2022 19:46:16 +0800 Subject: [PATCH 044/125] attach --- .../src/resources/exportTemplate.html | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/code/datastudio/src/org.opengauss.mppdbide.view/src/resources/exportTemplate.html b/code/datastudio/src/org.opengauss.mppdbide.view/src/resources/exportTemplate.html index 3b80b853..c3cd74d4 100644 --- a/code/datastudio/src/org.opengauss.mppdbide.view/src/resources/exportTemplate.html +++ b/code/datastudio/src/org.opengauss.mppdbide.view/src/resources/exportTemplate.html @@ -1,32 +1,32 @@ - - - - - - - - -
执行语å¥
- - - - - - - - - - - - - - - - -
总行数执行行数总覆盖率标志行数标记执行行数标志覆盖率执行时间(毫秒)
+ + + + + + + + +
Ö´ÐÐÓï¾ä
+ + + + + + + + + + + + + + + + +
×ÜÐÐÊýÖ´ÐÐÐÐÊý×ܸ²¸ÇÂʱêÖ¾ÐÐÊý±ê¼ÇÖ´ÐÐÐÐÊý±êÖ¾¸²¸ÇÂÊÖ´ÐÐʱ¼ä(ºÁÃë)