You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2015/12/21 19:50:42 UTC

calcite git commit: [CALCITE-1032] Verify javadoc of private methods

Repository: calcite
Updated Branches:
  refs/heads/master 1c5eddd04 -> eaa35a41b


[CALCITE-1032] Verify javadoc of private methods

Verification happens when you run "mvn javadoc:javadoc". "mvn site"
still just generates public javadoc.

Change Travis to verify private methods.

Fix all outstanding errors.

Upgrade to junit-4.12.


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/eaa35a41
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/eaa35a41
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/eaa35a41

Branch: refs/heads/master
Commit: eaa35a41b4df6474c50e4b7437d8c1834265661f
Parents: 1c5eddd
Author: Julian Hyde <jh...@apache.org>
Authored: Sun Dec 20 14:25:22 2015 -0800
Committer: Julian Hyde <jh...@apache.org>
Committed: Mon Dec 21 09:05:33 2015 -0800

----------------------------------------------------------------------
 .travis.yml                                     |  2 +-
 .../server/DelegatingAvaticaHandler.java        |  2 +-
 .../calcite/avatica/AvaticaConnection.java      |  4 +-
 .../calcite/avatica/ConnectStringParser.java    |  4 +-
 .../org/apache/calcite/avatica/MetaImpl.java    |  4 +-
 .../calcite/avatica/util/AbstractCursor.java    |  2 +-
 .../calcite/avatica/util/DateTimeUtils.java     |  3 +-
 .../calcite/plan/RexImplicationChecker.java     | 20 +++++-----
 .../calcite/plan/SubstitutionVisitor.java       |  2 +-
 .../calcite/prepare/CalciteMaterializer.java    |  2 +-
 .../calcite/rel/externalize/RelXmlWriter.java   | 25 ++++++------
 .../calcite/rel/metadata/RelMdPredicates.java   | 23 ++++++-----
 .../calcite/rel/rules/LoptOptimizeJoinRule.java |  4 +-
 .../calcite/rel/rules/ReduceDecimalsRule.java   | 12 +++---
 .../org/apache/calcite/rex/RexMultisetUtil.java | 12 +++---
 .../apache/calcite/sql/SqlJdbcFunctionCall.java |  4 +-
 .../java/org/apache/calcite/util/BitSets.java   |  2 +-
 .../apache/calcite/util/ImmutableBitSet.java    |  2 +-
 pom.xml                                         | 40 +++++++++++++++++++-
 19 files changed, 103 insertions(+), 66 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 395a92d..b325906 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -28,7 +28,7 @@ branches:
     - /^branch-.*$/
     - /^[0-9]+-.*$/
 script:
-  mvn -Dsurefire.useFile=false test site
+  mvn -Dsurefire.useFile=false javadoc:javadoc test site
 git:
   depth: 10000
 sudo: false

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/avatica-server/src/main/java/org/apache/calcite/avatica/server/DelegatingAvaticaHandler.java
----------------------------------------------------------------------
diff --git a/avatica-server/src/main/java/org/apache/calcite/avatica/server/DelegatingAvaticaHandler.java b/avatica-server/src/main/java/org/apache/calcite/avatica/server/DelegatingAvaticaHandler.java
index b45c3e7..7270f40 100644
--- a/avatica-server/src/main/java/org/apache/calcite/avatica/server/DelegatingAvaticaHandler.java
+++ b/avatica-server/src/main/java/org/apache/calcite/avatica/server/DelegatingAvaticaHandler.java
@@ -36,7 +36,7 @@ import javax.servlet.http.HttpServletResponse;
  * An AvaticaHandler implementation that delegates to a provided Jetty Handler instance.
  *
  * <p>This implementation provides a no-op implementation for
