From 8c672912a40d020515dc5c6159054df61dda41df Mon Sep 17 00:00:00 2001 From: astralidea Date: Mon, 17 Aug 2020 01:28:10 +0800 Subject: [PATCH] support collate field option in compare predicate sql from datagrip --- fe/fe-core/src/main/cup/sql_parser.cup | 5 +++-- .../org/apache/doris/analysis/SelectStmtTest.java | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/cup/sql_parser.cup b/fe/fe-core/src/main/cup/sql_parser.cup index cd4ea3cdb9d50c..a2d8294915cc21 100644 --- a/fe/fe-core/src/main/cup/sql_parser.cup +++ b/fe/fe-core/src/main/cup/sql_parser.cup @@ -500,6 +500,7 @@ precedence left LPAREN, RPAREN; // Support chaining of timestamp arithmetic exprs. precedence left KW_INTERVAL; precedence left KW_OVER; +precedence left KW_COLLATE; precedence left KW_PARTITION; precedence left KW_PARTITIONS; precedence right KW_TEMPORARY; @@ -3258,7 +3259,7 @@ select_sublist ::= ; select_list_item ::= - expr:expr opt_collate:collate select_alias:alias + expr:expr select_alias:alias {: RESULT = new SelectListItem(expr, alias); :} @@ -3849,7 +3850,7 @@ sign_chain_expr ::= ; expr ::= - non_pred_expr:e + non_pred_expr:e opt_collate:collate {: RESULT = e; :} | predicate:p {: RESULT = p; :} diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java index 84c7757712027c..e03e8c5a39fddb 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java @@ -350,4 +350,16 @@ public void testOuterJoinNullUnionView() throws Exception{ "SELECT v1.k FROM test_view AS v1 LEFT OUTER JOIN test_view AS v2 ON v1.k=v2.k"; dorisAssert.query(sql).explainQuery(); } + + @Test + public void testDataGripSupport() throws Exception { + String sql = "select schema();"; + dorisAssert.query(sql).explainQuery(); + sql = "select\n" + + "collation_name,\n" + + "character_set_name,\n" + + "is_default collate utf8_general_ci = 'Yes' as is_default\n" + + "from information_schema.collations"; + dorisAssert.query(sql).explainQuery(); + } }