[NO ISSUE][COMP] Optim rules comments + minor changes

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- CheckFilterExpressionTypeRule checks if the optimization
context has the output type environment before computing it.
- Minor addition/changes to rule comments.

Change-Id: I6f5cb78125657ff2bb4658af40bfc9d9cbff184e
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3201
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CheckFilterExpressionTypeRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CheckFilterExpressionTypeRule.java
index 4839ac3..fed54e2 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CheckFilterExpressionTypeRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CheckFilterExpressionTypeRule.java
@@ -61,7 +61,10 @@
         }
         SelectOperator select = (SelectOperator) op;
         ILogicalExpression condition = select.getCondition().getValue();
-        IVariableTypeEnvironment env = select.computeOutputTypeEnvironment(context);
+
+        // Get the output type environment
+        IVariableTypeEnvironment env = context.getOutputTypeEnvironment(select);
+
         IAType condType = (IAType) env.getType(condition);
         if (condType.getTypeTag() != ATypeTag.BOOLEAN && condType.getTypeTag() != ATypeTag.ANY
                 && !isPossibleBoolean(condType)) {
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/TypeComputeUtils.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/TypeComputeUtils.java
index f1f1be3..e40975b 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/TypeComputeUtils.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/TypeComputeUtils.java
@@ -84,7 +84,7 @@
             inputTypes[index++] = (IAType) env.getType(arg);
         }
 
-        // Checks input types and computes result types.
+        // Checks input types.
         IAType[] knownInputTypes = TypeComputeUtils.getActualType(inputTypes);
         boolean[] unknownable = TypeComputeUtils.isUnknownableType(inputTypes);
         for (int argIndex = 0; argIndex < knownInputTypes.length; ++argIndex) {
@@ -97,7 +97,7 @@
         }
 
         // Computes the result type.
-        byte category = TypeComputeUtils.resolveCateogry(inputTypes);
+        byte category = TypeComputeUtils.resolveCategory(inputTypes);
         if (propagateNullAndMissing) {
             if (category == MISSING) {
                 return BuiltinType.AMISSING;
@@ -126,7 +126,7 @@
         }
     }
 
-    private static byte resolveCateogry(IAType... inputTypes) {
+    private static byte resolveCategory(IAType... inputTypes) {
         byte category = CERTAIN;
         boolean meetNull = false;
         for (IAType inputType : inputTypes) {
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/InferTypesRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/InferTypesRule.java
index 8d54a67..a17bbf7 100644
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/InferTypesRule.java
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/InferTypesRule.java
@@ -25,6 +25,9 @@
 import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
 import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
 
+/**
+ * This rule computes and sets the output type environment for each operator in the plan
+ */
 public class InferTypesRule implements IAlgebraicRewriteRule {
 
     @Override