You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by jo...@apache.org on 2019/03/21 22:31:15 UTC

[impala] 02/04: IMPALA-8326: Fix CreateDropRoleStmt::toSql

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

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

commit 602a9eb7193b81a3b7f8a05e044a70831da06714
Author: Austin Nobis <an...@cloudera.com>
AuthorDate: Wed Mar 20 10:34:30 2019 -0700

    IMPALA-8326: Fix CreateDropRoleStmt::toSql
    
    Previously the CreateDropRoleStmt::toSql method would incorrectly
    order the stringified SQL statement as <role_name> ROLE CREATE/DROP.
    This patch will properly order the statementas CREATE/DROP ROLE
    <role_name>.
    
    Testing:
    - Ran all FE tests
    - Added a new test to ToSqlTest for CreateDropRoleStmt
    
    Change-Id: I25e4e1f680a6992779a47b5e6ad5092f27ba390a
    Reviewed-on: http://gerrit.cloudera.org:8080/12813
    Reviewed-by: Fredy Wijaya <fw...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 .../org/apache/impala/analysis/CreateDropRoleStmt.java     |  2 +-
 fe/src/test/java/org/apache/impala/analysis/ToSqlTest.java | 14 ++++++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/fe/src/main/java/org/apache/impala/analysis/CreateDropRoleStmt.java b/fe/src/main/java/org/apache/impala/analysis/CreateDropRoleStmt.java
index f316fa4..fb18d41 100644
--- a/fe/src/main/java/org/apache/impala/analysis/CreateDropRoleStmt.java
+++ b/fe/src/main/java/org/apache/impala/analysis/CreateDropRoleStmt.java
@@ -38,7 +38,7 @@ public class CreateDropRoleStmt extends AuthorizationStmt {
 
   @Override
   public String toSql(ToSqlOptions options) {
-    return String.format("%s ROLE %s", roleName_, isDropRole_ ? "DROP" : "CREATE");
+    return String.format("%s ROLE %s", isDropRole_ ? "DROP" : "CREATE", roleName_);
   }
 
   public TCreateDropRoleParams toThrift() {
diff --git a/fe/src/test/java/org/apache/impala/analysis/ToSqlTest.java b/fe/src/test/java/org/apache/impala/analysis/ToSqlTest.java
index 6bc048f..0e4ee1d 100644
--- a/fe/src/test/java/org/apache/impala/analysis/ToSqlTest.java
+++ b/fe/src/test/java/org/apache/impala/analysis/ToSqlTest.java
@@ -1470,6 +1470,20 @@ public class ToSqlTest extends FrontendTestBase {
         "SELECT * FROM t");
   }
 
+  @Test
+  public void testCreateDropRole() {
+    String testRole = "test_role";
+    AnalysisContext ctx = createAnalysisCtx(createAuthorizationConfig());
+
+    testToSql(ctx, String.format("CREATE ROLE %s", testRole));
+    try {
+      catalog_.addRole(testRole);
+      testToSql(ctx, String.format("DROP ROLE %s", testRole));
+    } finally {
+      catalog_.removeRole(testRole);
+    }
+  }
+
   /**
    * Tests invalidate statements are output correctly.
    */