Following [CALCITE-2266], remove an unwanted dependency

Also, cosmetic changes: spaces and indentation


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

Branch: refs/heads/master
Commit: 6d9242a168a26ea3bebd3aed7919dccb86b7ebe3
Parents: 4310815
Author: Julian Hyde <[email protected]>
Authored: Mon Nov 12 12:22:58 2018 -0800
Committer: Julian Hyde <[email protected]>
Committed: Mon Nov 12 13:54:37 2018 -0800

----------------------------------------------------------------------
 core/src/main/codegen/templates/Parser.jj       | 172 ++++------
 .../enumerable/EnumerableRelImplementor.java    |   3 +-
 .../calcite/adapter/enumerable/RexImpTable.java |  28 +-
 .../calcite/rel/rules/SubQueryRemoveRule.java   |   4 +-
 .../apache/calcite/runtime/CalciteResource.java |   4 +-
 .../apache/calcite/runtime/SqlFunctions.java    |  79 +++--
 .../org/apache/calcite/sql/SqlJsonEncoding.java |   3 +-
 .../sql/SqlJsonQueryEmptyOrErrorBehavior.java   |   8 +-
 .../sql/SqlJsonQueryWrapperBehavior.java        |   4 +-
 .../sql/SqlJsonValueEmptyOrErrorBehavior.java   |   7 +-
 .../calcite/sql/dialect/HsqldbSqlDialect.java   |   6 +-
 .../calcite/sql/dialect/MysqlSqlDialect.java    |   6 +-
 .../sql/fun/SqlJsonApiCommonSyntaxOperator.java |  22 +-
 .../sql/fun/SqlJsonArrayAggAggFunction.java     |  23 +-
 .../calcite/sql/fun/SqlJsonArrayFunction.java   |  27 +-
 .../calcite/sql/fun/SqlJsonExistsFunction.java  |  13 +-
 .../sql/fun/SqlJsonObjectAggAggFunction.java    |  21 +-
 .../calcite/sql/fun/SqlJsonObjectFunction.java  |  32 +-
 .../calcite/sql/fun/SqlJsonQueryFunction.java   |  23 +-
 .../sql/fun/SqlJsonValueExpressionOperator.java |  45 +--
 .../calcite/sql/fun/SqlJsonValueFunction.java   |  75 ++---
 .../calcite/sql/fun/SqlStdOperatorTable.java    |  33 +-
 .../apache/calcite/sql/type/ReturnTypes.java    |   3 +-
 .../sql2rel/StandardConvertletTable.java        |  28 +-
 .../org/apache/calcite/util/BuiltInMethod.java  |  32 +-
 .../calcite/sql/test/SqlOperatorBaseTest.java   |   1 -
 .../org/apache/calcite/sql/test/SqlTester.java  |   3 +-
 .../org/apache/calcite/sql/test/SqlTests.java   |   6 +-
 .../apache/calcite/test/BookstoreSchema.java    |   3 +-
 .../org/apache/calcite/test/RexProgramTest.java |   4 +-
 .../calcite/test/SqlJsonFunctionsTest.java      | 336 +++++++++----------
 .../adapter/druid/DruidQueryFilterTest.java     |   3 +-
 .../org/apache/calcite/test/DruidAdapterIT.java |   6 +-
 .../apache/calcite/test/DruidAdapterIT2.java    |   6 +-
 .../elasticsearch/ElasticSearchAdapterTest.java |   3 +-
 site/_docs/reference.md                         |  10 +-
 36 files changed, 484 insertions(+), 598 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/codegen/templates/Parser.jj
