[ 
https://issues.apache.org/jira/browse/METRON-980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16039976#comment-16039976
 ] 

ASF GitHub Bot commented on METRON-980:
---------------------------------------

Github user mattf-horton commented on a diff in the pull request:

    https://github.com/apache/metron/pull/606#discussion_r119928654
  
    --- Diff: 
metron-platform/metron-common/src/main/antlr4/org/apache/metron/common/stellar/generated/Stellar.g4
 ---
    @@ -139,9 +139,21 @@ transformation_expr:
       | in_expr #InExpression
       ;
     
    +if_expr:
    +  logical_expr
    +  ;
    +
    +then_expr:
    +  transformation_expr
    +  ;
    +
    +else_expr:
    +  transformation_expr
    +  ;
    +
     conditional_expr :
    -  logical_expr QUESTION transformation_expr COLON transformation_expr 
#TernaryFuncWithoutIf
    -  | IF logical_expr THEN transformation_expr ELSE transformation_expr 
#TernaryFuncWithIf
    +  if_expr QUESTION then_expr COLON else_expr #TernaryFuncWithoutIf
    +  | IF if_expr THEN then_expr ELSE else_expr #TernaryFuncWithIf
    --- End diff --
    
    Good clarification.


> Short circuit operations for Stellar
> ------------------------------------
>
>                 Key: METRON-980
>                 URL: https://issues.apache.org/jira/browse/METRON-980
>             Project: Metron
>          Issue Type: Improvement
>            Reporter: Casey Stella
>            Assignee: Casey Stella
>
> Stellar does not currently contain short circuit operations.  In most 
> languages, this is an important optimization, but for Stellar on Metron, this 
> is a requirement due to the fact that some variables may be null legitimately 
> and we cannot create multi-line conditionals or temporary variables at the 
> moment.
> The short circuit operations supported:
> * short circuited `or` (e.g. true or FUNC(...) would never execute FUNC)
> * short circuited `and` (e.g. false and FUNC(...) would never execute FUNC)
> * short circuited if/then/else (e.g. if true then FUNC(...) else FUNC2(...) 
> will never call FUNC2)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to