- * {@link #setServerRpcMetadata(RpcMetadataResponse)}.
+ * {@link #setServerRpcMetadata(org.apache.calcite.avatica.remote.Service.RpcMetadataResponse)}.
  */
 public class DelegatingAvaticaHandler implements AvaticaHandler {
   private static final Log LOG = LogFactory.getLog(DelegatingAvaticaHandler.class);

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/avatica/src/main/java/org/apache/calcite/avatica/AvaticaConnection.java
----------------------------------------------------------------------
diff --git a/avatica/src/main/java/org/apache/calcite/avatica/AvaticaConnection.java b/avatica/src/main/java/org/apache/calcite/avatica/AvaticaConnection.java
index 1d35128..7336f01 100644
--- a/avatica/src/main/java/org/apache/calcite/avatica/AvaticaConnection.java
+++ b/avatica/src/main/java/org/apache/calcite/avatica/AvaticaConnection.java
@@ -16,7 +16,6 @@
  */
 package org.apache.calcite.avatica;
 
-import org.apache.calcite.avatica.AvaticaConnection.CallableWithoutException;
 import org.apache.calcite.avatica.Meta.MetaResultSet;
 import org.apache.calcite.avatica.remote.Service.ErrorResponse;
 import org.apache.calcite.avatica.remote.Service.OpenConnectionRequest;
@@ -116,7 +115,8 @@ public abstract class AvaticaConnection implements Connection {
   }
 
   /** Computes the number of retries
-   * {@link #executeInternal(String)} should retry before failing. */
+   * {@link #executeQueryInternal(AvaticaStatement, Meta.Signature, Meta.Frame, QueryState)}
+   * should retry before failing. */
   long getNumStatementRetries(Properties props) {
     return Long.valueOf(Objects.requireNonNull(props)
         .getProperty(NUM_EXECUTE_RETRIES_KEY, NUM_EXECUTE_RETRIES_DEFAULT));

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/avatica/src/main/java/org/apache/calcite/avatica/ConnectStringParser.java
----------------------------------------------------------------------
diff --git a/avatica/src/main/java/org/apache/calcite/avatica/ConnectStringParser.java b/avatica/src/main/java/org/apache/calcite/avatica/ConnectStringParser.java
index d19815a..61de10a 100644
--- a/avatica/src/main/java/org/apache/calcite/avatica/ConnectStringParser.java
+++ b/avatica/src/main/java/org/apache/calcite/avatica/ConnectStringParser.java
@@ -142,7 +142,7 @@ public class ConnectStringParser {
   }
 
   /**
-   * Reads "name=value;" or "name=value<EOF>".
+   * Reads "name=value;" or "name=value&lt;EOF&gt;".
    *
    * @throws SQLException error parsing value
    */
@@ -198,7 +198,7 @@ public class ConnectStringParser {
   }
 
   /**
-   * Reads "value;" or "value<EOF>"
+   * Reads "value;" or "value&lt;EOF&gt;"
    *
    * @throws SQLException if find an unterminated quoted value
    */

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/avatica/src/main/java/org/apache/calcite/avatica/MetaImpl.java
----------------------------------------------------------------------
diff --git a/avatica/src/main/java/org/apache/calcite/avatica/MetaImpl.java b/avatica/src/main/java/org/apache/calcite/avatica/MetaImpl.java
index f4764a1..f373273 100644
--- a/avatica/src/main/java/org/apache/calcite/avatica/MetaImpl.java
+++ b/avatica/src/main/java/org/apache/calcite/avatica/MetaImpl.java
@@ -830,7 +830,7 @@ public abstract class MetaImpl implements Meta {
   }
 
   /** Iterable that yields an iterator over rows coming from a sequence of
-   * {@link Frame}s. */
+   * {@link Meta.Frame}s. */
   private class FetchIterable implements Iterable<Object> {
     private final AvaticaStatement stmt;
     private final QueryState state;
@@ -850,7 +850,7 @@ public abstract class MetaImpl implements Meta {
     }
   }
 
-  /** Iterator over rows coming from a sequence of {@link Frame}s. */
+  /** Iterator over rows coming from a sequence of {@link Meta.Frame}s. */
   private class FetchIterator implements Iterator<Object> {
     private final AvaticaStatement stmt;
     private final QueryState state;

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/avatica/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java
----------------------------------------------------------------------
diff --git a/avatica/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java b/avatica/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java
index d745511..70f87a7 100644
--- a/avatica/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java
+++ b/avatica/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java
@@ -270,7 +270,7 @@ public abstract class AbstractCursor implements Cursor {
     return new Timestamp(v);
   }
 
-  /** Implementation of {@link Accessor}. */
+  /** Implementation of {@link Cursor.Accessor}. */
   static class AccessorImpl implements Accessor {
     protected final Getter getter;
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/avatica/src/main/java/org/apache/calcite/avatica/util/DateTimeUtils.java
----------------------------------------------------------------------
diff --git a/avatica/src/main/java/org/apache/calcite/avatica/util/DateTimeUtils.java b/avatica/src/main/java/org/apache/calcite/avatica/util/DateTimeUtils.java
index a9b17a7..67e1245 100644
--- a/avatica/src/main/java/org/apache/calcite/avatica/util/DateTimeUtils.java
+++ b/avatica/src/main/java/org/apache/calcite/avatica/util/DateTimeUtils.java
@@ -104,13 +104,12 @@ public class DateTimeUtils {
    * less than 31, etc.
    *
    * @param s       string to be parsed
-   * @param pattern {@link SimpleDateFormat}  pattern
+   * @param pattern {@link SimpleDateFormat} pattern (not null)
    * @param tz      time zone in which to interpret string. Defaults to the Java
    *                default time zone
    * @param pp      position to start parsing from
    * @return a Calendar initialized with the parsed value, or null if parsing
    * failed. If returned, the Calendar is configured to the GMT time zone.
-   * @pre pattern != null
    */
   private static Calendar parseDateFormat(
       String s,

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/core/src/main/java/org/apache/calcite/plan/RexImplicationChecker.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/plan/RexImplicationChecker.java b/core/src/main/java/org/apache/calcite/plan/RexImplicationChecker.java
index 0ce82a4..fe3ab7f 100644
--- a/core/src/main/java/org/apache/calcite/plan/RexImplicationChecker.java
+++ b/core/src/main/java/org/apache/calcite/plan/RexImplicationChecker.java
@@ -236,7 +236,7 @@ public class RexImplicationChecker {
    *
    * <ol>
    * <li>Variables should be used only once in both the conjunction against
-   * given set of operations only: >, <, <=, >=, =, !=
+   * given set of operations only: &gt;, &lt;, &le;, &ge;, =; &ne;.
    *
    * <li>All the variables used in second condition should be used even in the
    * first.
@@ -246,14 +246,14 @@ public class RexImplicationChecker {
    * belongs to one of the following sets:
    *
    * <ul>
-   *    <li>(<, <=) X (<, <=)      <i>note: X represents cartesian product</i>
-   *    <li>(> / >=) X (>, >=)
-   *    <li>(=) X (>, >=, <, <=, =, !=)
-   *    <li>(!=, =)
+   *    <li>(&lt;, &le;) X (&lt;, &le;) <i>note: X represents cartesian product</i>
+   *    <li>(&gt; / &ge;) X (&gt;, &ge;)
+   *    <li>(=) X (&gt;, &ge;, &lt;, &le;, =, &ne;)
+   *    <li>(&ne;, =)
    * </ul>
    *
-   * <li>We support utmost 2 operators to be be used for a variable in first
-   * and second usages
+   * <li>We support at most 2 operators to be be used for a variable in first
+   * and second usages.
    *
    * </ol>
    *
@@ -372,10 +372,10 @@ public class RexImplicationChecker {
   /**
    * Visitor that builds a usage map of inputs used by an expression.
    *
-   * <p>E.g: for x > 10 AND y < 20 AND x = 40, usage map is as follows:
+   * <p>E.g: for x &gt; 10 AND y &lt; 20 AND x = 40, usage map is as follows:
    * <ul>
-   * <li>key: x value: {(>, 10),(=, 40), usageCount = 2}
-   * <li>key: y value: {(>, 20), usageCount = 1}
+   * <li>key: x value: {(&gt;, 10),(=, 40), usageCount = 2}
+   * <li>key: y value: {(&gt;, 20), usageCount = 1}
    * </ul>
    */
   private static class InputUsageFinder extends RexVisitorImpl<Void> {

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java b/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java
index 924529c..eb0331f 100644
--- a/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java
+++ b/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java
@@ -568,7 +568,7 @@ public class SubstitutionVisitor {
   }
 
   /**
-   * Represents a replacement action: before => after.
+   * Represents a replacement action: before &rarr; after.
    */
   private static class Replacement {
     final MutableRel before;

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/core/src/main/java/org/apache/calcite/prepare/CalciteMaterializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/prepare/CalciteMaterializer.java b/core/src/main/java/org/apache/calcite/prepare/CalciteMaterializer.java
index 36f621e..e5a5d57 100644
--- a/core/src/main/java/org/apache/calcite/prepare/CalciteMaterializer.java
+++ b/core/src/main/java/org/apache/calcite/prepare/CalciteMaterializer.java
@@ -53,7 +53,7 @@ import com.google.common.collect.Lists;
 import java.util.List;
 
 /**
- * Context for populating a {@link Materialization}.
+ * Context for populating a {@link Prepare.Materialization}.
  */
 class CalciteMaterializer extends CalcitePrepareImpl.CalcitePreparingStmt {
   public CalciteMaterializer(CalcitePrepareImpl prepare,

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/core/src/main/java/org/apache/calcite/rel/externalize/RelXmlWriter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/externalize/RelXmlWriter.java b/core/src/main/java/org/apache/calcite/rel/externalize/RelXmlWriter.java
index 50e5381..12e175c 100644
--- a/core/src/main/java/org/apache/calcite/rel/externalize/RelXmlWriter.java
+++ b/core/src/main/java/org/apache/calcite/rel/externalize/RelXmlWriter.java
@@ -65,23 +65,22 @@ public class RelXmlWriter extends RelWriterImpl {
    *
    * <blockquote>
    * <code>
-   * &lt;RelNode id="1" type="Join"&gt;<br/>
+   * &lt;RelNode id="1" type="Join"&gt;<br>
    * &nbsp;&nbsp;&lt;Property name="condition"&gt;EMP.DEPTNO =
-   * DEPT.DEPTNO&lt;/Property&gt;<br/>
-   * &nbsp;&nbsp;&lt;Inputs&gt;<br/>
-   * &nbsp;&nbsp;&nbsp;&nbsp;&lt;RelNode id="2" type="Project"&gt;<br/>
+   * DEPT.DEPTNO&lt;/Property&gt;<br>
+   * &nbsp;&nbsp;&lt;Inputs&gt;<br>
+   * &nbsp;&nbsp;&nbsp;&nbsp;&lt;RelNode id="2" type="Project"&gt;<br>
    * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Property name="expr1"&gt;x +
-   * y&lt;/Property&gt;<br/>
+   * y&lt;/Property&gt;<br>
    * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Property
-   * name="expr2"&gt;45&lt;/Property&gt;<br/>
-   * &nbsp;&nbsp;&nbsp;&nbsp;&lt;/RelNode&gt;<br/>
-   * &nbsp;&nbsp;&nbsp;&nbsp;&lt;RelNode id="3" type="TableAccess"&gt;<br/>
+   * name="expr2"&gt;45&lt;/Property&gt;<br>
+   * &nbsp;&nbsp;&nbsp;&nbsp;&lt;/RelNode&gt;<br>
+   * &nbsp;&nbsp;&nbsp;&nbsp;&lt;RelNode id="3" type="TableAccess"&gt;<br>
    * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Property
-   * name="table"&gt;SALES.EMP&lt;/Property&gt;<br/>
-   * &nbsp;&nbsp;&nbsp;&nbsp;&lt;/RelNode&gt;<br/>
-   * &nbsp;&nbsp;&lt;/Inputs&gt;<br/>
-   * &lt;/RelNode&gt;<br/>
-   * </code>
+   * name="table"&gt;SALES.EMP&lt;/Property&gt;<br>
+   * &nbsp;&nbsp;&nbsp;&nbsp;&lt;/RelNode&gt;<br>
+   * &nbsp;&nbsp;&lt;/Inputs&gt;<br>
+   * &lt;/RelNode&gt;</code>
    * </blockquote>
    *
    * @param rel    Relational expression

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/core/src/main/java/org/apache/calcite/rel/metadata/RelMdPredicates.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdPredicates.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdPredicates.java
index 35eb56b..2119abf 100644
--- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdPredicates.java
+++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdPredicates.java
@@ -366,11 +366,10 @@ public class RelMdPredicates {
    * <p>So for:
    * <ol>
    * <li>'<code>R1(x) join R2(y) on x = y</code>' a call for
-   * equivalentPredicates on '<code>x > 7</code>' will return '
-   * <code>[y > 7]</code>'
+   * equivalentPredicates on '<code>x &gt; 7</code>' will return '
+   * <code>[y &gt; 7]</code>'
    * <li>'<code>R1(x) join R2(y) on x = y join R3(z) on y = z</code>' a call for
-   * equivalentPredicates on the second join '<code>x > 7</code>' will return '
-   * <code>[y > 7, z > 7]</code>'
+   * equivalentPredicates on the second join '<code>x &gt; 7</code>' will return
    * </ol>
    */
   static class JoinConditionBasedPredicateInference {
@@ -646,14 +645,14 @@ public class RelMdPredicates {
      *
      * <p>The following Mappings will be returned:
      * <pre>
-     * {a->a, b->a, c->c}
-     * {a->a, b->a, c->e}
-     * {a->a, b->b, c->c}
-     * {a->a, b->b, c->e}
-     * {a->b, b->a, c->c}
-     * {a->b, b->a, c->e}
-     * {a->b, b->b, c->c}
-     * {a->b, b->b, c->e}
+     * {a &rarr; a, b &rarr; a, c &rarr; c}
+     * {a &rarr; a, b &rarr; a, c &rarr; e}
+     * {a &rarr; a, b &rarr; b, c &rarr; c}
+     * {a &rarr; a, b &rarr; b, c &rarr; e}
+     * {a &rarr; b, b &rarr; a, c &rarr; c}
+     * {a &rarr; b, b &rarr; a, c &rarr; e}
+     * {a &rarr; b, b &rarr; b, c &rarr; c}
+     * {a &rarr; b, b &rarr; b, c &rarr; e}
      * </pre>
      *
      * <p>which imply the following inferences:

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/core/src/main/java/org/apache/calcite/rel/rules/LoptOptimizeJoinRule.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/rules/LoptOptimizeJoinRule.java b/core/src/main/java/org/apache/calcite/rel/rules/LoptOptimizeJoinRule.java
index f521a71..66ae671 100644
--- a/core/src/main/java/org/apache/calcite/rel/rules/LoptOptimizeJoinRule.java
+++ b/core/src/main/java/org/apache/calcite/rel/rules/LoptOptimizeJoinRule.java
@@ -1231,7 +1231,7 @@ public class LoptOptimizeJoinRule extends RelOptRule {
    *
    * @param multiJoin join factors being optimized
    * @param leftTree left subtree of the join tree
-   * @param leftIdx if >=0, only consider filters that reference leftIdx in
+   * @param leftIdx if &ge; 0, only consider filters that reference leftIdx in
    * leftTree; otherwise, consider all filters that reference any factor in
    * leftTree
    * @param rightTree right subtree of the join tree
@@ -1577,7 +1577,7 @@ public class LoptOptimizeJoinRule extends RelOptRule {
    * @param multiJoin join factors being optimized
    * @param semiJoinOpt optimal semijoins for each factor
    * @param currJoinTree current join tree being added to
-   * @param leftIdx if >=0, when creating the replacement join, only consider
+   * @param leftIdx if &ge; 0, when creating the replacement join, only consider
    * filters that reference leftIdx in currJoinTree; otherwise, consider all
    * filters that reference any factor in currJoinTree
    * @param factorToAdd new factor whose join can be removed

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/core/src/main/java/org/apache/calcite/rel/rules/ReduceDecimalsRule.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/rules/ReduceDecimalsRule.java b/core/src/main/java/org/apache/calcite/rel/rules/ReduceDecimalsRule.java
index 143620d..ef0af42 100644
--- a/core/src/main/java/org/apache/calcite/rel/rules/ReduceDecimalsRule.java
+++ b/core/src/main/java/org/apache/calcite/rel/rules/ReduceDecimalsRule.java
@@ -1004,10 +1004,10 @@ public class ReduceDecimalsRule extends RelOptRule {
    * Expander that rewrites floor(decimal) expressions:
    *
    * <pre>
-   * if (value < 0)
-   *     (value-0.99...)/(10^scale)
+   * if (value &lt; 0)
+   *     (value - 0.99...) / (10^scale)
    * else
-   *     value/(10^scale)
+   *     value / (10 ^ scale)
    * </pre>
    */
   private class FloorExpander extends RexExpander {
@@ -1053,10 +1053,10 @@ public class ReduceDecimalsRule extends RelOptRule {
    * Expander that rewrites ceiling(decimal) expressions:
    *
    * <pre>
-   * if (value > 0)
-   *     (value+0.99...)/(10^scale)
+   * if (value &gt; 0)
+   *     (value + 0.99...) / (10 ^ scale)
    * else
-   *     value/(10^scale)
+   *     value / (10 ^ scale)
    * </pre>
    */
   private class CeilExpander extends RexExpander {

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/core/src/main/java/org/apache/calcite/rex/RexMultisetUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexMultisetUtil.java b/core/src/main/java/org/apache/calcite/rex/RexMultisetUtil.java
index 34f4b5f..2f9d9d2 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexMultisetUtil.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexMultisetUtil.java
@@ -118,14 +118,16 @@ public class RexMultisetUtil {
   }
 
   /**
-   * Returns true if call is call to <code>CAST</code> and the to/from cast
-   * types are of multiset types
+   * Returns true if {@code call} is a call to <code>CAST</code> and the to/from
+   * cast types are of multiset types.
    */
   public static boolean isMultisetCast(RexCall call) {
-    if (!call.getOperator().equals(SqlStdOperatorTable.CAST)) {
+    switch (call.getKind()) {
+    case CAST:
+      return call.getType().getSqlTypeName() == SqlTypeName.MULTISET;
+    default:
       return false;
     }
-    return call.getType().getSqlTypeName() == SqlTypeName.MULTISET;
   }
 
   /**
@@ -168,7 +170,7 @@ public class RexMultisetUtil {
    * A RexShuttle that traverse all RexNode and counts total number of
    * RexCalls traversed and number of multiset calls traversed.
    *
-   * <p>totalCount >= multisetCount always holds true.
+   * <p>totalCount &ge; multisetCount always holds true.
    */
   private static class RexCallMultisetOperatorCounter
       extends RexVisitorImpl<Void> {

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/core/src/main/java/org/apache/calcite/sql/SqlJdbcFunctionCall.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlJdbcFunctionCall.java b/core/src/main/java/org/apache/calcite/sql/SqlJdbcFunctionCall.java
index 63ffb8d..f6849b7 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlJdbcFunctionCall.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlJdbcFunctionCall.java
@@ -580,8 +580,8 @@ public class SqlJdbcFunctionCall extends SqlFunction {
      * @param operator Operator
      * @param order    Order
      * @pre order != null
-     * @pre order[i] < order.length
-     * @pre order.length > 0
+     * @pre order[i] &lt; order.length
+     * @pre order.length &gt; 0
      * @pre argCounts == order.length
      */
     MakeCall(SqlOperator operator, int argCount, int[] order) {

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/core/src/main/java/org/apache/calcite/util/BitSets.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/BitSets.java b/core/src/main/java/org/apache/calcite/util/BitSets.java
index daa174a..b2520b2 100644
--- a/core/src/main/java/org/apache/calcite/util/BitSets.java
+++ b/core/src/main/java/org/apache/calcite/util/BitSets.java
@@ -313,7 +313,7 @@ public final class BitSets {
   }
 
   /**
-   * Setup equivalence Sets for each position. If i & j are equivalent then
+   * Setup equivalence Sets for each position. If i and j are equivalent then
    * they will have the same equivalence Set. The algorithm computes the
    * closure relation at each position for the position wrt to positions
    * greater than it. Once a closure is computed for a position, the closure

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/core/src/main/java/org/apache/calcite/util/ImmutableBitSet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/ImmutableBitSet.java b/core/src/main/java/org/apache/calcite/util/ImmutableBitSet.java
index e6da5c8..cb911f1 100644
--- a/core/src/main/java/org/apache/calcite/util/ImmutableBitSet.java
+++ b/core/src/main/java/org/apache/calcite/util/ImmutableBitSet.java
@@ -870,7 +870,7 @@ public class ImmutableBitSet
   }
 
   /**
-   * Setup equivalence Sets for each position. If i & j are equivalent then
+   * Setup equivalence Sets for each position. If i and j are equivalent then
    * they will have the same equivalence Set. The algorithm computes the
    * closure relation at each position for the position wrt to positions
    * greater than it. Once a closure is computed for a position, the closure

http://git-wip-us.apache.org/repos/asf/calcite/blob/eaa35a41/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 7cc273c..7c38c62 100644
--- a/pom.xml
+++ b/pom.xml
@@ -175,7 +175,7 @@ limitations under the License.
       <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
-        <version>4.11</version>
+        <version>4.12</version>
       </dependency>
       <dependency>
         <groupId>io.airlift.tpch</groupId>
@@ -415,6 +415,44 @@ limitations under the License.
         </executions>
       </plugin>
       <plugin>
+        <!-- This is the configuration used by "mvn javadoc:javadoc". It is
+             configured strict, so that it shows errors such as broken links in
+             javadoc on private methods. The configuration for "mvn site" is
+             under "reporting", and is more lenient. -->
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <configuration>
+          <links>
+            <link>http://docs.oracle.com/javase/8/docs/api/</link>
+          </links>
+          <excludePackageNames>org.apache.calcite.sql.parser.impl,org.apache.calcite.piglet.parser</excludePackageNames>
+          <tags>
+            <tag>
+              <name>sql.92</name>
+              <placement>a</placement>
+              <head>SQL 92 spec:</head>
+            </tag>
+            <tag>
+              <name>sql.99</name>
+              <placement>a</placement>
+              <head>SQL 99 spec:</head>
+            </tag>
+            <tag>
+              <name>sql.2003</name>
+              <placement>a</placement>
+              <head>SQL 2003 spec:</head>
+            </tag>
+            <tag>
+              <name>pre</name>
+            </tag>
+            <tag>
+              <name>post</name>
+            </tag>
+          </tags>
+          <show>private</show>
+        </configuration>
+      </plugin>
+      <plugin>
         <!-- Override apache parent POM's definition of release
              plugin. If we don't specify gitexe version, git doesn't
              commit during release process. -->