This is an automated email from the ASF dual-hosted git repository. github-bot pushed a change to branch site in repository https://gitbox.apache.org/repos/asf/calcite.git
discard dc487b1388 [CALCITE-5572] Release Calcite 1.34.0 discard aa37e14daa [CALCITE-5555] Remove obsolete instructions for processing requests for new JIRA accounts discard b798154ddc [CALCITE-5550] Update instructions for requesting Jira account to use self-serve facility add 3dae2519f8 [CALCITE-5537] Slow test case failures in LatticeSuggesterTest add 29fcbf14f1 [CALCITE-5478] Use highest input precision for datetimes in SqlTypeFactoryImpl.leastRestrictive add a990ecc4ae [CALCITE-5510] RelToSqlConverter should use ordinal for `ORDER BY` if the dialect allows add 0f1a40deef Add tests for [CALCITE-2980] Implement the FORMAT clause of the CAST operator add 49a0d5e9c1 [CALCITE-5357] Add FORMAT_TIME, FORMAT_DATE, FORMAT_DATETIME, FORMAT_TIMESTAMP functions (enabled in BigQuery library) add 65a5efc0d6 [CALCITE-5484] Add DATETIME_SUB function (enabled in BigQuery library) add cb97d299d2 [CALCITE-5469] Add DATETIME_ADD, DATETIME_DIFF, DATE_ADD, DATE_DIFF functions (enabled in BigQuery library) add 90599a6e9b [CALCITE-5518] RelToSql converter generates invalid order of ROLLUP fields add 4f1452ecfb CompositeOperandTypeChecker's java doc uses wrong class name add 2dba40e7a0 [CALCITE-5546] Code style: Break long assignment expressions after '=' add fb063e8d11 [CALCITE-5504] Array value constructor is unparsed incorrectly for `SparkSqlDialect` add 1e89771404 [CALCITE-5550] Update instructions for requesting Jira account to use self-serve facility add 4e19520962 [CALCITE-5545] Allow for overriding SqlValidator to enable custom SqlNode validation add ee9b80b0b6 [CALCITE-5555] Remove obsolete instructions for processing requests for new JIRA accounts add 7dfd641bae [CALCITE-5572] Release Calcite 1.34.0 This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (dc487b1388) \ N -- N -- N refs/heads/site (7dfd641bae) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. No new revisions were added by this update. Summary of changes: babel/src/main/codegen/config.fmpp | 1 + babel/src/test/resources/sql/big-query.iq | 209 +- build.gradle.kts | 6 +- .../adapter/cassandra/CassandraEnumerator.java | 7 +- .../calcite/adapter/cassandra/CassandraSchema.java | 8 +- .../adapter/cassandra/CassandraSchemaFactory.java | 4 +- .../calcite/adapter/cassandra/CassandraTable.java | 9 +- .../test/CassandraAdapterDataTypesTest.java | 7 +- core/src/main/codegen/default_config.fmpp | 2 + core/src/main/codegen/templates/Parser.jj | 62 + .../apache/calcite/adapter/clone/ColumnLoader.java | 9 +- .../calcite/adapter/enumerable/EnumUtils.java | 53 +- .../adapter/enumerable/EnumerableAggregate.java | 4 +- .../enumerable/EnumerableAggregateBase.java | 18 +- .../enumerable/EnumerableBatchNestedLoopJoin.java | 28 +- .../adapter/enumerable/EnumerableBindable.java | 5 +- .../calcite/adapter/enumerable/EnumerableCalc.java | 8 +- .../adapter/enumerable/EnumerableConvention.java | 6 +- .../adapter/enumerable/EnumerableCorrelate.java | 5 +- .../adapter/enumerable/EnumerableHashJoin.java | 22 +- .../enumerable/EnumerableInterpretable.java | 6 +- .../adapter/enumerable/EnumerableInterpreter.java | 8 +- .../adapter/enumerable/EnumerableLimit.java | 29 +- .../adapter/enumerable/EnumerableLimitRule.java | 8 +- .../adapter/enumerable/EnumerableLimitSort.java | 14 +- .../enumerable/EnumerableLimitSortRule.java | 17 +- .../adapter/enumerable/EnumerableMatch.java | 57 +- .../adapter/enumerable/EnumerableMergeJoin.java | 30 +- .../enumerable/EnumerableMergeJoinRule.java | 11 +- .../adapter/enumerable/EnumerableMergeUnion.java | 68 +- .../enumerable/EnumerableMergeUnionRule.java | 5 +- .../enumerable/EnumerableRelImplementor.java | 30 +- .../adapter/enumerable/EnumerableRepeatUnion.java | 51 +- .../adapter/enumerable/EnumerableRules.java | 48 +- .../enumerable/EnumerableSortedAggregate.java | 31 +- .../enumerable/EnumerableSortedAggregateRule.java | 7 +- .../enumerable/EnumerableTableFunctionScan.java | 18 +- .../adapter/enumerable/EnumerableTableModify.java | 4 +- .../adapter/enumerable/EnumerableTableScan.java | 11 +- .../adapter/enumerable/EnumerableTableSpool.java | 34 +- .../adapter/enumerable/EnumerableTraitsUtils.java | 3 +- .../enumerable/EnumerableUncollectRule.java | 5 +- .../adapter/enumerable/EnumerableUnionRule.java | 4 +- .../adapter/enumerable/EnumerableValuesRule.java | 5 +- .../adapter/enumerable/EnumerableWindow.java | 229 +- .../calcite/adapter/enumerable/JavaRowFormat.java | 26 +- .../calcite/adapter/enumerable/PhysTypeImpl.java | 14 +- .../calcite/adapter/enumerable/RexImpTable.java | 180 +- .../adapter/enumerable/RexToLixTranslator.java | 434 +-- .../adapter/enumerable/StrictAggImplementor.java | 9 +- .../calcite/adapter/java/ReflectiveSchema.java | 20 +- .../calcite/adapter/jdbc/JdbcCatalogSchema.java | 6 +- .../org/apache/calcite/adapter/jdbc/JdbcRules.java | 15 +- .../apache/calcite/adapter/jdbc/JdbcSchema.java | 18 +- .../adapter/jdbc/JdbcToEnumerableConverter.java | 57 +- .../calcite/config/CalciteSystemProperty.java | 6 +- .../apache/calcite/interpreter/AggregateNode.java | 8 +- .../apache/calcite/interpreter/Interpreter.java | 11 +- .../calcite/interpreter/JaninoRexCompiler.java | 13 +- .../org/apache/calcite/interpreter/JoinNode.java | 5 +- .../apache/calcite/interpreter/ProjectNode.java | 4 +- .../apache/calcite/interpreter/TableScanNode.java | 28 +- .../apache/calcite/jdbc/CachingCalciteSchema.java | 51 +- .../apache/calcite/jdbc/CalciteConnectionImpl.java | 8 +- .../org/apache/calcite/jdbc/CalciteMetaImpl.java | 28 +- .../org/apache/calcite/jdbc/CalciteStatement.java | 2 +- .../main/java/org/apache/calcite/jdbc/Driver.java | 54 +- .../apache/calcite/jdbc/JavaTypeFactoryImpl.java | 12 +- .../apache/calcite/jdbc/SimpleCalciteSchema.java | 22 +- .../CachingLatticeStatisticProvider.java | 6 +- .../org/apache/calcite/materialize/Lattice.java | 10 +- .../calcite/materialize/LatticeSuggester.java | 5 +- .../materialize/MaterializationService.java | 4 +- .../apache/calcite/materialize/MutableNode.java | 12 +- .../org/apache/calcite/model/ModelHandler.java | 20 +- .../apache/calcite/plan/ConventionTraitDef.java | 5 +- .../apache/calcite/plan/RelOptMaterialization.java | 46 +- .../calcite/plan/RelOptMaterializations.java | 11 +- .../java/org/apache/calcite/plan/RelOptRules.java | 169 +- .../java/org/apache/calcite/plan/RelOptUtil.java | 34 +- .../java/org/apache/calcite/plan/RelTraitSet.java | 4 +- .../apache/calcite/plan/SubstitutionVisitor.java | 152 +- .../org/apache/calcite/plan/volcano/Dumpers.java | 5 +- .../org/apache/calcite/plan/volcano/RelSet.java | 20 +- .../calcite/plan/volcano/TopDownRuleDriver.java | 9 +- .../calcite/plan/volcano/VolcanoPlanner.java | 16 +- .../plan/volcano/VolcanoRelMetadataProvider.java | 9 +- .../calcite/plan/volcano/VolcanoRuleCall.java | 6 +- .../calcite/prepare/CalciteCatalogReader.java | 4 +- .../calcite/prepare/CalciteMaterializer.java | 9 +- .../apache/calcite/prepare/CalcitePrepareImpl.java | 94 +- .../calcite/prepare/CalciteSqlValidator.java | 7 +- .../org/apache/calcite/prepare/PlannerImpl.java | 25 +- .../java/org/apache/calcite/prepare/Prepare.java | 5 +- .../org/apache/calcite/profile/ProfilerImpl.java | 21 +- .../org/apache/calcite/profile/SimpleProfiler.java | 16 +- .../java/org/apache/calcite/rel/RelCollations.java | 4 +- .../main/java/org/apache/calcite/rel/RelNodes.java | 11 +- .../java/org/apache/calcite/rel/core/Collect.java | 13 +- .../java/org/apache/calcite/rel/core/Match.java | 5 +- .../java/org/apache/calcite/rel/core/Project.java | 4 +- .../apache/calcite/rel/externalize/RelJson.java | 12 +- .../calcite/rel/externalize/RelJsonReader.java | 37 +- .../apache/calcite/rel/hint/HintStrategyTable.java | 10 +- .../apache/calcite/rel/logical/LogicalWindow.java | 20 +- .../calcite/rel/metadata/BuiltInMetadata.java | 125 +- .../rel/metadata/CachingRelMetadataProvider.java | 7 +- .../metadata/ProxyingMetadataHandlerProvider.java | 47 +- .../calcite/rel/metadata/RelMdAllPredicates.java | 36 +- .../rel/metadata/RelMdColumnUniqueness.java | 6 +- .../calcite/rel/metadata/RelMdDistribution.java | 4 +- .../rel/metadata/RelMdExpressionLineage.java | 55 +- .../rel/metadata/RelMdPercentageOriginalRows.java | 4 +- .../calcite/rel/metadata/RelMdPredicates.java | 109 +- .../calcite/rel/metadata/RelMdTableReferences.java | 15 +- .../calcite/rel/metadata/RelMdUniqueKeys.java | 14 +- .../org/apache/calcite/rel/metadata/RelMdUtil.java | 11 +- .../calcite/rel/metadata/RelMetadataQuery.java | 4 +- .../apache/calcite/rel/mutable/MutableRels.java | 5 +- .../calcite/rel/rel2sql/RelToSqlConverter.java | 110 +- .../apache/calcite/rel/rel2sql/SqlImplementor.java | 97 +- .../rel/rules/AggregateCaseToFilterRule.java | 6 +- .../AggregateExpandDistinctAggregatesRule.java | 17 +- .../rules/AggregateExpandWithinDistinctRule.java | 18 +- .../rel/rules/AggregateFilterTransposeRule.java | 12 +- .../rel/rules/AggregateJoinJoinRemoveRule.java | 4 +- .../calcite/rel/rules/AggregateJoinRemoveRule.java | 7 +- .../rel/rules/AggregateJoinTransposeRule.java | 23 +- .../rel/rules/AggregateReduceFunctionsRule.java | 105 +- .../calcite/rel/rules/AggregateStarTableRule.java | 5 +- .../rel/rules/AggregateUnionTransposeRule.java | 6 +- .../apache/calcite/rel/rules/DateRangeRules.java | 29 +- .../rel/rules/ExchangeRemoveConstantKeysRule.java | 8 +- .../rel/rules/FilterMultiJoinMergeRule.java | 5 +- .../calcite/rel/rules/FilterTableScanRule.java | 4 +- .../rel/rules/JoinProjectTransposeRule.java | 10 +- .../rules/JoinPushTransitivePredicatesRule.java | 5 +- .../calcite/rel/rules/JoinToMultiJoinRule.java | 5 +- .../apache/calcite/rel/rules/LoptMultiJoin.java | 7 +- .../calcite/rel/rules/LoptOptimizeJoinRule.java | 22 +- .../calcite/rel/rules/LoptSemiJoinOptimizer.java | 14 +- .../org/apache/calcite/rel/rules/MatchRule.java | 15 +- .../rel/rules/MaterializedViewFilterScanRule.java | 4 +- .../rel/rules/ProjectCorrelateTransposeRule.java | 9 +- .../rel/rules/ProjectJoinJoinRemoveRule.java | 13 +- .../calcite/rel/rules/ProjectJoinRemoveRule.java | 5 +- .../calcite/rel/rules/ProjectRemoveRule.java | 7 +- .../calcite/rel/rules/ProjectTableScanRule.java | 5 +- .../calcite/rel/rules/ProjectToWindowRule.java | 46 +- .../rel/rules/ProjectWindowTransposeRule.java | 10 +- .../calcite/rel/rules/ReduceDecimalsRule.java | 12 +- .../calcite/rel/rules/ReduceExpressionsRule.java | 12 +- .../org/apache/calcite/rel/rules/SemiJoinRule.java | 3 +- .../apache/calcite/rel/rules/SortJoinCopyRule.java | 58 +- .../calcite/rel/rules/SortJoinTransposeRule.java | 24 +- .../calcite/rel/rules/SortUnionTransposeRule.java | 10 +- .../org/apache/calcite/rel/rules/SpatialRules.java | 6 +- .../calcite/rel/rules/SubQueryRemoveRule.java | 138 +- .../apache/calcite/rel/rules/ValuesReduceRule.java | 6 +- .../materialize/MaterializedViewAggregateRule.java | 77 +- .../materialize/MaterializedViewJoinRule.java | 32 +- .../rules/materialize/MaterializedViewRule.java | 183 +- .../org/apache/calcite/rel/stream/StreamRules.java | 26 +- .../calcite/rel/type/RelDataTypeFactory.java | 5 +- .../calcite/rel/type/RelDataTypeFactoryImpl.java | 35 +- .../apache/calcite/rel/type/RelDataTypeHolder.java | 9 +- .../apache/calcite/rel/type/RelDataTypeSystem.java | 72 +- .../calcite/rel/type/RelDataTypeSystemImpl.java | 14 +- .../java/org/apache/calcite/rex/RexBuilder.java | 89 +- .../org/apache/calcite/rex/RexExecutorImpl.java | 16 +- .../java/org/apache/calcite/rex/RexLiteral.java | 6 +- .../main/java/org/apache/calcite/rex/RexOver.java | 5 +- .../java/org/apache/calcite/rex/RexProgram.java | 8 +- .../org/apache/calcite/rex/RexProgramBuilder.java | 11 +- .../java/org/apache/calcite/rex/RexSimplify.java | 65 +- .../main/java/org/apache/calcite/rex/RexUtil.java | 38 +- .../java/org/apache/calcite/runtime/HttpUtils.java | 4 +- .../org/apache/calcite/runtime/JsonFunctions.java | 64 +- .../main/java/org/apache/calcite/runtime/Like.java | 8 +- .../java/org/apache/calcite/runtime/Matcher.java | 10 +- .../calcite/runtime/ResultSetEnumerable.java | 4 +- .../calcite/runtime/SpatialTypeFunctions.java | 11 +- .../org/apache/calcite/runtime/SqlFunctions.java | 42 +- .../org/apache/calcite/runtime/XmlFunctions.java | 5 +- .../java/org/apache/calcite/schema/Schemas.java | 26 +- .../calcite/schema/impl/AggregateFunctionImpl.java | 4 +- .../calcite/schema/impl/MaterializedViewTable.java | 12 +- .../calcite/schema/impl/ModifiableViewTable.java | 12 +- .../calcite/schema/impl/TableFunctionImpl.java | 32 +- .../org/apache/calcite/schema/impl/ViewTable.java | 4 +- .../main/java/org/apache/calcite/sql/SqlCall.java | 6 +- .../org/apache/calcite/sql/SqlCallBinding.java | 10 +- .../java/org/apache/calcite/sql/SqlDialect.java | 14 + .../java/org/apache/calcite/sql/SqlFunction.java | 15 +- .../apache/calcite/sql/SqlIntervalQualifier.java | 76 + .../apache/calcite/sql/SqlJdbcFunctionCall.java | 38 +- .../main/java/org/apache/calcite/sql/SqlKind.java | 7 +- .../org/apache/calcite/sql/SqlLateralOperator.java | 6 +- .../java/org/apache/calcite/sql/SqlLiteral.java | 5 +- .../java/org/apache/calcite/sql/SqlOperator.java | 4 +- .../calcite/sql/SqlSpatialTypeOperatorTable.java | 10 +- .../calcite/sql/SqlSplittableAggFunction.java | 4 +- .../org/apache/calcite/sql/advise/SqlAdvisor.java | 14 +- .../sql/advise/SqlAdvisorGetHintsFunction.java | 4 +- .../sql/advise/SqlAdvisorGetHintsFunction2.java | 4 +- .../calcite/sql/dialect/BigQuerySqlDialect.java | 19 +- .../calcite/sql/dialect/FireboltSqlDialect.java | 5 +- .../apache/calcite/sql/dialect/HiveSqlDialect.java | 5 +- .../calcite/sql/dialect/HsqldbSqlDialect.java | 10 +- .../calcite/sql/dialect/JethroDataSqlDialect.java | 20 +- .../calcite/sql/dialect/MysqlSqlDialect.java | 7 +- .../calcite/sql/dialect/OracleSqlDialect.java | 5 +- .../calcite/sql/dialect/PostgresqlSqlDialect.java | 5 +- .../calcite/sql/dialect/SparkSqlDialect.java | 15 +- .../apache/calcite/sql/fun/SqlBetweenOperator.java | 4 +- .../apache/calcite/sql/fun/SqlCaseOperator.java | 5 +- .../org/apache/calcite/sql/fun/SqlDotOperator.java | 11 +- .../apache/calcite/sql/fun/SqlFloorFunction.java | 7 +- .../apache/calcite/sql/fun/SqlItemOperator.java | 4 +- .../sql/fun/SqlJsonObjectAggAggFunction.java | 9 +- .../calcite/sql/fun/SqlJsonObjectFunction.java | 4 +- .../calcite/sql/fun/SqlJsonValueFunction.java | 22 +- .../org/apache/calcite/sql/fun/SqlLibrary.java | 12 +- .../sql/fun/SqlLibraryOperatorTableFactory.java | 5 +- .../calcite/sql/fun/SqlLibraryOperators.java | 88 +- .../org/apache/calcite/sql/fun/SqlRowOperator.java | 22 +- .../apache/calcite/sql/parser/SqlParserUtil.java | 57 +- .../apache/calcite/sql/pretty/SqlPrettyWriter.java | 12 +- .../sql/type/CompositeOperandTypeChecker.java | 12 +- .../org/apache/calcite/sql/type/OperandTypes.java | 51 +- .../org/apache/calcite/sql/type/ReturnTypes.java | 15 +- .../calcite/sql/type/SetopOperandTypeChecker.java | 7 +- .../calcite/sql/type/SqlTypeFactoryImpl.java | 12 +- .../org/apache/calcite/sql/type/SqlTypeUtil.java | 17 +- .../sql/validate/AggregatingSelectScope.java | 14 +- .../calcite/sql/validate/DelegatingScope.java | 27 +- .../apache/calcite/sql/validate/EmptyScope.java | 8 +- .../calcite/sql/validate/SchemaNamespace.java | 11 +- .../calcite/sql/validate/SelectNamespace.java | 12 +- .../apache/calcite/sql/validate/SelectScope.java | 16 +- .../calcite/sql/validate/SetopNamespace.java | 16 +- .../apache/calcite/sql/validate/SqlMoniker.java | 5 +- .../calcite/sql/validate/SqlNameMatchers.java | 9 +- .../calcite/sql/validate/SqlValidatorImpl.java | 226 +- .../calcite/sql/validate/SqlValidatorUtil.java | 80 +- .../calcite/sql/validate/TableNamespace.java | 13 +- .../validate/implicit/AbstractTypeCoercion.java | 36 +- .../sql/validate/implicit/TypeCoercionImpl.java | 28 +- .../sql2rel/DeduplicateCorrelateVariables.java | 5 +- .../calcite/sql2rel/ReflectiveConvertletTable.java | 17 +- .../apache/calcite/sql2rel/RelDecorrelator.java | 54 +- .../apache/calcite/sql2rel/RelFieldTrimmer.java | 52 +- .../sql2rel/RelStructuredTypeFlattener.java | 15 +- .../apache/calcite/sql2rel/SqlToRelConverter.java | 244 +- .../calcite/sql2rel/StandardConvertletTable.java | 285 +- .../main/java/org/apache/calcite/tools/Hoist.java | 10 +- .../java/org/apache/calcite/tools/Programs.java | 18 +- .../java/org/apache/calcite/tools/RelBuilder.java | 25 +- .../main/java/org/apache/calcite/util/BitSets.java | 5 +- .../src/main/java/org/apache/calcite/util/Bug.java | 17 +- .../org/apache/calcite/util/BuiltInMethod.java | 6 + .../java/org/apache/calcite/util/ChunkList.java | 4 +- .../apache/calcite/util/DateTimeStringUtils.java | 4 +- .../calcite/util/DelegatingInvocationHandler.java | 36 +- .../apache/calcite/util/ImmutableNullableSet.java | 14 +- .../java/org/apache/calcite/util/JsonBuilder.java | 66 +- .../java/org/apache/calcite/util/ReflectUtil.java | 5 +- .../apache/calcite/util/RelToSqlConverterUtil.java | 15 +- .../org/apache/calcite/util/SaffronProperties.java | 19 +- .../apache/calcite/util/SerializableCharset.java | 5 +- .../main/java/org/apache/calcite/util/Sources.java | 8 +- .../main/java/org/apache/calcite/util/Util.java | 17 +- .../java/org/apache/calcite/util/XmlOutput.java | 9 +- .../apache/calcite/util/format/FormatElement.java | 58 + .../calcite/util/format/FormatElementEnum.java | 234 ++ .../apache/calcite/util/format/FormatModel.java | 22 +- .../apache/calcite/util/format/FormatModels.java | 278 ++ .../clone => util/format}/package-info.java | 4 +- .../java/org/apache/calcite/util/graph/Graphs.java | 5 +- .../util/graph/TopologicalOrderIterator.java | 18 +- .../calcite/util/javac/JavaCompilerArgs.java | 5 +- .../calcite/adapter/enumerable/PhysTypeTest.java | 54 +- .../calcite/adapter/enumerable/TypeFinderTest.java | 15 +- .../calcite/jdbc/CalciteRemoteDriverTest.java | 55 +- .../apache/calcite/jdbc/JavaTypeFactoryTest.java | 23 +- .../calcite/materialize/LatticeSuggesterTest.java | 11 +- .../materialize/NormalizationTrimFieldTest.java | 16 +- .../org/apache/calcite/plan/RelOptUtilTest.java | 137 +- .../org/apache/calcite/plan/RelWriterTest.java | 10 +- .../apache/calcite/plan/volcano/ComboRuleTest.java | 5 +- .../apache/calcite/plan/volcano/RelSetTest.java | 38 +- .../calcite/plan/volcano/TraitPropagationTest.java | 66 +- .../calcite/plan/volcano/VolcanoPlannerTest.java | 5 +- .../rel/logical/ToLogicalConverterTest.java | 5 +- .../calcite/rel/metadata/MetadataHandlerTest.java | 13 +- .../RelMetadataHandlerGeneratorUtilTest.java | 6 +- .../calcite/rel/rel2sql/RelToSqlConverterTest.java | 138 +- .../calcite/rel/rules/DateRangeRulesTest.java | 88 +- .../calcite/rel/rules/EnumerableLimitRuleTest.java | 8 +- .../calcite/rel/rules/SortRemoveRuleTest.java | 12 +- .../org/apache/calcite/rex/RexBuilderTest.java | 92 +- .../org/apache/calcite/rex/RexExecutorTest.java | 4 +- .../apache/calcite/rex/RexProgramBuilderBase.java | 6 +- .../org/apache/calcite/rex/RexProgramTest.java | 216 +- .../rex/RexSqlStandardConvertletTableTest.java | 32 +- .../apache/calcite/runtime/EnumerablesTest.java | 58 +- .../calcite/sql/SqlSetOptionOperatorTest.java | 8 +- .../apache/calcite/sql/test/SqlAdvisorTest.java | 16 +- .../calcite/sql/type/RelDataTypeSystemTest.java | 10 +- .../calcite/sql/type/SqlTypeFactoryTest.java | 41 +- .../apache/calcite/sql/type/SqlTypeFixture.java | 149 +- .../apache/calcite/sql/type/SqlTypeUtilTest.java | 4 +- .../calcite/sql/validate/SqlValidatorUtilTest.java | 24 +- .../org/apache/calcite/test/HepPlannerTest.java | 5 +- .../apache/calcite/test/JdbcFrontJdbcBackTest.java | 5 +- .../java/org/apache/calcite/test/JdbcTest.java | 429 +-- .../java/org/apache/calcite/test/LatticeTest.java | 10 +- .../MaterializedViewSubstitutionVisitorTest.java | 83 +- .../calcite/test/MaterializedViewTester.java | 31 +- .../java/org/apache/calcite/test/ModelTest.java | 14 +- .../org/apache/calcite/test/MutableRelTest.java | 12 +- .../apache/calcite/test/ReflectiveSchemaTest.java | 39 +- .../org/apache/calcite/test/RelBuilderTest.java | 282 +- .../org/apache/calcite/test/RelMetadataTest.java | 36 +- .../org/apache/calcite/test/RelOptRulesTest.java | 147 +- .../calcite/test/RexImplicationCheckerTest.java | 53 +- .../apache/calcite/test/RexTransformerTest.java | 30 +- .../calcite/test/RuleMatchVisualizerTest.java | 12 +- .../apache/calcite/test/ScannableTableTest.java | 4 +- .../apache/calcite/test/SqlHintsConverterTest.java | 79 +- .../calcite/test/SqlOperatorBindingTest.java | 20 +- .../test/SqlToRelConverterExtendedTest.java | 5 +- .../org/apache/calcite/test/SqlValidatorTest.java | 2 +- .../org/apache/calcite/test/TypeCoercionTest.java | 12 +- .../org/apache/calcite/tools/FrameworksTest.java | 12 +- .../java/org/apache/calcite/tools/PlannerTest.java | 111 +- .../org/apache/calcite/util/FormatModelTest.java | 67 + .../apache/calcite/util/PermutationTestCase.java | 23 +- .../java/org/apache/calcite/util/UtilTest.java | 6 +- core/src/test/resources/sql/cast-with-format.iq | 2884 ++++++++++++++++++++ .../adapter/druid/BinaryOperatorConversion.java | 6 +- .../adapter/druid/CeilOperatorConversion.java | 6 +- .../adapter/druid/DirectOperatorConversion.java | 6 +- .../calcite/adapter/druid/DruidExpressions.java | 25 +- .../calcite/adapter/druid/DruidJsonFilter.java | 9 +- .../apache/calcite/adapter/druid/DruidQuery.java | 130 +- .../apache/calcite/adapter/druid/DruidRules.java | 42 +- .../apache/calcite/adapter/druid/DruidSchema.java | 11 +- .../adapter/druid/DruidSqlCastConverter.java | 21 +- .../calcite/adapter/druid/DruidTableFactory.java | 17 +- .../adapter/druid/FloorOperatorConversion.java | 6 +- .../adapter/druid/NaryOperatorConverter.java | 10 +- .../adapter/druid/SubstringOperatorConversion.java | 28 +- .../adapter/druid/TimeExtractionFunction.java | 36 +- .../druid/UnaryPrefixOperatorConversion.java | 6 +- .../druid/UnarySuffixOperatorConversion.java | 11 +- .../adapter/druid/DruidQueryFilterTest.java | 5 +- .../org/apache/calcite/test/DruidAdapter2IT.java | 4 +- .../calcite/test/DruidDateRangeRulesTest.java | 17 +- .../elasticsearch/ElasticsearchAggregate.java | 11 +- .../adapter/elasticsearch/ElasticsearchJson.java | 10 +- .../elasticsearch/ElasticsearchMapping.java | 5 +- .../adapter/elasticsearch/ElasticsearchSchema.java | 4 +- .../elasticsearch/ElasticsearchSchemaFactory.java | 16 +- .../elasticsearch/ElasticsearchSearchResult.java | 15 +- .../adapter/elasticsearch/ElasticsearchTable.java | 11 +- .../ElasticsearchToEnumerableConverter.java | 55 +- .../elasticsearch/ElasticsearchTransport.java | 29 +- .../adapter/elasticsearch/PredicateAnalyzer.java | 21 +- .../calcite/adapter/elasticsearch/Scrolling.java | 11 +- .../adapter/elasticsearch/AggregationTest.java | 20 +- .../adapter/elasticsearch/BooleanLogicTest.java | 9 +- .../elasticsearch/ElasticSearchAdapterTest.java | 13 +- .../elasticsearch/EmbeddedElasticsearchPolicy.java | 18 +- .../calcite/adapter/elasticsearch/MatchTest.java | 29 +- .../adapter/elasticsearch/Projection2Test.java | 15 +- .../adapter/elasticsearch/ProjectionTest.java | 10 +- .../org/apache/calcite/adapter/csv/CsvTable.java | 5 +- .../test/java/org/apache/calcite/test/CsvTest.java | 24 +- .../apache/calcite/adapter/file/CsvEnumerator.java | 4 +- .../calcite/adapter/file/CsvStreamReader.java | 10 +- .../org/apache/calcite/adapter/file/CsvTable.java | 5 +- .../calcite/adapter/file/FileAdapterTest.java | 24 +- .../calcite/adapter/geode/rel/GeodeAggregate.java | 4 +- .../calcite/adapter/geode/rel/GeodeRules.java | 7 +- .../calcite/adapter/geode/rel/GeodeTable.java | 17 +- .../geode/rel/GeodeToEnumerableConverter.java | 10 +- .../adapter/geode/simple/GeodeSimpleSchema.java | 15 +- .../adapter/geode/rel/RelationalJdbcExample.java | 22 +- .../calcite/adapter/innodb/InnodbEnumerator.java | 8 +- .../adapter/innodb/InnodbFilterTranslator.java | 15 +- .../apache/calcite/adapter/innodb/InnodbTable.java | 21 +- .../innodb/InnodbToEnumerableConverter.java | 10 +- .../adapter/innodb/InnodbAdapterDataTypesTest.java | 7 +- .../calcite/adapter/innodb/InnodbAdapterTest.java | 122 +- .../calcite/adapter/kafka/KafkaTableFactory.java | 23 +- .../apache/calcite/linq4j/EnumerableDefaults.java | 28 +- .../java/org/apache/calcite/linq4j/LookupImpl.java | 4 +- .../calcite/linq4j/MergeUnionEnumerator.java | 6 +- .../java/org/apache/calcite/linq4j/Nullness.java | 15 + .../apache/calcite/linq4j/tree/BlockBuilder.java | 27 +- .../apache/calcite/linq4j/tree/BlockStatement.java | 4 +- .../linq4j/tree/ClassDeclarationFinder.java | 3 +- .../apache/calcite/linq4j/tree/Expressions.java | 5 +- .../calcite/linq4j/tree/FunctionExpression.java | 8 +- .../calcite/linq4j/tree/IndexExpression.java | 4 +- .../calcite/linq4j/tree/MethodCallExpression.java | 4 +- .../apache/calcite/linq4j/tree/NewExpression.java | 8 +- .../calcite/linq4j/tree/OptimizeShuttle.java | 10 +- .../calcite/linq4j/test/BlockBuilderTest.java | 5 +- .../calcite/linq4j/test/DeterministicTest.java | 3 +- .../apache/calcite/linq4j/test/ExpressionTest.java | 191 +- .../apache/calcite/linq4j/test/InlinerTest.java | 80 +- .../calcite/linq4j/test/JoinPreserveOrderTest.java | 36 +- .../apache/calcite/linq4j/test/LimitSortTest.java | 10 +- .../org/apache/calcite/linq4j/test/Linq4jTest.java | 68 +- .../apache/calcite/linq4j/test/LookupImplTest.java | 7 +- .../apache/calcite/adapter/pig/PigTableScan.java | 4 +- .../org/apache/calcite/piglet/PigConverter.java | 7 +- .../org/apache/calcite/piglet/PigRelBuilder.java | 25 +- .../org/apache/calcite/piglet/PigRelExVisitor.java | 15 +- .../calcite/piglet/PigRelOpInnerVisitor.java | 13 +- .../org/apache/calcite/piglet/PigRelOpVisitor.java | 16 +- .../calcite/piglet/PigRelToSqlConverter.java | 20 +- .../calcite/piglet/PigToSqlAggregateRule.java | 5 +- .../java/org/apache/calcite/test/PigRelOpTest.java | 10 +- .../org/apache/calcite/test/PigScriptTest.java | 5 +- .../adapter/os/GitCommitsTableFunction.java | 20 +- .../calcite/chinook/ChinookAvaticaServer.java | 10 +- .../apache/calcite/adapter/os/OsAdapterTest.java | 24 +- .../apache/calcite/adapter/tpcds/TpcdsTest.java | 5 +- .../org/apache/calcite/adapter/tpch/TpchTest.java | 8 +- .../calcite/adapter/redis/RedisEnumerator.java | 5 +- .../apache/calcite/adapter/redis/RedisSchema.java | 8 +- .../apache/calcite/adapter/redis/RedisTable.java | 5 +- .../adapter/redis/RedisAdapterCaseBase.java | 5 +- site/_docs/reference.md | 11 + .../calcite/adapter/spark/SparkHandlerImpl.java | 8 +- .../apache/calcite/adapter/spark/SparkRules.java | 4 +- .../splunk/search/SplunkConnectionImpl.java | 7 +- .../apache/calcite/sql/parser/SqlParserTest.java | 5 +- .../apache/calcite/sql/test/AbstractSqlTester.java | 17 +- .../org/apache/calcite/test/CalciteAssert.java | 26 +- .../org/apache/calcite/test/DiffRepository.java | 7 +- .../apache/calcite/test/RelMetadataFixture.java | 12 +- .../org/apache/calcite/test/RelOptFixture.java | 7 +- .../test/RexImplicationCheckerFixtures.java | 4 +- .../org/apache/calcite/test/SqlOperatorTest.java | 323 ++- .../apache/calcite/test/SqlValidatorFixture.java | 8 +- .../org/apache/calcite/test/catalog/Fixture.java | 77 +- .../calcite/test/catalog/MockCatalogReader.java | 38 +- .../test/catalog/MockCatalogReaderDynamic.java | 25 +- .../test/catalog/MockCatalogReaderExtended.java | 101 +- .../test/catalog/MockCatalogReaderSimple.java | 116 +- .../enumerable/CodeGenerationBenchmark.java | 5 +- .../calcite/benchmarks/MetadataBenchmark.java | 3 +- 456 files changed, 10839 insertions(+), 5644 deletions(-) create mode 100644 core/src/main/java/org/apache/calcite/util/format/FormatElement.java create mode 100644 core/src/main/java/org/apache/calcite/util/format/FormatElementEnum.java copy splunk/src/main/java/org/apache/calcite/adapter/splunk/search/SplunkConnection.java => core/src/main/java/org/apache/calcite/util/format/FormatModel.java (60%) create mode 100644 core/src/main/java/org/apache/calcite/util/format/FormatModels.java copy core/src/main/java/org/apache/calcite/{adapter/clone => util/format}/package-info.java (90%) create mode 100644 core/src/test/java/org/apache/calcite/util/FormatModelTest.java create mode 100644 core/src/test/resources/sql/cast-with-format.iq