From 3502b59785b6fa1f8155323af18935c4069bab8d Mon Sep 17 00:00:00 2001 From: serge-rider Date: Sat, 30 Jun 2018 00:53:53 +0300 Subject: [PATCH] #3713 MAriaDB broken privilege names fix --- .../mysql/edit/MySQLCommandGrantPrivilege.java | 2 +- .../dbeaver/ext/mysql/model/MySQLPrivilege.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/edit/MySQLCommandGrantPrivilege.java b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/edit/MySQLCommandGrantPrivilege.java index e760fc4652..57b3966c48 100644 --- a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/edit/MySQLCommandGrantPrivilege.java +++ b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/edit/MySQLCommandGrantPrivilege.java @@ -58,7 +58,7 @@ public class MySQLCommandGrantPrivilege extends DBECommandAbstract { @Override public DBEPersistAction[] getPersistActions(Map options) { - String privName = privilege.getName(); + String privName = privilege.getFixedPrivilegeName(); String grantScript = "GRANT " + privName + //$NON-NLS-1$ " ON " + getObjectName() + //$NON-NLS-1$ " TO " + getObject().getFullName() + ""; //$NON-NLS-1$ //$NON-NLS-2$ diff --git a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLPrivilege.java b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLPrivilege.java index 5327adc04c..b9f6747aaa 100644 --- a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLPrivilege.java +++ b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLPrivilege.java @@ -26,6 +26,8 @@ import org.jkiss.dbeaver.model.meta.Property; import org.jkiss.dbeaver.model.struct.DBSObject; import java.sql.ResultSet; +import java.util.HashMap; +import java.util.Map; /** * MySQLPrivilege @@ -37,6 +39,12 @@ public class MySQLPrivilege implements DBAPrivilege public static final String GRANT_PRIVILEGE = "Grant Option"; public static final String ALL_PRIVILEGES = "All Privileges"; + public static final Map BAD_PRIV_NAME_MAP = new HashMap<>(); + + static { + BAD_PRIV_NAME_MAP.put("Delete versioning rows", "Delete history"); + } + public enum Kind { OBJECTS, DDL, @@ -79,6 +87,14 @@ public class MySQLPrivilege implements DBAPrivilege return name; } + public String getFixedPrivilegeName() { + String fixedName = BAD_PRIV_NAME_MAP.get(name); + if (fixedName != null) { + return fixedName; + } + return name; + } + @Property(viewable = true, order = 2) public String getContext() { -- GitLab