You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2021/08/26 16:28:34 UTC

[shardingsphere] branch master updated: Compatible mysql driver 8.0.11 version (#12035)

This is an automated email from the ASF dual-hosted git repository.

zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 859d939  Compatible mysql driver 8.0.11 version (#12035)
859d939 is described below

commit 859d939e3527bd258bdc3dc95165cb8d8d209739
Author: zhaojinchao <33...@users.noreply.github.com>
AuthorDate: Fri Aug 27 00:28:02 2021 +0800

    Compatible mysql driver 8.0.11 version (#12035)
---
 .../text/MySQLTextResultSetRowPacketTest.java      |  3 +-
 .../builder/dialect/MySQLPrivilegeHandler.java     | 65 ++++++++-------
 .../authority/checker/AuthorityCheckerTest.java    |  8 +-
 .../NativeAuthorityProviderAlgorithmTest.java      | 96 +++++++++++-----------
 .../builder/StoragePrivilegeBuilderTest.java       | 96 +++++++++++-----------
 .../builder/dialect/MySQLPrivilegeHandlerTest.java | 96 +++++++++++-----------
 6 files changed, 183 insertions(+), 181 deletions(-)

diff --git a/shardingsphere-db-protocol/shardingsphere-db-protocol-mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/text/MySQLTextResultSetRowPacketTest.java b/shardingsphere-db-protocol/shardingsphere-db-protocol-mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/text/MySQLTextResultSetRowPacketTest.java
index baa2ee7..bc7072e 100644
--- a/shardingsphere-db-protocol/shardingsphere-db-protocol-mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/text/MySQLTextResultSetRowPacketTest.java
+++ b/shardingsphere-db-protocol/shardingsphere-db-protocol-mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/text/MySQLTextResultSetRowPacketTest.java
@@ -81,8 +81,7 @@ public final class MySQLTextResultSetRowPacketTest {
     @Test
     public void assertLocalDateTime() {
         String localDateTimeStr = "2021-08-23T17:30:30";
-        LocalDateTime time = LocalDateTime.parse(localDateTimeStr,
-                DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"));
+        LocalDateTime time = LocalDateTime.parse(localDateTimeStr, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"));
         MySQLTextResultSetRowPacket actual = new MySQLTextResultSetRowPacket(1, Arrays.asList(time));
         actual.write(payload);
         verify(payload).writeStringLenenc(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.parse(localDateTimeStr, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"))));
diff --git a/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/main/java/org/apache/shardingsphere/authority/provider/natived/builder/dialect/MySQLPrivilegeHandler.java b/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/main/java/org/apache/shardingsphere/authority/provider/natived/builder/dialect/MySQLPrivilegeHandler.java
index b8c1e67..ee6ea4b 100644
--- a/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/main/java/org/apache/shardingsphere/authority/provider/natived/builder/dialect/MySQLPrivilegeHandler.java
+++ b/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/main/java/org/apache/shardingsphere/authority/provider/natived/builder/dialect/MySQLPrivilegeHandler.java
@@ -232,45 +232,48 @@ public final class MySQLPrivilegeHandler implements StoragePrivilegeHandler {
     
     private Collection<PrivilegeType> loadAdministrativePrivileges(final ResultSet resultSet) throws SQLException {
         Collection<PrivilegeType> result = new LinkedList<>();
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Super_priv"), PrivilegeType.SUPER, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Reload_priv"), PrivilegeType.RELOAD, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Shutdown_priv"), PrivilegeType.SHUTDOWN, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Process_priv"), PrivilegeType.PROCESS, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("File_priv"), PrivilegeType.FILE, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Show_db_priv"), PrivilegeType.SHOW_DB, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Repl_slave_priv"), PrivilegeType.REPL_SLAVE, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Repl_client_priv"), PrivilegeType.REPL_CLIENT, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Create_user_priv"), PrivilegeType.CREATE_USER, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Create_tablespace_priv"), PrivilegeType.CREATE_TABLESPACE, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Super_priv"), PrivilegeType.SUPER, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Reload_priv"), PrivilegeType.RELOAD, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Shutdown_priv"), PrivilegeType.SHUTDOWN, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Process_priv"), PrivilegeType.PROCESS, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("File_priv"), PrivilegeType.FILE, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Show_db_priv"), PrivilegeType.SHOW_DB, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Repl_slave_priv"), PrivilegeType.REPL_SLAVE, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Repl_client_priv"), PrivilegeType.REPL_CLIENT, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Create_user_priv"), PrivilegeType.CREATE_USER, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Create_tablespace_priv"), PrivilegeType.CREATE_TABLESPACE, result);
         return result;
     }
     
     private Collection<PrivilegeType> loadDatabaseGlobalPrivileges(final ResultSet resultSet) throws SQLException {
         Collection<PrivilegeType> result = new LinkedList<>();
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Select_priv"), PrivilegeType.SELECT, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Insert_priv"), PrivilegeType.INSERT, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Update_priv"), PrivilegeType.UPDATE, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Delete_priv"), PrivilegeType.DELETE, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Create_priv"), PrivilegeType.CREATE, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Alter_priv"), PrivilegeType.ALTER, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Drop_priv"), PrivilegeType.DROP, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Grant_priv"), PrivilegeType.GRANT, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Index_priv"), PrivilegeType.INDEX, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("References_priv"), PrivilegeType.REFERENCES, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Create_tmp_table_priv"), PrivilegeType.CREATE_TMP, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Lock_tables_priv"), PrivilegeType.LOCK_TABLES, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Execute_priv"), PrivilegeType.EXECUTE, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Create_view_priv"), PrivilegeType.CREATE_VIEW, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Show_view_priv"), PrivilegeType.SHOW_VIEW, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Create_routine_priv"), PrivilegeType.CREATE_PROC, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Alter_routine_priv"), PrivilegeType.ALTER_PROC, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Event_priv"), PrivilegeType.EVENT, result);
-        addToPrivilegeTypesIfPresent(resultSet.getBoolean("Trigger_priv"), PrivilegeType.TRIGGER, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Select_priv"), PrivilegeType.SELECT, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Insert_priv"), PrivilegeType.INSERT, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Update_priv"), PrivilegeType.UPDATE, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Delete_priv"), PrivilegeType.DELETE, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Create_priv"), PrivilegeType.CREATE, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Alter_priv"), PrivilegeType.ALTER, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Drop_priv"), PrivilegeType.DROP, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Grant_priv"), PrivilegeType.GRANT, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Index_priv"), PrivilegeType.INDEX, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("References_priv"), PrivilegeType.REFERENCES, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Create_tmp_table_priv"), PrivilegeType.CREATE_TMP, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Lock_tables_priv"), PrivilegeType.LOCK_TABLES, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Execute_priv"), PrivilegeType.EXECUTE, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Create_view_priv"), PrivilegeType.CREATE_VIEW, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Show_view_priv"), PrivilegeType.SHOW_VIEW, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Create_routine_priv"), PrivilegeType.CREATE_PROC, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Alter_routine_priv"), PrivilegeType.ALTER_PROC, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Event_priv"), PrivilegeType.EVENT, result);
+        addToPrivilegeTypesIfPresent(resultSet.getObject("Trigger_priv"), PrivilegeType.TRIGGER, result);
         return result;
     }
     
