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

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


The following commit(s) were added to refs/heads/master by this push:
     new a5a092ab9f [feature](nereids)support 'ISNULL' expression (#14967)
a5a092ab9f is described below

commit a5a092ab9f63b477892da3c8f357e8d82476a3cb
Author: minghong <[email protected]>
AuthorDate: Mon Dec 12 22:38:54 2022 +0800

    [feature](nereids)support 'ISNULL' expression (#14967)
---
 fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisLexer.g4   | 1 +
 fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4  | 2 ++
 .../java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java    | 6 ++++++
 3 files changed, 9 insertions(+)

diff --git a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisLexer.g4 
b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisLexer.g4
index a38a56c160..87a452b699 100644
--- a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisLexer.g4
+++ b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisLexer.g4
@@ -215,6 +215,7 @@ INTERSECT: 'INTERSECT';
 INTERVAL: 'INTERVAL';
 INTO: 'INTO';
 IS: 'IS';
+ISNULL: 'ISNULL';
 ITEMS: 'ITEMS';
 JOIN: 'JOIN';
 KEYS: 'KEYS';
diff --git a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4 
b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
index a5574ec63c..19543bce74 100644
--- a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
+++ b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
@@ -241,6 +241,7 @@ expression
 booleanExpression
     : NOT booleanExpression                                         #logicalNot
     | EXISTS LEFT_PAREN query RIGHT_PAREN                           #exist
+    | ISNULL LEFT_PAREN valueExpression RIGHT_PAREN        #isnull
     | valueExpression predicate?                                    #predicated
     | left=booleanExpression operator=AND right=booleanExpression   
#logicalBinary
     | left=booleanExpression operator=OR right=booleanExpression    
#logicalBinary
@@ -469,6 +470,7 @@ ansiNonReserved
     | INPUTFORMAT
     | INSERT
     | INTERVAL
+    | ISNULL
     | ITEMS
     | KEYS
     | LAST
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
index 300784cdff..f824f0e875 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
@@ -48,6 +48,7 @@ import 
org.apache.doris.nereids.DorisParser.IdentifierListContext;
 import org.apache.doris.nereids.DorisParser.IdentifierSeqContext;
 import org.apache.doris.nereids.DorisParser.IntegerLiteralContext;
 import org.apache.doris.nereids.DorisParser.IntervalContext;
+import org.apache.doris.nereids.DorisParser.IsnullContext;
 import org.apache.doris.nereids.DorisParser.JoinCriteriaContext;
 import org.apache.doris.nereids.DorisParser.JoinRelationContext;
 import org.apache.doris.nereids.DorisParser.LimitClauseContext;
@@ -1329,6 +1330,11 @@ public class LogicalPlanBuilder extends 
DorisParserBaseVisitor<Object> {
         return ParserUtils.withOrigin(context, () -> new 
Exists(typedVisit(context.query()), false));
     }
 
+    @Override
+    public Expression visitIsnull(IsnullContext context) {
+        return ParserUtils.withOrigin(context, () -> new 
IsNull(typedVisit(context.valueExpression())));
+    }
+
     public List<Expression> withInList(PredicateContext ctx) {
         return 
ctx.expression().stream().map(this::getExpression).collect(ImmutableList.toImmutableList());
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to