[
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)