-    private void addToPrivilegeTypesIfPresent(final boolean hasPrivilege, final PrivilegeType privilegeType, final Collection<PrivilegeType> target) {
-        if (hasPrivilege) {
+    private void addToPrivilegeTypesIfPresent(final Object hasPrivilege, final PrivilegeType privilegeType, final Collection<PrivilegeType> target) {
+        if (hasPrivilege instanceof String && "Y".equals(hasPrivilege)) {
+            target.add(privilegeType);
+        }
+        if (hasPrivilege instanceof Boolean && (boolean) hasPrivilege) {
             target.add(privilegeType);
         }
     }
diff --git a/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/checker/AuthorityCheckerTest.java b/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/checker/AuthorityCheckerTest.java
index 891a46d..1550fdb 100644
--- a/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/checker/AuthorityCheckerTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/checker/AuthorityCheckerTest.java
@@ -159,10 +159,10 @@ public final class AuthorityCheckerTest {
         ResultSet result = mock(ResultSet.class);
         when(result.next()).thenReturn(true, false);
         when(result.getString("Db")).thenReturn("db0");
-        when(result.getBoolean("Select_priv")).thenReturn(true);
-        when(result.getBoolean("Insert_priv")).thenReturn(true);
-        when(result.getBoolean("Update_priv")).thenReturn(true);
-        when(result.getBoolean("Delete_priv")).thenReturn(true);
+        when(result.getObject("Select_priv")).thenReturn(true);
+        when(result.getObject("Insert_priv")).thenReturn(true);
+        when(result.getObject("Update_priv")).thenReturn(true);
+        when(result.getObject("Delete_priv")).thenReturn(true);
         when(result.getString("user")).thenReturn("root");
         when(result.getString("host")).thenReturn("localhost");
         return result;
diff --git a/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/provider/natived/NativeAuthorityProviderAlgorithmTest.java b/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/provider/natived/NativeAuthorityProviderAlgorithmTest.java
index 8554325..73187d5 100644
--- a/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/provider/natived/NativeAuthorityProviderAlgorithmTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/provider/natived/NativeAuthorityProviderAlgorithmTest.java
@@ -124,35 +124,35 @@ public final class NativeAuthorityProviderAlgorithmTest {
     private ResultSet mockGlobalPrivilegeResultSet() throws SQLException {
         ResultSet result = mock(ResultSet.class);
         when(result.next()).thenReturn(true, true, false, true, true, false);
-        when(result.getBoolean("Super_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Reload_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Shutdown_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Process_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("File_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Show_db_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Repl_slave_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Repl_client_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Create_user_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Create_tablespace_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Select_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Insert_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Update_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Delete_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Create_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Alter_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Drop_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Grant_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Index_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("References_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Create_tmp_table_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Lock_tables_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Execute_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Create_view_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Show_view_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Create_routine_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Alter_routine_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Event_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Trigger_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Super_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Reload_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Shutdown_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Process_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("File_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Show_db_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Repl_slave_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Repl_client_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Create_user_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Create_tablespace_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Select_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Insert_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Update_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Delete_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Create_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Alter_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Drop_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Grant_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Index_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("References_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Create_tmp_table_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Lock_tables_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Execute_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Create_view_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Show_view_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Create_routine_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Alter_routine_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Event_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Trigger_priv")).thenReturn(false, false, false, false);
         when(result.getString("user")).thenReturn("root", "mysql.sys", "root", "mysql.sys");
         when(result.getString("host")).thenReturn("localhost");
         return result;
@@ -162,25 +162,25 @@ public final class NativeAuthorityProviderAlgorithmTest {
         ResultSet result = mock(ResultSet.class);
         when(result.next()).thenReturn(true, false);
         when(result.getString("Db")).thenReturn("sys");
-        when(result.getBoolean("Select_priv")).thenReturn(false);
-        when(result.getBoolean("Insert_priv")).thenReturn(false);
-        when(result.getBoolean("Update_priv")).thenReturn(false);
-        when(result.getBoolean("Delete_priv")).thenReturn(false);
-        when(result.getBoolean("Create_priv")).thenReturn(false);
-        when(result.getBoolean("Alter_priv")).thenReturn(false);
-        when(result.getBoolean("Drop_priv")).thenReturn(false);
-        when(result.getBoolean("Grant_priv")).thenReturn(false);
-        when(result.getBoolean("Index_priv")).thenReturn(false);
-        when(result.getBoolean("References_priv")).thenReturn(false);
-        when(result.getBoolean("Create_tmp_table_priv")).thenReturn(false);
-        when(result.getBoolean("Lock_tables_priv")).thenReturn(false);
-        when(result.getBoolean("Execute_priv")).thenReturn(false);
-        when(result.getBoolean("Create_view_priv")).thenReturn(false);
-        when(result.getBoolean("Show_view_priv")).thenReturn(false);
-        when(result.getBoolean("Create_routine_priv")).thenReturn(false);
-        when(result.getBoolean("Alter_routine_priv")).thenReturn(false);
-        when(result.getBoolean("Event_priv")).thenReturn(false);
-        when(result.getBoolean("Trigger_priv")).thenReturn(true);
+        when(result.getObject("Select_priv")).thenReturn(false);
+        when(result.getObject("Insert_priv")).thenReturn(false);
+        when(result.getObject("Update_priv")).thenReturn(false);
+        when(result.getObject("Delete_priv")).thenReturn(false);
+        when(result.getObject("Create_priv")).thenReturn(false);
+        when(result.getObject("Alter_priv")).thenReturn(false);
+        when(result.getObject("Drop_priv")).thenReturn(false);
+        when(result.getObject("Grant_priv")).thenReturn(false);
+        when(result.getObject("Index_priv")).thenReturn(false);
+        when(result.getObject("References_priv")).thenReturn(false);
+        when(result.getObject("Create_tmp_table_priv")).thenReturn(false);
+        when(result.getObject("Lock_tables_priv")).thenReturn(false);
+        when(result.getObject("Execute_priv")).thenReturn(false);
+        when(result.getObject("Create_view_priv")).thenReturn(false);
+        when(result.getObject("Show_view_priv")).thenReturn(false);
+        when(result.getObject("Create_routine_priv")).thenReturn(false);
+        when(result.getObject("Alter_routine_priv")).thenReturn(false);
+        when(result.getObject("Event_priv")).thenReturn(false);
+        when(result.getObject("Trigger_priv")).thenReturn(true);
         when(result.getString("user")).thenReturn("mysql.sys");
         when(result.getString("host")).thenReturn("localhost");
         return result;
diff --git a/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/provider/natived/builder/StoragePrivilegeBuilderTest.java b/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/provider/natived/builder/StoragePrivilegeBuilderTest.java
index 9a7d532..ebc2a81 100644
--- a/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/provider/natived/builder/StoragePrivilegeBuilderTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/provider/natived/builder/StoragePrivilegeBuilderTest.java
@@ -100,35 +100,35 @@ public final class StoragePrivilegeBuilderTest {
     private ResultSet mockGlobalPrivilegeResultSet() throws SQLException {
         ResultSet result = mock(ResultSet.class);
         when(result.next()).thenReturn(true, true, false, true, true, false);
-        when(result.getBoolean("Super_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Reload_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Shutdown_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Process_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("File_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Show_db_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Repl_slave_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Repl_client_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Create_user_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Create_tablespace_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Select_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Insert_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Update_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Delete_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Create_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Alter_priv")).thenReturn(true, false, true, false);
-        when(result.getBoolean("Drop_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Grant_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Index_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("References_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Create_tmp_table_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Lock_tables_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Execute_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Create_view_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Show_view_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Create_routine_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Alter_routine_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Event_priv")).thenReturn(false, false, false, false);
-        when(result.getBoolean("Trigger_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Super_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Reload_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Shutdown_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Process_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("File_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Show_db_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Repl_slave_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Repl_client_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Create_user_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Create_tablespace_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Select_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Insert_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Update_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Delete_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Create_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Alter_priv")).thenReturn(true, false, true, false);
+        when(result.getObject("Drop_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Grant_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Index_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("References_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Create_tmp_table_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Lock_tables_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Execute_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Create_view_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Show_view_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Create_routine_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Alter_routine_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Event_priv")).thenReturn(false, false, false, false);
+        when(result.getObject("Trigger_priv")).thenReturn(false, false, false, false);
         when(result.getString("user")).thenReturn("root", "mysql.sys", "root", "mysql.sys");
         when(result.getString("host")).thenReturn("localhost");
         return result;
@@ -138,25 +138,25 @@ public final class StoragePrivilegeBuilderTest {
         ResultSet result = mock(ResultSet.class);
         when(result.next()).thenReturn(true, false);
         when(result.getString("Db")).thenReturn("sys");
-        when(result.getBoolean("Select_priv")).thenReturn(false);
-        when(result.getBoolean("Insert_priv")).thenReturn(false);
-        when(result.getBoolean("Update_priv")).thenReturn(false);
-        when(result.getBoolean("Delete_priv")).thenReturn(false);
-        when(result.getBoolean("Create_priv")).thenReturn(false);
-        when(result.getBoolean("Alter_priv")).thenReturn(false);
-        when(result.getBoolean("Drop_priv")).thenReturn(false);
-        when(result.getBoolean("Grant_priv")).thenReturn(false);
-        when(result.getBoolean("Index_priv")).thenReturn(false);
-        when(result.getBoolean("References_priv")).thenReturn(false);
-        when(result.getBoolean("Create_tmp_table_priv")).thenReturn(false);
-        when(result.getBoolean("Lock_tables_priv")).thenReturn(false);
-        when(result.getBoolean("Execute_priv")).thenReturn(false);
-        when(result.getBoolean("Create_view_priv")).thenReturn(false);
-        when(result.getBoolean("Show_view_priv")).thenReturn(false);
-        when(result.getBoolean("Create_routine_priv")).thenReturn(false);
-        when(result.getBoolean("Alter_routine_priv")).thenReturn(false);
-        when(result.getBoolean("Event_priv")).thenReturn(false);
-        when(result.getBoolean("Trigger_priv")).thenReturn(true);
+        when(result.getObject("Select_priv")).thenReturn(false);
+        when(result.getObject("Insert_priv")).thenReturn(false);
+        when(result.getObject("Update_priv")).thenReturn(false);
+        when(result.getObject("Delete_priv")).thenReturn(false);
+        when(result.getObject("Create_priv")).thenReturn(false);
+        when(result.getObject("Alter_priv")).thenReturn(false);
+        when(result.getObject("Drop_priv")).thenReturn(false);
+        when(result.getObject("Grant_priv")).thenReturn(false);
+        when(result.getObject("Index_priv")).thenReturn(false);
+        when(result.getObject("References_priv")).thenReturn(false);
+        when(result.getObject("Create_tmp_table_priv")).thenReturn(false);
+        when(result.getObject("Lock_tables_priv")).thenReturn(false);
+        when(result.getObject("Execute_priv")).thenReturn(false);
+        when(result.getObject("Create_view_priv")).thenReturn(false);
+        when(result.getObject("Show_view_priv")).thenReturn(false);
+        when(result.getObject("Create_routine_priv")).thenReturn(false);
+        when(result.getObject("Alter_routine_priv")).thenReturn(false);
+        when(result.getObject("Event_priv")).thenReturn(false);
+        when(result.getObject("Trigger_priv")).thenReturn(true);
         when(result.getString("user")).thenReturn("mysql.sys");
         when(result.getString("host")).thenReturn("localhost");
         return result;
diff --git a/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/provider/natived/builder/dialect/MySQLPrivilegeHandlerTest.java b/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/provider/natived/builder/dialect/MySQLPrivilegeHandlerTest.java
index d673bcc..fe17c0c 100644
--- a/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/provider/natived/builder/dialect/MySQLPrivilegeHandlerTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-authority/shardingsphere-infra-authority-common/src/test/java/org/apache/shardingsphere/authority/provider/natived/builder/dialect/MySQLPrivilegeHandlerTest.java
@@ -131,35 +131,35 @@ public final class MySQLPrivilegeHandlerTest {
     private ResultSet mockGlobalPrivilegeResultSet() throws SQLException {
         ResultSet result = mock(ResultSet.class);
         when(result.next()).thenReturn(true, true, false);
-        when(result.getBoolean("Super_priv")).thenReturn(true, false);
-        when(result.getBoolean("Reload_priv")).thenReturn(true, false);
-        when(result.getBoolean("Shutdown_priv")).thenReturn(true, false);
-        when(result.getBoolean("Process_priv")).thenReturn(false, false);
-        when(result.getBoolean("File_priv")).thenReturn(false, false);
-        when(result.getBoolean("Show_db_priv")).thenReturn(false, false);
-        when(result.getBoolean("Repl_slave_priv")).thenReturn(false, false);
-        when(result.getBoolean("Repl_client_priv")).thenReturn(false, false);
-        when(result.getBoolean("Create_user_priv")).thenReturn(false, false);
-        when(result.getBoolean("Create_tablespace_priv")).thenReturn(false, false);
-        when(result.getBoolean("Select_priv")).thenReturn(true, false);
-        when(result.getBoolean("Insert_priv")).thenReturn(true, false);
-        when(result.getBoolean("Update_priv")).thenReturn(true, false);
-        when(result.getBoolean("Delete_priv")).thenReturn(true, false);
-        when(result.getBoolean("Create_priv")).thenReturn(true, false);
-        when(result.getBoolean("Alter_priv")).thenReturn(true, false);
-        when(result.getBoolean("Drop_priv")).thenReturn(false, false);
-        when(result.getBoolean("Grant_priv")).thenReturn(false, false);
-        when(result.getBoolean("Index_priv")).thenReturn(false, false);
-        when(result.getBoolean("References_priv")).thenReturn(false, false);
-        when(result.getBoolean("Create_tmp_table_priv")).thenReturn(false, false);
-        when(result.getBoolean("Lock_tables_priv")).thenReturn(false, false);
-        when(result.getBoolean("Execute_priv")).thenReturn(false, false);
-        when(result.getBoolean("Create_view_priv")).thenReturn(false, false);
-        when(result.getBoolean("Show_view_priv")).thenReturn(false, false);
-        when(result.getBoolean("Create_routine_priv")).thenReturn(false, false);
-        when(result.getBoolean("Alter_routine_priv")).thenReturn(false, false);
-        when(result.getBoolean("Event_priv")).thenReturn(false, false);
-        when(result.getBoolean("Trigger_priv")).thenReturn(false, false);
+        when(result.getObject("Super_priv")).thenReturn(true, false);
+        when(result.getObject("Reload_priv")).thenReturn(true, false);
+        when(result.getObject("Shutdown_priv")).thenReturn(true, false);
+        when(result.getObject("Process_priv")).thenReturn(false, false);
+        when(result.getObject("File_priv")).thenReturn(false, false);
+        when(result.getObject("Show_db_priv")).thenReturn(false, false);
+        when(result.getObject("Repl_slave_priv")).thenReturn(false, false);
+        when(result.getObject("Repl_client_priv")).thenReturn(false, false);
+        when(result.getObject("Create_user_priv")).thenReturn(false, false);
+        when(result.getObject("Create_tablespace_priv")).thenReturn(false, false);
+        when(result.getObject("Select_priv")).thenReturn(true, false);
+        when(result.getObject("Insert_priv")).thenReturn(true, false);
+        when(result.getObject("Update_priv")).thenReturn(true, false);
+        when(result.getObject("Delete_priv")).thenReturn(true, false);
+        when(result.getObject("Create_priv")).thenReturn(true, false);
+        when(result.getObject("Alter_priv")).thenReturn(true, false);
+        when(result.getObject("Drop_priv")).thenReturn(false, false);
+        when(result.getObject("Grant_priv")).thenReturn(false, false);
+        when(result.getObject("Index_priv")).thenReturn(false, false);
+        when(result.getObject("References_priv")).thenReturn(false, false);
+        when(result.getObject("Create_tmp_table_priv")).thenReturn(false, false);
+        when(result.getObject("Lock_tables_priv")).thenReturn(false, false);
+        when(result.getObject("Execute_priv")).thenReturn(false, false);
+        when(result.getObject("Create_view_priv")).thenReturn(false, false);
+        when(result.getObject("Show_view_priv")).thenReturn(false, false);
+        when(result.getObject("Create_routine_priv")).thenReturn(false, false);
+        when(result.getObject("Alter_routine_priv")).thenReturn(false, false);
+        when(result.getObject("Event_priv")).thenReturn(false, false);
+        when(result.getObject("Trigger_priv")).thenReturn(false, false);
         when(result.getString("user")).thenReturn("root", "mysql.sys");
         when(result.getString("host")).thenReturn("localhost", "localhost");
         return result;
@@ -169,25 +169,25 @@ public final class MySQLPrivilegeHandlerTest {
         ResultSet result = mock(ResultSet.class);
         when(result.next()).thenReturn(true, false);
         when(result.getString("Db")).thenReturn("sys");
-        when(result.getBoolean("Select_priv")).thenReturn(false);
-        when(result.getBoolean("Insert_priv")).thenReturn(false);
-        when(result.getBoolean("Update_priv")).thenReturn(false);
-        when(result.getBoolean("Delete_priv")).thenReturn(false);
-        when(result.getBoolean("Create_priv")).thenReturn(false);
-        when(result.getBoolean("Alter_priv")).thenReturn(false);
-        when(result.getBoolean("Drop_priv")).thenReturn(false);
-        when(result.getBoolean("Grant_priv")).thenReturn(false);
-        when(result.getBoolean("Index_priv")).thenReturn(false);
-        when(result.getBoolean("References_priv")).thenReturn(false);
-        when(result.getBoolean("Create_tmp_table_priv")).thenReturn(false);
-        when(result.getBoolean("Lock_tables_priv")).thenReturn(false);
-        when(result.getBoolean("Execute_priv")).thenReturn(false);
-        when(result.getBoolean("Create_view_priv")).thenReturn(false);
-        when(result.getBoolean("Show_view_priv")).thenReturn(false);
-        when(result.getBoolean("Create_routine_priv")).thenReturn(false);
-        when(result.getBoolean("Alter_routine_priv")).thenReturn(false);
-        when(result.getBoolean("Event_priv")).thenReturn(false);
-        when(result.getBoolean("Trigger_priv")).thenReturn(true);
+        when(result.getObject("Select_priv")).thenReturn(false);
+        when(result.getObject("Insert_priv")).thenReturn(false);
+        when(result.getObject("Update_priv")).thenReturn(false);
+        when(result.getObject("Delete_priv")).thenReturn(false);
+        when(result.getObject("Create_priv")).thenReturn(false);
+        when(result.getObject("Alter_priv")).thenReturn(false);
+        when(result.getObject("Drop_priv")).thenReturn(false);
+        when(result.getObject("Grant_priv")).thenReturn(false);
+        when(result.getObject("Index_priv")).thenReturn(false);
+        when(result.getObject("References_priv")).thenReturn(false);
+        when(result.getObject("Create_tmp_table_priv")).thenReturn(false);
+        when(result.getObject("Lock_tables_priv")).thenReturn(false);
+        when(result.getObject("Execute_priv")).thenReturn(false);
+        when(result.getObject("Create_view_priv")).thenReturn(false);
+        when(result.getObject("Show_view_priv")).thenReturn(false);
+        when(result.getObject("Create_routine_priv")).thenReturn(false);
+        when(result.getObject("Alter_routine_priv")).thenReturn(false);
+        when(result.getObject("Event_priv")).thenReturn(false);
+        when(result.getObject("Trigger_priv")).thenReturn(true);
         when(result.getString("user")).thenReturn("mysql.sys");
         when(result.getString("host")).thenReturn("localhost");
         return result;