You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by kr...@apache.org on 2022/09/13 17:36:47 UTC

[hive] branch master updated: HIVE-26534: GROUPING() function errors out due to case-sensitivity of function name (Soumyakanti Das, reviewed by Krisztian Kasa, Ayush Saxena)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new cb8e8ade005 HIVE-26534: GROUPING() function errors out due to case-sensitivity of function name (Soumyakanti Das, reviewed by Krisztian Kasa, Ayush Saxena)
cb8e8ade005 is described below

commit cb8e8ade00598bbd16b4f2f242544ea04922f73d
Author: Soumyakanti Das <so...@cloudera.com>
AuthorDate: Tue Sep 13 23:06:39 2022 +0530

    HIVE-26534: GROUPING() function errors out due to case-sensitivity of function name (Soumyakanti Das, reviewed by Krisztian Kasa, Ayush Saxena)
---
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java     |  2 +-
 .../clientpositive/grouping_upper_lower_case.q     |  8 ++++++
 .../llap/grouping_upper_lower_case.q.out           | 32 ++++++++++++++++++++++
 3 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
index ce498a869f3..3e12bf4efd0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
@@ -3359,7 +3359,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
         ASTNode root = (ASTNode) t;
         if (root.getType() == HiveParser.TOK_FUNCTION) {
           ASTNode func = (ASTNode) ParseDriver.adaptor.getChild(root, 0);
-          if (func.getText().equals("grouping") && func.getChildCount() == 0) {
+          if ("grouping".equalsIgnoreCase(func.getText()) && func.getChildCount() == 0) {
             int numberOperands = ParseDriver.adaptor.getChildCount(root);
             // We implement this logic using replaceChildren instead of replacing
             // the root node itself because windowing logic stores multiple
diff --git a/ql/src/test/queries/clientpositive/grouping_upper_lower_case.q b/ql/src/test/queries/clientpositive/grouping_upper_lower_case.q
new file mode 100644
index 00000000000..91808d2d02b
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/grouping_upper_lower_case.q
@@ -0,0 +1,8 @@
+
+create table test(
+    col1 string,
+    col2 int
+);
+
+select grouping(col2) from test group by col2 with rollup;
+select GROUPING(col2) from test group by col2 with rollup;
diff --git a/ql/src/test/results/clientpositive/llap/grouping_upper_lower_case.q.out b/ql/src/test/results/clientpositive/llap/grouping_upper_lower_case.q.out
new file mode 100644
index 00000000000..a53f388b81d
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/grouping_upper_lower_case.q.out
@@ -0,0 +1,32 @@
+PREHOOK: query: create table test(
+    col1 string,
+    col2 int
+)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@test
+POSTHOOK: query: create table test(
+    col1 string,
+    col2 int
+)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@test
+PREHOOK: query: select grouping(col2) from test group by col2 with rollup
+PREHOOK: type: QUERY
+PREHOOK: Input: default@test
+#### A masked pattern was here ####
+POSTHOOK: query: select grouping(col2) from test group by col2 with rollup
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@test
+#### A masked pattern was here ####
+1
+PREHOOK: query: select GROUPING(col2) from test group by col2 with rollup
+PREHOOK: type: QUERY
+PREHOOK: Input: default@test
+#### A masked pattern was here ####
+POSTHOOK: query: select GROUPING(col2) from test group by col2 with rollup
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@test
+#### A masked pattern was here ####
+1