----------------------------------------------------------------------
diff --git a/core/src/main/codegen/templates/Parser.jj 
b/core/src/main/codegen/templates/Parser.jj
index 81c79ed..6361391 100644
--- a/core/src/main/codegen/templates/Parser.jj
+++ b/core/src/main/codegen/templates/Parser.jj
@@ -4978,48 +4978,42 @@ SqlCall JsonExistsFunctionCall() :
 
 List<SqlNode> JsonValueEmptyOrErrorBehavior() :
 {
-    List<SqlNode> list = new ArrayList<SqlNode>();
-    SqlNode e;
+    final List<SqlNode> list = new ArrayList<SqlNode>();
+    final SqlNode e;
 }
 {
     (
-        <ERROR>
-        {
+        <ERROR> {
             
list.add(SqlLiteral.createSymbol(SqlJsonValueEmptyOrErrorBehavior.ERROR, 
getPos()));
             list.add(SqlLiteral.createNull(getPos()));
         }
-        |
-        <NULL>
-        {
+    |
+        <NULL> {
             
list.add(SqlLiteral.createSymbol(SqlJsonValueEmptyOrErrorBehavior.NULL, 
getPos()));
             list.add(SqlLiteral.createNull(getPos()));
         }
-        |
-        <DEFAULT_> e = Expression(ExprContext.ACCEPT_NON_QUERY)
-        {
+    |
+        <DEFAULT_> e = Expression(ExprContext.ACCEPT_NON_QUERY) {
             
list.add(SqlLiteral.createSymbol(SqlJsonValueEmptyOrErrorBehavior.DEFAULT, 
getPos()));
             list.add(e);
         }
     )
     <ON>
     (
-        <EMPTY>
-        {
+        <EMPTY> {
             list.add(SqlLiteral.createSymbol(SqlJsonEmptyOrError.EMPTY, 
getPos()));
         }
-        |
-        <ERROR>
-        {
+    |
+        <ERROR> {
             list.add(SqlLiteral.createSymbol(SqlJsonEmptyOrError.ERROR, 
getPos()));
         }
     )
-
-    { return list;}
+    { return list; }
 }
 
 SqlCall JsonValueFunctionCall() :
 {
-    SqlNode[] args;
+    final SqlNode[] args = new SqlNode[6];
     SqlNode e;
     final Span span;
     List<SqlNode> behavior;
@@ -5027,16 +5021,17 @@ SqlCall JsonValueFunctionCall() :
 {
     <JSON_VALUE> { span = span(); }
     <LPAREN> e = JsonApiCommonSyntax() {
-        args = new SqlNode[6];
         args[0] = e;
     }
     [
-        e = JsonReturningClause() { args[5] = e; }
+        e = JsonReturningClause() {
+            args[5] = e;
+        }
     ]
     (
-        behavior = JsonValueEmptyOrErrorBehavior()
-        {
-            SqlJsonEmptyOrError symbol = ((SqlLiteral) 
behavior.get(2)).getValueAs(SqlJsonEmptyOrError.class);
+        behavior = JsonValueEmptyOrErrorBehavior() {
+            final SqlJsonEmptyOrError symbol =
+                ((SqlLiteral) 
behavior.get(2)).getValueAs(SqlJsonEmptyOrError.class);
             switch (symbol) {
             case EMPTY:
                 args[1] = behavior.get(0);
@@ -5056,45 +5051,38 @@ SqlCall JsonValueFunctionCall() :
 
 List<SqlNode> JsonQueryEmptyOrErrorBehavior() :
 {
-    List<SqlNode> list = new ArrayList<SqlNode>();
+    final List<SqlNode> list = new ArrayList<SqlNode>();
     SqlNode e;
 }
 {
     (
-        <ERROR>
-        {
+        <ERROR> {
             
list.add(SqlLiteral.createSymbol(SqlJsonQueryEmptyOrErrorBehavior.ERROR, 
getPos()));
         }
-        |
-        <NULL>
-        {
+    |
+        <NULL> {
             
list.add(SqlLiteral.createSymbol(SqlJsonQueryEmptyOrErrorBehavior.NULL, 
getPos()));
         }
-        |
-        <EMPTY> <ARRAY>
-        {
+    |
+        <EMPTY> <ARRAY> {
             
list.add(SqlLiteral.createSymbol(SqlJsonQueryEmptyOrErrorBehavior.EMPTY_ARRAY, 
getPos()));
         }
-        |
-        <EMPTY> <OBJECT>
-        {
+    |
+        <EMPTY> <OBJECT> {
             
list.add(SqlLiteral.createSymbol(SqlJsonQueryEmptyOrErrorBehavior.EMPTY_OBJECT, 
getPos()));
         }
     )
     <ON>
     (
-        <EMPTY>
-        {
+        <EMPTY> {
             list.add(SqlLiteral.createSymbol(SqlJsonEmptyOrError.EMPTY, 
getPos()));
         }
-        |
-        <ERROR>
-        {
+    |
+        <ERROR> {
             list.add(SqlLiteral.createSymbol(SqlJsonEmptyOrError.ERROR, 
getPos()));
         }
     )
-
-    { return list;}
+    { return list; }
 }
 
 SqlNode JsonQueryWrapperBehavior() :
@@ -5102,26 +5090,23 @@ SqlNode JsonQueryWrapperBehavior() :
     SqlNode e;
 }
 {
-    <WITHOUT> [<ARRAY>]
-    {
+    <WITHOUT> [<ARRAY>] {
         return 
SqlLiteral.createSymbol(SqlJsonQueryWrapperBehavior.WITHOUT_ARRAY, getPos());
     }
-    |
+|
     LOOKAHEAD(2)
-    <WITH> <CONDITIONAL> [<ARRAY>]
-    {
+    <WITH> <CONDITIONAL> [<ARRAY>] {
         return 
SqlLiteral.createSymbol(SqlJsonQueryWrapperBehavior.WITH_CONDITIONAL_ARRAY, 
getPos());
     }
-    |
-    <WITH> [<UNCONDITIONAL>] [<ARRAY>]
-    {
+|
+    <WITH> [<UNCONDITIONAL>] [<ARRAY>] {
         return 
SqlLiteral.createSymbol(SqlJsonQueryWrapperBehavior.WITH_UNCONDITIONAL_ARRAY, 
getPos());
     }
 }
 
 SqlCall JsonQueryFunctionCall() :
 {
-    SqlNode[] args;
+    final SqlNode[] args = new SqlNode[4];
     SqlNode e;
     final Span span;
     List<SqlNode> behavior;
@@ -5129,16 +5114,17 @@ SqlCall JsonQueryFunctionCall() :
 {
     <JSON_QUERY> { span = span(); }
     <LPAREN> e = JsonApiCommonSyntax() {
-        args = new SqlNode[4];
         args[0] = e;
     }
     [
-        e = JsonQueryWrapperBehavior() <WRAPPER> { args[1] = e; }
+        e = JsonQueryWrapperBehavior() <WRAPPER> {
+            args[1] = e;
+        }
     ]
     (
-        behavior = JsonQueryEmptyOrErrorBehavior()
-        {
-            SqlJsonEmptyOrError symbol = ((SqlLiteral) 
behavior.get(1)).getValueAs(SqlJsonEmptyOrError.class);
+        behavior = JsonQueryEmptyOrErrorBehavior() {
+            final SqlJsonEmptyOrError symbol =
+                ((SqlLiteral) 
behavior.get(1)).getValueAs(SqlJsonEmptyOrError.class);
             switch (symbol) {
             case EMPTY:
                 args[2] = behavior.get(0);
@@ -5156,7 +5142,7 @@ SqlCall JsonQueryFunctionCall() :
 
 SqlNode JsonName() :
 {
-    SqlNode e;
+    final SqlNode e;
 }
 {
      e = Expression(ExprContext.ACCEPT_NON_QUERY) {
@@ -5166,12 +5152,14 @@ SqlNode JsonName() :
 
 List<SqlNode> JsonNameAndValue() :
 {
-    List<SqlNode> list = new ArrayList<SqlNode>();
+    final List<SqlNode> list = new ArrayList<SqlNode>();
     SqlNode e;
     boolean kvMode = false;
 }
 {
-    [ <KEY> { kvMode = true; } ]
+    [
+        <KEY> { kvMode = true; }
+    ]
     e = JsonName() {
         list.add(e);
     }
@@ -5184,7 +5172,7 @@ List<SqlNode> JsonNameAndValue() :
             }
         }
     )
-    e =JsonValueExpression(false) {
+    e = JsonValueExpression(false) {
         list.add(e);
     }
     {
@@ -5194,34 +5182,27 @@ List<SqlNode> JsonNameAndValue() :
 
 SqlNode JsonConstructorNullClause() :
 {
-    SqlNode e;
 }
 {
-    <NULL> <ON> <NULL>
-    {
+    <NULL> <ON> <NULL> {
         return 
SqlLiteral.createSymbol(SqlJsonConstructorNullClause.NULL_ON_NULL, getPos());
     }
-    |
-    <ABSENT> <ON> <NULL>
-    {
+|
+    <ABSENT> <ON> <NULL> {
         return 
SqlLiteral.createSymbol(SqlJsonConstructorNullClause.ABSENT_ON_NULL, getPos());
     }
 }
 
 SqlCall JsonObjectFunctionCall() :
 {
-    List<SqlNode> nvArgs;
-    SqlNode[] otherArgs;
+    final List<SqlNode> nvArgs = new ArrayList<SqlNode>();
+    final SqlNode[] otherArgs = new SqlNode[1];
     SqlNode e;
     List<SqlNode> list;
     final Span span;
 }
 {
-    <JSON_OBJECT> {
-        span = span();
-        nvArgs = new ArrayList<SqlNode>();
-        otherArgs = new SqlNode[1];
-    }
+    <JSON_OBJECT> { span = span(); }
     <LPAREN> [
         list = JsonNameAndValue() {
             nvArgs.addAll(list);
@@ -5239,7 +5220,7 @@ SqlCall JsonObjectFunctionCall() :
         }
     ]
     <RPAREN> {
-        List<SqlNode> args = new ArrayList();
+        final List<SqlNode> args = new ArrayList();
         args.addAll(Arrays.asList(otherArgs));
         args.addAll(nvArgs);
         return SqlStdOperatorTable.JSON_OBJECT.createCall(span.end(this), 
args);
@@ -5248,21 +5229,18 @@ SqlCall JsonObjectFunctionCall() :
 
 SqlCall JsonObjectAggFunctionCall() :
 {
-    SqlNode[] args;
+    final SqlNode[] args = new SqlNode[2];
     List<SqlNode> list;
     final Span span;
-    SqlJsonConstructorNullClause nullClause;
-    SqlNode e;
+    SqlJsonConstructorNullClause nullClause =
+        SqlJsonConstructorNullClause.NULL_ON_NULL;
+    final SqlNode e;
 }
 {
-    <JSON_OBJECTAGG> {
-        span = span();
-        args = new SqlNode[2];
-        nullClause = SqlJsonConstructorNullClause.NULL_ON_NULL;
-    }
+    <JSON_OBJECTAGG> { span = span(); }
     <LPAREN> list = JsonNameAndValue() {
-            args[0] = list.get(0);
-            args[1] = list.get(1);
+        args[0] = list.get(0);
+        args[1] = list.get(1);
     }
     [
         e = JsonConstructorNullClause() {
@@ -5283,17 +5261,13 @@ SqlCall JsonObjectAggFunctionCall() :
 
 SqlCall JsonArrayFunctionCall() :
 {
-    List<SqlNode> elements;
-    SqlNode[] otherArgs;
+    final List<SqlNode> elements = new ArrayList<SqlNode>();
+    final SqlNode[] otherArgs = new SqlNode[1];
     SqlNode e;
     final Span span;
 }
 {
-    <JSON_ARRAY> {
-        span = span();
-        elements = new ArrayList<SqlNode>();
-        otherArgs = new SqlNode[1];
-    }
+    <JSON_ARRAY> { span = span(); }
     <LPAREN> [
         e = JsonValueExpression(false) {
             elements.add(e);
@@ -5311,7 +5285,7 @@ SqlCall JsonArrayFunctionCall() :
         }
     ]
     <RPAREN> {
-        List<SqlNode> args = new ArrayList();
+        final List<SqlNode> args = new ArrayList();
         args.addAll(Arrays.asList(otherArgs));
         args.addAll(elements);
         return SqlStdOperatorTable.JSON_ARRAY.createCall(span.end(this), args);
@@ -5320,20 +5294,16 @@ SqlCall JsonArrayFunctionCall() :
 
 SqlCall JsonArrayAggFunctionCall() :
 {
-    SqlNode arg;
+    final SqlNode arg;
     List<SqlNode> list;
     final Span span;
-    SqlJsonConstructorNullClause nullClause;
+    SqlJsonConstructorNullClause nullClause =
+        SqlJsonConstructorNullClause.ABSENT_ON_NULL;
     SqlNode e;
 }
 {
-    <JSON_ARRAYAGG> {
-        span = span();
-        nullClause = SqlJsonConstructorNullClause.ABSENT_ON_NULL;
-    }
-    <LPAREN> e = JsonValueExpression(false) {
-            arg = e;
-    }
+    <JSON_ARRAYAGG> { span = span(); }
+    <LPAREN> arg = JsonValueExpression(false)
     [
         e = JsonConstructorNullClause() {
             nullClause = (SqlJsonConstructorNullClause) ((SqlLiteral) 
e).getValue();

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableRelImplementor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableRelImplementor.java
 
b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableRelImplementor.java
index 81ddc32..1b91d7f 100644
--- 
a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableRelImplementor.java
+++ 
b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableRelImplementor.java
@@ -428,8 +428,7 @@ public class EnumerableRelImplementor extends 
JavaRelImplementor {
         || input instanceof Integer
         || input instanceof Long
         || input instanceof Float
-        || input instanceof Double
-        ) {
+        || input instanceof Double) {
       return Expressions.constant(input, clazz);
     }
     ParameterExpression cached = stashedParameters.get(input);

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/adapter/enumerable/RexImpTable.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/adapter/enumerable/RexImpTable.java 
b/core/src/main/java/org/apache/calcite/adapter/enumerable/RexImpTable.java
index b24ac61..ada4333 100644
--- a/core/src/main/java/org/apache/calcite/adapter/enumerable/RexImpTable.java
+++ b/core/src/main/java/org/apache/calcite/adapter/enumerable/RexImpTable.java
@@ -1790,7 +1790,6 @@ public class RexImpTable {
 
   /** Implementor for the {@code JSON_OBJECTAGG} aggregate function. */
   static class JsonObjectAggImplementor implements AggImplementor {
-
     private final Method m;
 
     JsonObjectAggImplementor(Method m) {
@@ -1806,27 +1805,24 @@ public class RexImpTable {
     }
 
     @Override public void implementReset(AggContext info,
-                                                   AggResetContext reset) {
+        AggResetContext reset) {
       reset.currentBlock().add(
           Expressions.statement(
               Expressions.assign(reset.accumulator().get(0),
                   Expressions.new_(HashMap.class))));
     }
 
-    @Override public void implementAdd(AggContext info,
-                                              AggAddContext add) {
+    @Override public void implementAdd(AggContext info, AggAddContext add) {
       add.currentBlock().add(
           Expressions.statement(
-              Expressions.call(
-                  m,
+              Expressions.call(m,
                   Iterables.concat(
-                      Collections.singletonList(
-                          add.accumulator().get(0)),
+                      Collections.singletonList(add.accumulator().get(0)),
                       add.arguments()))));
     }
 
     @Override public Expression implementResult(AggContext info,
-                                                       AggResultContext 
result) {
+        AggResultContext result) {
       return Expressions.call(BuiltInMethod.JSONIZE.method,
           result.accumulator().get(0));
     }
@@ -1834,7 +1830,6 @@ public class RexImpTable {
 
   /** Implementor for the {@code JSON_ARRAYAGG} aggregate function. */
   static class JsonArrayAggImplementor implements AggImplementor {
-
     private final Method m;
 
     JsonArrayAggImplementor(Method m) {
@@ -1844,12 +1839,13 @@ public class RexImpTable {
     static Supplier<JsonArrayAggImplementor> supplierFor(Method m) {
       return () -> new JsonArrayAggImplementor(m);
     }
+
     @Override public List<Type> getStateType(AggContext info) {
       return Collections.singletonList(List.class);
     }
 
     @Override public void implementReset(AggContext info,
-                                         AggResetContext reset) {
+        AggResetContext reset) {
       reset.currentBlock().add(
           Expressions.statement(
               Expressions.assign(reset.accumulator().get(0),
@@ -1857,19 +1853,17 @@ public class RexImpTable {
     }
 
     @Override public void implementAdd(AggContext info,
-                                       AggAddContext add) {
+        AggAddContext add) {
       add.currentBlock().add(
           Expressions.statement(
-              Expressions.call(
-                  m,
+              Expressions.call(m,
                   Iterables.concat(
-                      Collections.singletonList(
-                          add.accumulator().get(0)),
+                      Collections.singletonList(add.accumulator().get(0)),
                       add.arguments()))));
     }
 
     @Override public Expression implementResult(AggContext info,
-                                                AggResultContext result) {
+        AggResultContext result) {
       return Expressions.call(BuiltInMethod.JSONIZE.method,
           result.accumulator().get(0));
     }

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/rel/rules/SubQueryRemoveRule.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/rel/rules/SubQueryRemoveRule.java 
b/core/src/main/java/org/apache/calcite/rel/rules/SubQueryRemoveRule.java
index 3383f97..b993184 100644
--- a/core/src/main/java/org/apache/calcite/rel/rules/SubQueryRemoveRule.java
+++ b/core/src/main/java/org/apache/calcite/rel/rules/SubQueryRemoveRule.java
@@ -346,9 +346,7 @@ public abstract class SubQueryRemoveRule extends RelOptRule 
{
         builder.filter(
             builder.or(
                 builder.and(conditions),
-                builder.or(
-                    isNullOpperands
-                )));
+                builder.or(isNullOpperands)));
         RexNode project = builder.and(
             fields.stream()
                 .map(builder::isNotNull)

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/runtime/CalciteResource.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/runtime/CalciteResource.java 
b/core/src/main/java/org/apache/calcite/runtime/CalciteResource.java
index b5a512d..14089c5 100644
--- a/core/src/main/java/org/apache/calcite/runtime/CalciteResource.java
+++ b/core/src/main/java/org/apache/calcite/runtime/CalciteResource.java
@@ -784,11 +784,11 @@ public interface CalciteResource {
 
   @BaseMessage("Invalid types for arithmetic: {0} {1} {2}")
   ExInst<CalciteException> invalidTypesForArithmetic(String clazzName0, String 
op,
-                                                     String clazzName1);
+      String clazzName1);
 
   @BaseMessage("Invalid types for comparison: {0} {1} {2}")
   ExInst<CalciteException> invalidTypesForComparison(String clazzName0, String 
op,
-                                                     String clazzName1);
+      String clazzName1);
 
   @BaseMessage("Cannot convert {0} to {1}")
   ExInst<CalciteException> cannotConvert(String o, String toType);

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java 
b/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
index adda9d8..e3f54f7 100644
--- a/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
+++ b/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
@@ -130,8 +130,10 @@ public class SqlFunctions {
       Pattern.compile("^\\s*(?<mode>strict|lax)\\s+(?<spec>.+)$",
           Pattern.CASE_INSENSITIVE | Pattern.DOTALL | Pattern.MULTILINE);
 
-  private static final JsonProvider JSON_PATH_JSON_PROVIDER = new 
JacksonJsonProvider();
-  private static final MappingProvider JSON_PATH_MAPPING_PROVIDER = new 
JacksonMappingProvider();
+  private static final JsonProvider JSON_PATH_JSON_PROVIDER =
+      new JacksonJsonProvider();
+  private static final MappingProvider JSON_PATH_MAPPING_PROVIDER =
+      new JacksonMappingProvider();
 
   private SqlFunctions() {
   }
@@ -2492,8 +2494,7 @@ public class SqlFunctions {
                 .builder()
                 .jsonProvider(JSON_PATH_JSON_PROVIDER)
                 .mappingProvider(JSON_PATH_MAPPING_PROVIDER)
-                .build()
-        );
+                .build());
         break;
       case LAX:
         if (input instanceof Exception) {
@@ -2505,8 +2506,7 @@ public class SqlFunctions {
                 .options(Option.SUPPRESS_EXCEPTIONS)
                 .jsonProvider(JSON_PATH_JSON_PROVIDER)
                 .mappingProvider(JSON_PATH_MAPPING_PROVIDER)
-                .build()
-        );
+                .build());
         break;
       default:
         throw RESOURCE.illegalJsonPathModeInPathSpec(mode.toString(), 
pathSpec).ex();
@@ -2525,7 +2525,8 @@ public class SqlFunctions {
     return jsonExists(input, SqlJsonExistsErrorBehavior.FALSE);
   }
 
-  public static Boolean jsonExists(Object input, SqlJsonExistsErrorBehavior 
errorBehavior) {
+  public static Boolean jsonExists(Object input,
+      SqlJsonExistsErrorBehavior errorBehavior) {
     PathContext context = (PathContext) input;
     if (context.exc != null) {
       switch (errorBehavior) {
@@ -2538,7 +2539,8 @@ public class SqlFunctions {
       case UNKNOWN:
         return null;
       default:
-        throw 
RESOURCE.illegalErrorBehaviorInJsonExistsFunc(errorBehavior.toString()).ex();
+        throw RESOURCE.illegalErrorBehaviorInJsonExistsFunc(
+            errorBehavior.toString()).ex();
       }
     } else {
       return !Objects.isNull(context.pathReturned);
@@ -2546,12 +2548,12 @@ public class SqlFunctions {
   }
 
   public static Object jsonValueAny(Object input,
-                                 SqlJsonValueEmptyOrErrorBehavior 
emptyBehavior,
-                                 Object defaultValueOnEmpty,
-                                 SqlJsonValueEmptyOrErrorBehavior 
errorBehavior,
-                                 Object defaultValueOnError) {
-    PathContext context = (PathContext) input;
-    Exception exc;
+      SqlJsonValueEmptyOrErrorBehavior emptyBehavior,
+      Object defaultValueOnEmpty,
+      SqlJsonValueEmptyOrErrorBehavior errorBehavior,
+      Object defaultValueOnError) {
+    final PathContext context = (PathContext) input;
+    final Exception exc;
     if (context.exc != null) {
       exc = context.exc;
     } else {
@@ -2566,10 +2568,13 @@ public class SqlFunctions {
         case DEFAULT:
           return defaultValueOnEmpty;
         default:
-          throw 
RESOURCE.illegalEmptyBehaviorInJsonValueFunc(emptyBehavior.toString()).ex();
+          throw RESOURCE.illegalEmptyBehaviorInJsonValueFunc(
+              emptyBehavior.toString()).ex();
         }
-      } else if (context.mode == PathMode.STRICT && !isScalarObject(value)) {
-        exc = 
RESOURCE.scalarValueRequiredInStrictModeOfJsonValueFunc(value.toString()).ex();
+      } else if (context.mode == PathMode.STRICT
+          && !isScalarObject(value)) {
+        exc = RESOURCE.scalarValueRequiredInStrictModeOfJsonValueFunc(
+            value.toString()).ex();
       } else {
         return value;
       }
@@ -2582,16 +2587,17 @@ public class SqlFunctions {
     case DEFAULT:
       return defaultValueOnError;
     default:
-      throw 
RESOURCE.illegalErrorBehaviorInJsonValueFunc(errorBehavior.toString()).ex();
+      throw RESOURCE.illegalErrorBehaviorInJsonValueFunc(
+          errorBehavior.toString()).ex();
     }
   }
 
   public static String jsonQuery(Object input,
-                                 SqlJsonQueryWrapperBehavior wrapperBehavior,
-                                 SqlJsonQueryEmptyOrErrorBehavior 
emptyBehavior,
-                                 SqlJsonQueryEmptyOrErrorBehavior 
errorBehavior) {
-    PathContext context = (PathContext) input;
-    Exception exc;
+      SqlJsonQueryWrapperBehavior wrapperBehavior,
+      SqlJsonQueryEmptyOrErrorBehavior emptyBehavior,
+      SqlJsonQueryEmptyOrErrorBehavior errorBehavior) {
+    final PathContext context = (PathContext) input;
+    final Exception exc;
     if (context.exc != null) {
       exc = context.exc;
     } else {
@@ -2614,7 +2620,8 @@ public class SqlFunctions {
           }
           break;
         default:
-          throw 
RESOURCE.illegalWrapperBehaviorInJsonQueryFunc(wrapperBehavior.toString()).ex();
+          throw RESOURCE.illegalWrapperBehaviorInJsonQueryFunc(
+              wrapperBehavior.toString()).ex();
         }
       }
       if (value == null || context.mode == PathMode.LAX
@@ -2629,10 +2636,12 @@ public class SqlFunctions {
         case EMPTY_OBJECT:
           return "{}";
         default:
-          throw 
RESOURCE.illegalEmptyBehaviorInJsonQueryFunc(emptyBehavior.toString()).ex();
+          throw RESOURCE.illegalEmptyBehaviorInJsonQueryFunc(
+              emptyBehavior.toString()).ex();
         }
       } else if (context.mode == PathMode.STRICT && isScalarObject(value)) {
-        exc = 
RESOURCE.arrayOrObjectValueRequiredInStrictModeOfJsonQueryFunc(value.toString()).ex();
+        exc = RESOURCE.arrayOrObjectValueRequiredInStrictModeOfJsonQueryFunc(
+            value.toString()).ex();
       } else {
         try {
           return jsonize(value);
@@ -2651,7 +2660,8 @@ public class SqlFunctions {
     case EMPTY_OBJECT:
       return "{}";
     default:
-      throw 
RESOURCE.illegalErrorBehaviorInJsonQueryFunc(errorBehavior.toString()).ex();
+      throw RESOURCE.illegalErrorBehaviorInJsonQueryFunc(
+          errorBehavior.toString()).ex();
     }
   }
 
@@ -2663,7 +2673,8 @@ public class SqlFunctions {
     return JSON_PATH_JSON_PROVIDER.parse(input);
   }
 
-  public static String jsonObject(SqlJsonConstructorNullClause nullClause, 
Object... kvs) {
+  public static String jsonObject(SqlJsonConstructorNullClause nullClause,
+      Object... kvs) {
     assert kvs.length % 2 == 0;
     Map<String, Object> map = new HashMap<>();
     for (int i = 0; i < kvs.length; i += 2) {
@@ -2684,7 +2695,7 @@ public class SqlFunctions {
   }
 
   public static void jsonObjectAggAdd(Map map, String k, Object v,
-                                        SqlJsonConstructorNullClause 
nullClause) {
+      SqlJsonConstructorNullClause nullClause) {
     if (k == null) {
       throw RESOURCE.nullKeyOfJsonObjectNotAllowed().ex();
     }
@@ -2705,7 +2716,8 @@ public class SqlFunctions {
     jsonObjectAggAdd(map, k, v, SqlJsonConstructorNullClause.ABSENT_ON_NULL);
   }
 
-  public static String jsonArray(SqlJsonConstructorNullClause nullClause, 
Object... elements) {
+  public static String jsonArray(SqlJsonConstructorNullClause nullClause,
+      Object... elements) {
     List<Object> list = new ArrayList<>();
     for (Object element : elements) {
       if (element == null) {
@@ -2720,7 +2732,7 @@ public class SqlFunctions {
   }
 
   public static void jsonArrayAggAdd(List list, Object element,
-                                      SqlJsonConstructorNullClause nullClause) 
{
+      SqlJsonConstructorNullClause nullClause) {
     if (element == null) {
       if (nullClause == SqlJsonConstructorNullClause.NULL_ON_NULL) {
         list.add(null);
@@ -2823,8 +2835,9 @@ public class SqlFunctions {
   }
 
   /**
-   * Path spec has two different modes: lax mode and strict mode. Lax mode 
suppress any thrown
-   * exception and return null; where strict mode throws exceptions.
+   * Path spec has two different modes: lax mode and strict mode.
+   * Lax mode suppresses any thrown exception and returns null,
+   * whereas strict mode throws exceptions.
    */
   public enum PathMode {
     LAX,

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/SqlJsonEncoding.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlJsonEncoding.java 
b/core/src/main/java/org/apache/calcite/sql/SqlJsonEncoding.java
index 77bc632..b658081 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlJsonEncoding.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlJsonEncoding.java
@@ -17,7 +17,8 @@
 package org.apache.calcite.sql;
 
 /**
- * SqlJsonEncoding lists the supported json encodings that could be passed to 
JsonValueExpression.
+ * Supported json encodings that could be passed to a
+ * {@code JsonValueExpression}.
  */
 public enum SqlJsonEncoding {
   UTF8("UTF8"),

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/SqlJsonQueryEmptyOrErrorBehavior.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/SqlJsonQueryEmptyOrErrorBehavior.java
 
b/core/src/main/java/org/apache/calcite/sql/SqlJsonQueryEmptyOrErrorBehavior.java
index ce363fc..2dd2e34 100644
--- 
a/core/src/main/java/org/apache/calcite/sql/SqlJsonQueryEmptyOrErrorBehavior.java
+++ 
b/core/src/main/java/org/apache/calcite/sql/SqlJsonQueryEmptyOrErrorBehavior.java
@@ -22,10 +22,14 @@ import java.util.Locale;
  * Categorizing Json query empty or error behaviors.
  */
 public enum SqlJsonQueryEmptyOrErrorBehavior {
-  ERROR, NULL, EMPTY_ARRAY, EMPTY_OBJECT;
+  ERROR,
+  NULL,
+  EMPTY_ARRAY,
+  EMPTY_OBJECT;
 
   @Override public String toString() {
-    return String.format(Locale.ENGLISH, 
"SqlJsonQueryEmptyOrErrorBehavior[%s]", name());
+    return String.format(Locale.ENGLISH,
+        "SqlJsonQueryEmptyOrErrorBehavior[%s]", name());
   }
 }
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/SqlJsonQueryWrapperBehavior.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/SqlJsonQueryWrapperBehavior.java 
b/core/src/main/java/org/apache/calcite/sql/SqlJsonQueryWrapperBehavior.java
index 12c9dc4..b58440b 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlJsonQueryWrapperBehavior.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlJsonQueryWrapperBehavior.java
@@ -20,7 +20,9 @@ package org.apache.calcite.sql;
  * How json query function handle array result.
  */
 public enum SqlJsonQueryWrapperBehavior {
-  WITHOUT_ARRAY, WITH_CONDITIONAL_ARRAY, WITH_UNCONDITIONAL_ARRAY
+  WITHOUT_ARRAY,
+  WITH_CONDITIONAL_ARRAY,
+  WITH_UNCONDITIONAL_ARRAY
 }
 
 // End SqlJsonQueryWrapperBehavior.java

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/SqlJsonValueEmptyOrErrorBehavior.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/SqlJsonValueEmptyOrErrorBehavior.java
 
b/core/src/main/java/org/apache/calcite/sql/SqlJsonValueEmptyOrErrorBehavior.java
index 42cc84c..cb39279 100644
--- 
a/core/src/main/java/org/apache/calcite/sql/SqlJsonValueEmptyOrErrorBehavior.java
+++ 
b/core/src/main/java/org/apache/calcite/sql/SqlJsonValueEmptyOrErrorBehavior.java
@@ -22,10 +22,13 @@ import java.util.Locale;
  * Categorizing Json value empty or error behaviors.
  */
 public enum SqlJsonValueEmptyOrErrorBehavior {
-  ERROR, NULL, DEFAULT;
+  ERROR,
+  NULL,
+  DEFAULT;
 
   @Override public String toString() {
-    return String.format(Locale.ENGLISH, 
"SqlJsonValueEmptyOrErrorBehavior[%s]", name());
+    return String.format(Locale.ENGLISH,
+        "SqlJsonValueEmptyOrErrorBehavior[%s]", name());
   }
 }
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/dialect/HsqldbSqlDialect.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/dialect/HsqldbSqlDialect.java 
b/core/src/main/java/org/apache/calcite/sql/dialect/HsqldbSqlDialect.java
index 1cbd56c..6321914 100644
--- a/core/src/main/java/org/apache/calcite/sql/dialect/HsqldbSqlDialect.java
+++ b/core/src/main/java/org/apache/calcite/sql/dialect/HsqldbSqlDialect.java
@@ -94,12 +94,10 @@ public class HsqldbSqlDialect extends SqlDialect {
             SqlStdOperatorTable.COUNT.createCall(SqlParserPos.ZERO, operand),
             SqlNodeList.of(
                 SqlLiteral.createExactNumeric("0", SqlParserPos.ZERO),
-                SqlLiteral.createExactNumeric("1", SqlParserPos.ZERO)
-            ),
+                SqlLiteral.createExactNumeric("1", SqlParserPos.ZERO)),
             SqlNodeList.of(
                 nullLiteral,
-                SqlStdOperatorTable.MIN.createCall(SqlParserPos.ZERO, operand)
-            ),
+                SqlStdOperatorTable.MIN.createCall(SqlParserPos.ZERO, 
operand)),
             SqlStdOperatorTable.SCALAR_QUERY.createCall(SqlParserPos.ZERO,
                 SqlStdOperatorTable.UNION_ALL
                     .createCall(SqlParserPos.ZERO, unionOperand, 
unionOperand)));

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/dialect/MysqlSqlDialect.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/dialect/MysqlSqlDialect.java 
b/core/src/main/java/org/apache/calcite/sql/dialect/MysqlSqlDialect.java
index e4f6b7f..807ba6c 100644
--- a/core/src/main/java/org/apache/calcite/sql/dialect/MysqlSqlDialect.java
+++ b/core/src/main/java/org/apache/calcite/sql/dialect/MysqlSqlDialect.java
@@ -127,12 +127,10 @@ public class MysqlSqlDialect extends SqlDialect {
             SqlStdOperatorTable.COUNT.createCall(SqlParserPos.ZERO, operand),
             SqlNodeList.of(
                 SqlLiteral.createExactNumeric("0", SqlParserPos.ZERO),
-                SqlLiteral.createExactNumeric("1", SqlParserPos.ZERO)
-            ),
+                SqlLiteral.createExactNumeric("1", SqlParserPos.ZERO)),
             SqlNodeList.of(
                 nullLiteral,
-                operand
-            ),
+                operand),
             SqlStdOperatorTable.SCALAR_QUERY.createCall(SqlParserPos.ZERO,
                 SqlStdOperatorTable.UNION_ALL
                     .createCall(SqlParserPos.ZERO, unionOperand, 
unionOperand)));

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonApiCommonSyntaxOperator.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonApiCommonSyntaxOperator.java
 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonApiCommonSyntaxOperator.java
index 3cf5baa..de50336 100644
--- 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonApiCommonSyntaxOperator.java
+++ 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonApiCommonSyntaxOperator.java
@@ -34,28 +34,20 @@ import org.apache.calcite.sql.validate.SqlValidator;
 public class SqlJsonApiCommonSyntaxOperator extends SqlSpecialOperator {
 
   public SqlJsonApiCommonSyntaxOperator() {
-    super(
-        "JSON_API_COMMON_SYNTAX",
-        SqlKind.JSON_API_COMMON_SYNTAX,
-        100,
-        true,
-        ReturnTypes.explicit(SqlTypeName.ANY),
-        null,
-        OperandTypes.family(SqlTypeFamily.ANY, SqlTypeFamily.STRING)
-    );
+    super("JSON_API_COMMON_SYNTAX", SqlKind.JSON_API_COMMON_SYNTAX, 100, true,
+        ReturnTypes.explicit(SqlTypeName.ANY), null,
+        OperandTypes.family(SqlTypeFamily.ANY, SqlTypeFamily.STRING));
   }
 
-  @Override protected void checkOperandCount(
-      SqlValidator validator,
-      SqlOperandTypeChecker argType,
-      SqlCall call
-  ) {
+  @Override protected void checkOperandCount(SqlValidator validator,
+      SqlOperandTypeChecker argType, SqlCall call) {
     if (call.operandCount() != 2) {
       throw new UnsupportedOperationException("json passing syntax is not yet 
supported");
     }
   }
 
-  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec, 
int rightPrec) {
+  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec,
+      int rightPrec) {
     SqlWriter.Frame frame = writer.startList(SqlWriter.FrameTypeEnum.SIMPLE);
     call.operand(0).unparse(writer, 0, 0);
     writer.sep(",", true);

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonArrayAggAggFunction.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonArrayAggAggFunction.java 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonArrayAggAggFunction.java
index f4a33d2..4791e67 100644
--- 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonArrayAggAggFunction.java
+++ 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonArrayAggAggFunction.java
@@ -32,27 +32,18 @@ import org.apache.calcite.util.Optionality;
  * The <code>JSON_OBJECTAGG</code> aggregation function.
  */
 public class SqlJsonArrayAggAggFunction extends SqlAggFunction {
-  private final String name;
   private final SqlJsonConstructorNullClause nullClause;
 
-  public SqlJsonArrayAggAggFunction(String name, SqlJsonConstructorNullClause 
nullClause) {
-    super(
-        name,
-        null,
-        SqlKind.JSON_ARRAYAGG,
-        ReturnTypes.VARCHAR_2000,
-        null,
-        OperandTypes.ANY,
-        SqlFunctionCategory.SYSTEM,
-        false,
-        false,
-        Optionality.FORBIDDEN
-    );
-    this.name = name;
+  public SqlJsonArrayAggAggFunction(String name,
+      SqlJsonConstructorNullClause nullClause) {
+    super(name, null, SqlKind.JSON_ARRAYAGG, ReturnTypes.VARCHAR_2000, null,
+        OperandTypes.ANY, SqlFunctionCategory.SYSTEM, false, false,
+        Optionality.FORBIDDEN);
     this.nullClause = nullClause;
   }
 
-  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec, 
int rightPrec) {
+  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec,
+      int rightPrec) {
     assert call.operandCount() == 1;
     final SqlWriter.Frame frame = writer.startFunCall("JSON_ARRAYAGG");
     call.operand(0).unparse(writer, leftPrec, rightPrec);

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonArrayFunction.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonArrayFunction.java 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonArrayFunction.java
index b702a98..0306654 100644
--- a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonArrayFunction.java
+++ b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonArrayFunction.java
@@ -39,36 +39,32 @@ import java.util.Locale;
  */
 public class SqlJsonArrayFunction extends SqlFunction {
   public SqlJsonArrayFunction() {
-    super(
-        "JSON_ARRAY",
-        SqlKind.OTHER_FUNCTION,
-        ReturnTypes.VARCHAR_2000,
-        null,
-        OperandTypes.VARIADIC,
-        SqlFunctionCategory.SYSTEM
-    );
+    super("JSON_ARRAY", SqlKind.OTHER_FUNCTION, ReturnTypes.VARCHAR_2000, null,
+        OperandTypes.VARIADIC, SqlFunctionCategory.SYSTEM);
   }
 
   @Override public SqlOperandCountRange getOperandCountRange() {
     return SqlOperandCountRanges.from(1);
   }
 
-  @Override protected void checkOperandCount(SqlValidator validator, 
SqlOperandTypeChecker argType,
-                                             SqlCall call) {
+  @Override protected void checkOperandCount(SqlValidator validator,
+      SqlOperandTypeChecker argType, SqlCall call) {
     assert call.operandCount() >= 1;
   }
 
-  @Override public SqlCall createCall(SqlLiteral functionQualifier, 
SqlParserPos pos,
-                                      SqlNode... operands) {
+  @Override public SqlCall createCall(SqlLiteral functionQualifier,
+      SqlParserPos pos, SqlNode... operands) {
     if (operands[0] == null) {
-      operands[0] = 
SqlLiteral.createSymbol(SqlJsonConstructorNullClause.ABSENT_ON_NULL, pos);
+      operands[0] =
+          SqlLiteral.createSymbol(SqlJsonConstructorNullClause.ABSENT_ON_NULL,
+              pos);
     }
     return super.createCall(functionQualifier, pos, operands);
   }
 
   @Override public String getSignatureTemplate(int operandsCount) {
     assert operandsCount >= 1;
-    StringBuilder sb = new StringBuilder();
+    final StringBuilder sb = new StringBuilder();
     sb.append("{0}(");
     for (int i = 1; i < operandsCount; i++) {
       sb.append(String.format(Locale.ENGLISH, "{%d} ", i + 1));
@@ -77,7 +73,8 @@ public class SqlJsonArrayFunction extends SqlFunction {
     return sb.toString();
   }
 
-  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec, 
int rightPrec) {
+  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec,
+      int rightPrec) {
     assert call.operandCount() >= 1;
     final SqlWriter.Frame frame = writer.startFunCall(getName());
     SqlWriter.Frame listFrame = writer.startList("", "");

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonExistsFunction.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonExistsFunction.java 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonExistsFunction.java
index 4c10c01..84774b2 100644
--- a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonExistsFunction.java
+++ b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonExistsFunction.java
@@ -29,14 +29,10 @@ import org.apache.calcite.sql.type.ReturnTypes;
  */
 public class SqlJsonExistsFunction extends SqlFunction {
   public SqlJsonExistsFunction() {
-    super(
-        "JSON_EXISTS",
-        SqlKind.OTHER_FUNCTION,
-        ReturnTypes.BOOLEAN_FORCE_NULLABLE,
-        null,
+    super("JSON_EXISTS", SqlKind.OTHER_FUNCTION,
+        ReturnTypes.BOOLEAN_FORCE_NULLABLE, null,
         OperandTypes.or(OperandTypes.ANY, OperandTypes.ANY_ANY),
-        SqlFunctionCategory.SYSTEM
-    );
+        SqlFunctionCategory.SYSTEM);
   }
 
   @Override public String getSignatureTemplate(int operandsCount) {
@@ -47,7 +43,8 @@ public class SqlJsonExistsFunction extends SqlFunction {
     return "{0}({1} {2} ON ERROR)";
   }
 
-  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec, 
int rightPrec) {
+  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec,
+      int rightPrec) {
     final SqlWriter.Frame frame = writer.startFunCall(getName());
     call.operand(0).unparse(writer, 0, 0);
     if (call.operandCount() == 2) {

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonObjectAggAggFunction.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonObjectAggAggFunction.java
 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonObjectAggAggFunction.java
index 075d3d2..4b50c5c 100644
--- 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonObjectAggAggFunction.java
+++ 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonObjectAggAggFunction.java
@@ -33,27 +33,18 @@ import org.apache.calcite.util.Optionality;
  * The <code>JSON_OBJECTAGG</code> aggregation function.
  */
 public class SqlJsonObjectAggAggFunction extends SqlAggFunction {
-  private final String name;
   private final SqlJsonConstructorNullClause nullClause;
 
-  public SqlJsonObjectAggAggFunction(String name, SqlJsonConstructorNullClause 
nullClause) {
-    super(
-        name,
-        null,
-        SqlKind.JSON_OBJECTAGG,
-        ReturnTypes.VARCHAR_2000,
-        null,
+  public SqlJsonObjectAggAggFunction(String name,
+      SqlJsonConstructorNullClause nullClause) {
+    super(name, null, SqlKind.JSON_OBJECTAGG, ReturnTypes.VARCHAR_2000, null,
         OperandTypes.family(SqlTypeFamily.CHARACTER, SqlTypeFamily.ANY),
-        SqlFunctionCategory.SYSTEM,
-        false,
-        false,
-        Optionality.FORBIDDEN
-    );
-    this.name = name;
+        SqlFunctionCategory.SYSTEM, false, false, Optionality.FORBIDDEN);
     this.nullClause = nullClause;
   }
 
-  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec, 
int rightPrec) {
+  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec,
+      int rightPrec) {
     assert call.operandCount() == 2;
     final SqlWriter.Frame frame = writer.startFunCall("JSON_OBJECTAGG");
     writer.keyword("KEY");

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonObjectFunction.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonObjectFunction.java 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonObjectFunction.java
index 8ca8eed..771c823 100644
--- a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonObjectFunction.java
+++ b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonObjectFunction.java
@@ -43,27 +43,22 @@ import static org.apache.calcite.util.Static.RESOURCE;
  */
 public class SqlJsonObjectFunction extends SqlFunction {
   public SqlJsonObjectFunction() {
-    super(
-        "JSON_OBJECT",
-        SqlKind.OTHER_FUNCTION,
-        ReturnTypes.VARCHAR_2000,
-        null,
-        null,
-        SqlFunctionCategory.SYSTEM
-    );
+    super("JSON_OBJECT", SqlKind.OTHER_FUNCTION, ReturnTypes.VARCHAR_2000, 
null,
+        null, SqlFunctionCategory.SYSTEM);
   }
 
   @Override public SqlOperandCountRange getOperandCountRange() {
     return SqlOperandCountRanges.from(1);
   }
 
-  @Override protected void checkOperandCount(SqlValidator validator, 
SqlOperandTypeChecker argType,
-                                             SqlCall call) {
+  @Override protected void checkOperandCount(SqlValidator validator,
+      SqlOperandTypeChecker argType, SqlCall call) {
     assert call.operandCount() % 2 == 1;
   }
 
-  @Override public boolean checkOperandTypes(SqlCallBinding callBinding, 
boolean throwOnFailure) {
-    int count = callBinding.getOperandCount();
+  @Override public boolean checkOperandTypes(SqlCallBinding callBinding,
+      boolean throwOnFailure) {
+    final int count = callBinding.getOperandCount();
     for (int i = 1; i < count; i += 2) {
       RelDataType nameType = callBinding.getOperandType(i);
       if (!SqlTypeUtil.inCharFamily(nameType)) {
@@ -75,7 +70,8 @@ public class SqlJsonObjectFunction extends SqlFunction {
       if (nameType.isNullable()) {
         if (throwOnFailure) {
           throw callBinding.newError(
-              
RESOURCE.argumentMustNotBeNull(callBinding.operand(i).toString()));
+              RESOURCE.argumentMustNotBeNull(
+                  callBinding.operand(i).toString()));
         }
         return false;
       }
@@ -83,10 +79,11 @@ public class SqlJsonObjectFunction extends SqlFunction {
     return true;
   }
 
-  @Override public SqlCall createCall(SqlLiteral functionQualifier, 
SqlParserPos pos,
-                                      SqlNode... operands) {
+  @Override public SqlCall createCall(SqlLiteral functionQualifier,
+      SqlParserPos pos, SqlNode... operands) {
     if (operands[0] == null) {
-      operands[0] = 
SqlLiteral.createSymbol(SqlJsonConstructorNullClause.NULL_ON_NULL, pos);
+      operands[0] = SqlLiteral.createSymbol(
+          SqlJsonConstructorNullClause.NULL_ON_NULL, pos);
     }
     return super.createCall(functionQualifier, pos, operands);
   }
@@ -102,7 +99,8 @@ public class SqlJsonObjectFunction extends SqlFunction {
     return sb.toString();
   }
 
-  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec, 
int rightPrec) {
+  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec,
+      int rightPrec) {
     assert call.operandCount() % 2 == 1;
     final SqlWriter.Frame frame = writer.startFunCall(getName());
     SqlWriter.Frame listFrame = writer.startList("", "");

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonQueryFunction.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonQueryFunction.java 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonQueryFunction.java
index f650fbb..91f9c55 100644
--- a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonQueryFunction.java
+++ b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonQueryFunction.java
@@ -36,25 +36,25 @@ import org.apache.calcite.sql.type.SqlTypeTransforms;
  */
 public class SqlJsonQueryFunction extends SqlFunction {
   public SqlJsonQueryFunction() {
-    super(
-        "JSON_QUERY",
-        SqlKind.OTHER_FUNCTION,
-        ReturnTypes.cascade(ReturnTypes.VARCHAR_2000, 
SqlTypeTransforms.FORCE_NULLABLE),
+    super("JSON_QUERY", SqlKind.OTHER_FUNCTION,
+        ReturnTypes.cascade(ReturnTypes.VARCHAR_2000,
+            SqlTypeTransforms.FORCE_NULLABLE),
         null,
         OperandTypes.family(SqlTypeFamily.ANY,
             SqlTypeFamily.ANY, SqlTypeFamily.ANY, SqlTypeFamily.ANY),
-        SqlFunctionCategory.SYSTEM
-    );
+        SqlFunctionCategory.SYSTEM);
   }
 
   @Override public String getSignatureTemplate(int operandsCount) {
     return "{0}({1} {2} WRAPPER {3} ON EMPTY {4} ON ERROR)";
   }
 
-  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec, 
int rightPrec) {
+  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec,
+      int rightPrec) {
     final SqlWriter.Frame frame = writer.startFunCall(getName());
     call.operand(0).unparse(writer, 0, 0);
-    SqlJsonQueryWrapperBehavior wrapperBehavior = 
getEnumValue(call.operand(1));
+    final SqlJsonQueryWrapperBehavior wrapperBehavior =
+        getEnumValue(call.operand(1));
     switch (wrapperBehavior) {
     case WITHOUT_ARRAY:
       writer.keyword("WITHOUT ARRAY");
@@ -76,8 +76,8 @@ public class SqlJsonQueryFunction extends SqlFunction {
     writer.endFunCall(frame);
   }
 
-  @Override public SqlCall createCall(SqlLiteral functionQualifier, 
SqlParserPos pos,
-                                      SqlNode... operands) {
+  @Override public SqlCall createCall(SqlLiteral functionQualifier,
+      SqlParserPos pos, SqlNode... operands) {
     if (operands[1] == null) {
       operands[1] = 
SqlLiteral.createSymbol(SqlJsonQueryWrapperBehavior.WITHOUT_ARRAY, pos);
     }
@@ -90,9 +90,8 @@ public class SqlJsonQueryFunction extends SqlFunction {
     return super.createCall(functionQualifier, pos, operands);
   }
 
-
   private void unparseEmptyOrErrorBehavior(SqlWriter writer,
-                                           SqlJsonQueryEmptyOrErrorBehavior 
emptyBehavior) {
+      SqlJsonQueryEmptyOrErrorBehavior emptyBehavior) {
     switch (emptyBehavior) {
     case NULL:
       writer.keyword("NULL");

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonValueExpressionOperator.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonValueExpressionOperator.java
 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonValueExpressionOperator.java
index ac6b53c..fbad8e1 100644
--- 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonValueExpressionOperator.java
+++ 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonValueExpressionOperator.java
@@ -16,55 +16,42 @@
  */
 package org.apache.calcite.sql.fun;
 
-import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeFactory;
 import org.apache.calcite.sql.SqlCall;
-import org.apache.calcite.sql.SqlCallBinding;
 import org.apache.calcite.sql.SqlKind;
-import org.apache.calcite.sql.SqlOperatorBinding;
 import org.apache.calcite.sql.SqlSpecialOperator;
 import org.apache.calcite.sql.SqlWriter;
 import org.apache.calcite.sql.type.OperandTypes;
-import org.apache.calcite.sql.type.SqlOperandTypeInference;
-import org.apache.calcite.sql.type.SqlReturnTypeInference;
 import org.apache.calcite.sql.type.SqlTypeName;
 
 /**
- * The JSON value expression operator which indicate that the value expression
+ * The JSON value expression operator that indicates that the value expression
  * should be parsed as JSON.
  */
 public class SqlJsonValueExpressionOperator extends SqlSpecialOperator {
   private final boolean structured;
 
   public SqlJsonValueExpressionOperator(String name, boolean structured) {
-    super(
-        name,
-        SqlKind.JSON_VALUE_EXPRESSION,
-        100,
-        true,
-        new SqlReturnTypeInference() {
-          @Override public RelDataType inferReturnType(SqlOperatorBinding 
opBinding) {
-            return opBinding.getTypeFactory().createTypeWithNullability(
-                opBinding.getTypeFactory().createSqlType(SqlTypeName.ANY),
-                true);
-          }
+    super(name, SqlKind.JSON_VALUE_EXPRESSION, 100, true,
+        opBinding -> {
+          final RelDataTypeFactory typeFactory = opBinding.getTypeFactory();
+          return typeFactory.createTypeWithNullability(
+              typeFactory.createSqlType(SqlTypeName.ANY), true);
         },
-        new SqlOperandTypeInference() {
-          @Override public void inferOperandTypes(SqlCallBinding callBinding,
-                                                  RelDataType returnType,
-                                                  RelDataType[] operandTypes) {
-            if (callBinding.isOperandNull(0, false)) {
-              operandTypes[0] = 
callBinding.getTypeFactory().createTypeWithNullability(
-                  callBinding.getTypeFactory().createSqlType(SqlTypeName.ANY),
-                  true);
-            }
+        (callBinding, returnType, operandTypes) -> {
+          if (callBinding.isOperandNull(0, false)) {
+            final RelDataTypeFactory typeFactory =
+                callBinding.getTypeFactory();
+            operandTypes[0] = typeFactory.createTypeWithNullability(
+                typeFactory.createSqlType(SqlTypeName.ANY), true);
           }
         },
-        structured ? OperandTypes.ANY : OperandTypes.STRING
-    );
+        structured ? OperandTypes.ANY : OperandTypes.STRING);
     this.structured = structured;
   }
 
-  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec, 
int rightPrec) {
+  @Override public void unparse(SqlWriter writer, SqlCall call, int leftPrec,
+      int rightPrec) {
     call.operand(0).unparse(writer, 0, 0);
     if (!structured) {
       writer.keyword("FORMAT JSON");

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonValueFunction.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonValueFunction.java 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonValueFunction.java
index 2b16500..f99a09c 100644
--- a/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonValueFunction.java
+++ b/core/src/main/java/org/apache/calcite/sql/fun/SqlJsonValueFunction.java
@@ -33,9 +33,9 @@ import org.apache.calcite.sql.SqlOperatorBinding;
 import org.apache.calcite.sql.SqlWriter;
 import org.apache.calcite.sql.parser.SqlParserPos;
 import org.apache.calcite.sql.type.SqlOperandCountRanges;
-import org.apache.calcite.sql.type.SqlOperandTypeInference;
 import org.apache.calcite.sql.type.SqlTypeName;
 import org.apache.calcite.sql.type.SqlTypeUtil;
+import org.apache.calcite.sql.validate.SqlValidator;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -46,44 +46,35 @@ import static org.apache.calcite.util.Static.RESOURCE;
  * The <code>JSON_VALUE</code> function.
  */
 public class SqlJsonValueFunction extends SqlFunction {
-
   private final boolean returnAny;
 
   public SqlJsonValueFunction(String name, boolean returnAny) {
-    super(
-        name,
-        SqlKind.OTHER_FUNCTION,
-        null,
-        new SqlOperandTypeInference() {
-          @Override public void inferOperandTypes(SqlCallBinding callBinding,
-                                                  RelDataType returnType,
-                                                  RelDataType[] operandTypes) {
-            RelDataTypeFactory typeFactory = callBinding.getTypeFactory();
-            for (int i = 0; i < operandTypes.length; ++i) {
-              operandTypes[i] =
-                  typeFactory.createSqlType(SqlTypeName.ANY);
-            }
+    super(name, SqlKind.OTHER_FUNCTION, null,
+        (callBinding, returnType, operandTypes) -> {
+          RelDataTypeFactory typeFactory = callBinding.getTypeFactory();
+          for (int i = 0; i < operandTypes.length; ++i) {
+            operandTypes[i] = typeFactory.createSqlType(SqlTypeName.ANY);
           }
         },
-        null,
-        SqlFunctionCategory.SYSTEM
-    );
+        null, SqlFunctionCategory.SYSTEM);
     this.returnAny = returnAny;
   }
 
-  @Override public SqlCall createCall(SqlLiteral functionQualifier, 
SqlParserPos pos,
-                                      SqlNode... operands) {
+  @Override public SqlCall createCall(SqlLiteral functionQualifier,
+      SqlParserPos pos, SqlNode... operands) {
     List<SqlNode> operandList = new ArrayList<>();
     operandList.add(operands[0]);
     if (operands[1] == null) {
-      
operandList.add(SqlLiteral.createSymbol(SqlJsonValueEmptyOrErrorBehavior.NULL, 
pos));
+      operandList.add(
+          SqlLiteral.createSymbol(SqlJsonValueEmptyOrErrorBehavior.NULL, pos));
       operandList.add(SqlLiteral.createNull(pos));
     } else {
       operandList.add(operands[1]);
       operandList.add(operands[2]);
     }
     if (operands[3] == null) {
-      
operandList.add(SqlLiteral.createSymbol(SqlJsonValueEmptyOrErrorBehavior.NULL, 
pos));
+      operandList.add(
+          SqlLiteral.createSymbol(SqlJsonValueEmptyOrErrorBehavior.NULL, pos));
       operandList.add(SqlLiteral.createNull(pos));
     } else {
       operandList.add(operands[3]);
@@ -91,15 +82,15 @@ public class SqlJsonValueFunction extends SqlFunction {
     }
     if (operands.length == 6 && operands[5] != null) {
       if (returnAny) {
-        throw new IllegalArgumentException("illegal returning clause in 
json_value_any function");
+        throw new IllegalArgumentException(
+            "illegal returning clause in json_value_any function");
       }
       operandList.add(operands[5]);
     } else if (!returnAny) {
-      SqlDataTypeSpec defaultTypeSpec = new SqlDataTypeSpec(
-          new SqlIdentifier("VARCHAR", pos), 2000, -1,
-          null, null, pos);
-      operandList.add(
-          defaultTypeSpec);
+      SqlDataTypeSpec defaultTypeSpec =
+          new SqlDataTypeSpec(new SqlIdentifier("VARCHAR", pos), 2000, -1,
+              null, null, pos);
+      operandList.add(defaultTypeSpec);
     }
     return super.createCall(functionQualifier, pos,
         operandList.toArray(SqlNode.EMPTY_ARRAY));
@@ -110,33 +101,35 @@ public class SqlJsonValueFunction extends SqlFunction {
   }
 
   @Override public boolean checkOperandTypes(SqlCallBinding callBinding,
-                                             boolean throwOnFailure) {
+      boolean throwOnFailure) {
+    final SqlValidator validator = callBinding.getValidator();
     RelDataType defaultValueOnEmptyType =
-        
callBinding.getValidator().getValidatedNodeType(callBinding.operand(2));
+        validator.getValidatedNodeType(callBinding.operand(2));
     RelDataType defaultValueOnErrorType =
-        
callBinding.getValidator().getValidatedNodeType(callBinding.operand(4));
-    RelDataType returnType = callBinding.getValidator().deriveType(
-        callBinding.getScope(), callBinding.operand(5));
-    if (!canCastFrom(callBinding, throwOnFailure, defaultValueOnEmptyType, 
returnType)) {
+        validator.getValidatedNodeType(callBinding.operand(4));
+    RelDataType returnType =
+        validator.deriveType(callBinding.getScope(), callBinding.operand(5));
+    if (!canCastFrom(callBinding, throwOnFailure, defaultValueOnEmptyType,
+        returnType)) {
       return false;
     }
-    if (!canCastFrom(callBinding, throwOnFailure, defaultValueOnErrorType, 
returnType)) {
+    if (!canCastFrom(callBinding, throwOnFailure, defaultValueOnErrorType,
+        returnType)) {
       return false;
     }
     return true;
   }
 
   @Override public RelDataType inferReturnType(SqlOperatorBinding opBinding) {
-    assert opBinding.getOperandCount() == 5 || opBinding.getOperandCount() == 
6;
+    assert opBinding.getOperandCount() == 5
+        || opBinding.getOperandCount() == 6;
     RelDataType ret;
     if (opBinding.getOperandCount() == 6) {
       ret = opBinding.getOperandType(5);
     } else {
       ret = opBinding.getTypeFactory().createSqlType(SqlTypeName.ANY);
     }
-    return opBinding.getTypeFactory().createTypeWithNullability(
-        ret,
-        true);
+    return opBinding.getTypeFactory().createTypeWithNullability(ret, true);
   }
 
   @Override public String getSignatureTemplate(int operandsCount) {
@@ -179,8 +172,8 @@ public class SqlJsonValueFunction extends SqlFunction {
         == SqlJsonValueEmptyOrErrorBehavior.DEFAULT;
   }
 
-  private boolean canCastFrom(SqlCallBinding callBinding, boolean 
throwOnFailure,
-                              RelDataType inType, RelDataType outType) {
+  private boolean canCastFrom(SqlCallBinding callBinding,
+      boolean throwOnFailure, RelDataType inType, RelDataType outType) {
     if (SqlTypeUtil.canCastFrom(outType, inType, true)) {
       return true;
     }

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java
index 99fc91d..03d4336 100644
--- a/core/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java
+++ b/core/src/main/java/org/apache/calcite/sql/fun/SqlStdOperatorTable.java
@@ -1273,38 +1273,41 @@ public class SqlStdOperatorTable extends 
ReflectiveSqlOperatorTable {
       new SqlJsonValueExpressionOperator("JSON_VALUE_EXPRESSION", false);
 
   public static final SqlJsonValueExpressionOperator 
JSON_STRUCTURED_VALUE_EXPRESSION =
-      new SqlJsonValueExpressionOperator("JSON_STRUCTURED_VALUE_EXPRESSION", 
true);
+      new SqlJsonValueExpressionOperator("JSON_STRUCTURED_VALUE_EXPRESSION",
+          true);
 
   public static final SqlJsonApiCommonSyntaxOperator JSON_API_COMMON_SYNTAX =
       new SqlJsonApiCommonSyntaxOperator();
 
   public static final SqlFunction JSON_EXISTS = new SqlJsonExistsFunction();
 
-  public static final SqlFunction JSON_VALUE = new 
SqlJsonValueFunction("JSON_VALUE", false);
+  public static final SqlFunction JSON_VALUE =
+      new SqlJsonValueFunction("JSON_VALUE", false);
 
-  public static final SqlFunction JSON_VALUE_ANY = new 
SqlJsonValueFunction("JSON_VALUE_ANY", true);
+  public static final SqlFunction JSON_VALUE_ANY =
+      new SqlJsonValueFunction("JSON_VALUE_ANY", true);
 
   public static final SqlFunction JSON_QUERY = new SqlJsonQueryFunction();
 
   public static final SqlFunction JSON_OBJECT = new SqlJsonObjectFunction();
 
-  public static final SqlAggFunction JSON_OBJECTAGG_NULL_ON_NULL
-      = new SqlJsonObjectAggAggFunction("JSON_OBJECTAGG_NULL_ON_NULL",
-      SqlJsonConstructorNullClause.NULL_ON_NULL);
+  public static final SqlAggFunction JSON_OBJECTAGG_NULL_ON_NULL =
+      new SqlJsonObjectAggAggFunction("JSON_OBJECTAGG_NULL_ON_NULL",
+          SqlJsonConstructorNullClause.NULL_ON_NULL);
 
-  public static final SqlAggFunction JSON_OBJECTAGG_ABSENT_ON_NULL
-      = new SqlJsonObjectAggAggFunction("JSON_OBJECTAGG_ABSENT_ON_NULL",
-      SqlJsonConstructorNullClause.ABSENT_ON_NULL);
+  public static final SqlAggFunction JSON_OBJECTAGG_ABSENT_ON_NULL =
+      new SqlJsonObjectAggAggFunction("JSON_OBJECTAGG_ABSENT_ON_NULL",
+          SqlJsonConstructorNullClause.ABSENT_ON_NULL);
 
   public static final SqlFunction JSON_ARRAY = new SqlJsonArrayFunction();
 
-  public static final SqlAggFunction JSON_ARRAYAGG_NULL_ON_NULL
-      = new SqlJsonArrayAggAggFunction("JSON_ARRAYAGG_NULL_ON_NULL",
-      SqlJsonConstructorNullClause.NULL_ON_NULL);
+  public static final SqlAggFunction JSON_ARRAYAGG_NULL_ON_NULL =
+      new SqlJsonArrayAggAggFunction("JSON_ARRAYAGG_NULL_ON_NULL",
+          SqlJsonConstructorNullClause.NULL_ON_NULL);
 
-  public static final SqlAggFunction JSON_ARRAYAGG_ABSENT_ON_NULL
-      = new SqlJsonArrayAggAggFunction("JSON_ARRAYAGG_ABSENT_ON_NULL",
-      SqlJsonConstructorNullClause.ABSENT_ON_NULL);
+  public static final SqlAggFunction JSON_ARRAYAGG_ABSENT_ON_NULL =
+      new SqlJsonArrayAggAggFunction("JSON_ARRAYAGG_ABSENT_ON_NULL",
+          SqlJsonConstructorNullClause.ABSENT_ON_NULL);
 
   public static final SqlBetweenOperator BETWEEN =
       new SqlBetweenOperator(

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql/type/ReturnTypes.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/type/ReturnTypes.java 
b/core/src/main/java/org/apache/calcite/sql/type/ReturnTypes.java
index fe77119..fddcdb5 100644
--- a/core/src/main/java/org/apache/calcite/sql/type/ReturnTypes.java
+++ b/core/src/main/java/org/apache/calcite/sql/type/ReturnTypes.java
@@ -203,7 +203,8 @@ public abstract class ReturnTypes {
       };
 
   /**
-   * Type-inference strategy whereby the result type of a call is a nullable 
Boolean.
+   * Type-inference strategy whereby the result type of a call is a nullable
+   * Boolean.
    */
   public static final SqlReturnTypeInference BOOLEAN_FORCE_NULLABLE =
       cascade(BOOLEAN, SqlTypeTransforms.FORCE_NULLABLE);

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/sql2rel/StandardConvertletTable.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/calcite/sql2rel/StandardConvertletTable.java 
b/core/src/main/java/org/apache/calcite/sql2rel/StandardConvertletTable.java
index e5d5557..6f783f9 100644
--- a/core/src/main/java/org/apache/calcite/sql2rel/StandardConvertletTable.java
+++ b/core/src/main/java/org/apache/calcite/sql2rel/StandardConvertletTable.java
@@ -213,25 +213,15 @@ public class StandardConvertletTable extends 
ReflectiveConvertletTable {
     // to cast(json_value('{"foo":"bar"}', 'lax $.foo') as varchar(2000))
     registerOp(
         SqlStdOperatorTable.JSON_VALUE,
-        new SqlRexConvertlet() {
-          @Override public RexNode convertCall(SqlRexContext cx, SqlCall call) 
{
-            SqlNode expanded = SqlStdOperatorTable.CAST.createCall(
-                SqlParserPos.ZERO,
-                SqlStdOperatorTable.JSON_VALUE_ANY.createCall(
-                    SqlParserPos.ZERO,
-                    call.operand(0),
-                    call.operand(1),
-                    call.operand(2),
-                    call.operand(3),
-                    call.operand(4),
-                    null
-                ),
-                call.operand(5)
-            );
-            return cx.convertExpression(expanded);
-          }
-        }
-    );
+        (cx, call) -> {
+          SqlNode expanded =
+              SqlStdOperatorTable.CAST.createCall(SqlParserPos.ZERO,
+                  SqlStdOperatorTable.JSON_VALUE_ANY.createCall(
+                      SqlParserPos.ZERO, call.operand(0), call.operand(1),
+                      call.operand(2), call.operand(3), call.operand(4), null),
+              call.operand(5));
+          return cx.convertExpression(expanded);
+        });
 
     // REVIEW jvs 24-Apr-2006: This only seems to be working from within a
     // windowed agg.  I have added an optimizer rule

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/main/java/org/apache/calcite/util/BuiltInMethod.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/BuiltInMethod.java 
b/core/src/main/java/org/apache/calcite/util/BuiltInMethod.java
index 79efaac..b3803dd 100644
--- a/core/src/main/java/org/apache/calcite/util/BuiltInMethod.java
+++ b/core/src/main/java/org/apache/calcite/util/BuiltInMethod.java
@@ -259,10 +259,12 @@ public enum BuiltInMethod {
   UPPER(SqlFunctions.class, "upper", String.class),
   LOWER(SqlFunctions.class, "lower", String.class),
   JSONIZE(SqlFunctions.class, "jsonize", Object.class),
-  JSON_VALUE_EXPRESSION(SqlFunctions.class, "jsonValueExpression", 
String.class),
-  JSON_STRUCTURED_VALUE_EXPRESSION(SqlFunctions.class, 
"jsonStructuredValueExpression",
-      Object.class),
-  JSON_API_COMMON_SYNTAX(SqlFunctions.class, "jsonApiCommonSyntax", 
Object.class, String.class),
+  JSON_VALUE_EXPRESSION(SqlFunctions.class, "jsonValueExpression",
+      String.class),
+  JSON_STRUCTURED_VALUE_EXPRESSION(SqlFunctions.class,
+      "jsonStructuredValueExpression", Object.class),
+  JSON_API_COMMON_SYNTAX(SqlFunctions.class, "jsonApiCommonSyntax",
+      Object.class, String.class),
   JSON_EXISTS(SqlFunctions.class, "jsonExists", Object.class),
   JSON_VALUE_ANY(SqlFunctions.class, "jsonValueAny", Object.class,
       SqlJsonValueEmptyOrErrorBehavior.class,
@@ -274,16 +276,18 @@ public enum BuiltInMethod {
       SqlJsonQueryWrapperBehavior.class,
       SqlJsonQueryEmptyOrErrorBehavior.class,
       SqlJsonQueryEmptyOrErrorBehavior.class),
-  JSON_OBJECT(SqlFunctions.class, "jsonObject", 
SqlJsonConstructorNullClause.class),
-  JSON_OBJECTAGG_ADD_NULL_ON_NULL(SqlFunctions.class, 
"jsonObjectAggAddNullOnNull",
-      Map.class, String.class, Object.class),
-  JSON_OBJECTAGG_ADD_ABSENT_ON_NULL(SqlFunctions.class, 
"jsonObjectAggAddAbsentOnNull",
-      Map.class, String.class, Object.class),
-  JSON_ARRAY(SqlFunctions.class, "jsonArray", 
SqlJsonConstructorNullClause.class),
-  JSON_ARRAYAGG_ADD_NULL_ON_NULL(SqlFunctions.class, 
"jsonArrayAggAddNullOnNull",
-      List.class, Object.class),
-  JSON_ARRAYAGG_ADD_ABSENT_ON_NULL(SqlFunctions.class, 
"jsonArrayAggAddAbsentOnNull",
-      List.class, Object.class),
+  JSON_OBJECT(SqlFunctions.class, "jsonObject",
+      SqlJsonConstructorNullClause.class),
+  JSON_OBJECTAGG_ADD_NULL_ON_NULL(SqlFunctions.class,
+      "jsonObjectAggAddNullOnNull", Map.class, String.class, Object.class),
+  JSON_OBJECTAGG_ADD_ABSENT_ON_NULL(SqlFunctions.class,
+      "jsonObjectAggAddAbsentOnNull", Map.class, String.class, Object.class),
+  JSON_ARRAY(SqlFunctions.class, "jsonArray",
+      SqlJsonConstructorNullClause.class),
+  JSON_ARRAYAGG_ADD_NULL_ON_NULL(SqlFunctions.class,
+      "jsonArrayAggAddNullOnNull", List.class, Object.class),
+  JSON_ARRAYAGG_ADD_ABSENT_ON_NULL(SqlFunctions.class,
+      "jsonArrayAggAddAbsentOnNull", List.class, Object.class),
   IS_JSON_VALUE(SqlFunctions.class, "isJsonValue", String.class),
   IS_JSON_OBJECT(SqlFunctions.class, "isJsonObject", String.class),
   IS_JSON_ARRAY(SqlFunctions.class, "isJsonArray", String.class),

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/test/java/org/apache/calcite/sql/test/SqlOperatorBaseTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/calcite/sql/test/SqlOperatorBaseTest.java 
b/core/src/test/java/org/apache/calcite/sql/test/SqlOperatorBaseTest.java
index c1cb089..78a2fb7 100644
--- a/core/src/test/java/org/apache/calcite/sql/test/SqlOperatorBaseTest.java
+++ b/core/src/test/java/org/apache/calcite/sql/test/SqlOperatorBaseTest.java
@@ -4254,7 +4254,6 @@ public abstract class SqlOperatorBaseTest {
     tester.checkNull("upper(cast(null as varchar(1)))");
   }
 
-
   @Test public void testJsonExists() {
     tester.checkBoolean("json_exists('{\"foo\":\"bar\"}', "
         + "'strict $.foo' false on error)", Boolean.TRUE);

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/test/java/org/apache/calcite/sql/test/SqlTester.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/sql/test/SqlTester.java 
b/core/src/test/java/org/apache/calcite/sql/test/SqlTester.java
index ef63253..4e9ad88 100644
--- a/core/src/test/java/org/apache/calcite/sql/test/SqlTester.java
+++ b/core/src/test/java/org/apache/calcite/sql/test/SqlTester.java
@@ -318,7 +318,8 @@ public interface SqlTester extends AutoCloseable, 
SqlValidatorTestCase.Tester {
       double delta);
 
   /**
-   * Checks that an aggregate expression with multiple args returns the 
expected result.
+   * Checks that an aggregate expression with multiple args returns the 
expected
+   * result.
    *
    * @param expr        Aggregate expression, e.g. <code>AGG_FUNC(x, x2, 
x3)</code>
    * @param inputValues Nested array of input values, e.g. <code>[

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/test/java/org/apache/calcite/sql/test/SqlTests.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/sql/test/SqlTests.java 
b/core/src/test/java/org/apache/calcite/sql/test/SqlTests.java
index a46a002..aa032fa 100644
--- a/core/src/test/java/org/apache/calcite/sql/test/SqlTests.java
+++ b/core/src/test/java/org/apache/calcite/sql/test/SqlTests.java
@@ -137,13 +137,15 @@ public abstract class SqlTests {
     return buf.toString();
   }
 
-  public static String generateAggQueryWithMultipleArgs(String expr, 
String[][] inputValues) {
+  public static String generateAggQueryWithMultipleArgs(String expr,
+      String[][] inputValues) {
     int argCount = -1;
     for (String[] row : inputValues) {
       if (argCount == -1) {
         argCount = row.length;
       } else if (argCount != row.length) {
-        throw new IllegalArgumentException("invalid test input: " + 
Arrays.toString(row));
+        throw new IllegalArgumentException("invalid test input: "
+            + Arrays.toString(row));
       }
     }
     StringBuilder buf = new StringBuilder();

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/test/java/org/apache/calcite/test/BookstoreSchema.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/BookstoreSchema.java 
b/core/src/test/java/org/apache/calcite/test/BookstoreSchema.java
index 65ad112..cfd75e9 100644
--- a/core/src/test/java/org/apache/calcite/test/BookstoreSchema.java
+++ b/core/src/test/java/org/apache/calcite/test/BookstoreSchema.java
@@ -61,8 +61,7 @@ public final class BookstoreSchema {
                       new Page(2, "Acknowledgements"))),
               new Book("The Last Temptation of Christ",
                   1955,
-                  Collections.singletonList(new Page(1, "Contents")))
-          )),
+                  Collections.singletonList(new Page(1, "Contents"))))),
       new Author(3,
           "Homer",
           new Place(null,

http://git-wip-us.apache.org/repos/asf/calcite/blob/6d9242a1/core/src/test/java/org/apache/calcite/test/RexProgramTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/RexProgramTest.java 
b/core/src/test/java/org/apache/calcite/test/RexProgramTest.java
index 7dddb71..5f50144 100644
--- a/core/src/test/java/org/apache/calcite/test/RexProgramTest.java
+++ b/core/src/test/java/org/apache/calcite/test/RexProgramTest.java
@@ -1158,8 +1158,8 @@ public class RexProgramTest extends RexProgramBuilderBase 
{
     checkSimplify(
         case_(eq(falseLiteral, falseLiteral), falseLiteral,
               eq(falseLiteral, falseLiteral), trueLiteral,
-              trueLiteral
-    ), "false");
+              trueLiteral),
+        "false");
 
     // is null, applied to not-null value
     checkSimplify(rexBuilder.makeCall(SqlStdOperatorTable.IS_NULL, aRef),

Reply via email to