Author: jhyde Date: Fri Dec 21 23:04:58 2018 New Revision: 1849503 URL: http://svn.apache.org/viewvc?rev=1849503&view=rev Log: Publish website for Calcite 1.18.0
Added: calcite/site/news/2018/12/ calcite/site/news/2018/12/21/ calcite/site/news/2018/12/21/release-1.18.0/ calcite/site/news/2018/12/21/release-1.18.0/index.html Removed: calcite/site/img/pb-blank.png calcite/site/img/pb-blank.xcf calcite/site/img/pb-calcite.png calcite/site/img/pb-calcite1.xcf Modified: calcite/site/community/index.html calcite/site/docs/adapter.html calcite/site/docs/algebra.html calcite/site/docs/cassandra_adapter.html calcite/site/docs/druid_adapter.html calcite/site/docs/elasticsearch_adapter.html calcite/site/docs/file_adapter.html calcite/site/docs/geode_adapter.html calcite/site/docs/history.html calcite/site/docs/howto.html calcite/site/docs/index.html calcite/site/docs/lattice.html calcite/site/docs/materialized_views.html calcite/site/docs/model.html calcite/site/docs/os_adapter.html calcite/site/docs/pig_adapter.html calcite/site/docs/powered_by.html calcite/site/docs/reference.html calcite/site/docs/spatial.html calcite/site/docs/stream.html calcite/site/docs/tutorial.html calcite/site/downloads/index.html calcite/site/img/powered-by.png calcite/site/news/2014/06/27/release-0.8.0-incubating/index.html calcite/site/news/2014/08/19/release-0.9.0-incubating/index.html calcite/site/news/2014/10/02/release-0.9.1-incubating/index.html calcite/site/news/2014/11/05/release-0.9.2-incubating/index.html calcite/site/news/2015/01/31/release-1.0.0-incubating/index.html calcite/site/news/2015/03/13/release-1.1.0-incubating/index.html calcite/site/news/2015/04/07/release-1.2.0-incubating/index.html calcite/site/news/2015/04/24/new-committers/index.html calcite/site/news/2015/05/30/release-1.3.0-incubating/index.html calcite/site/news/2015/06/05/algebra-builder/index.html calcite/site/news/2015/07/31/xldb-best-lightning-talk/index.html calcite/site/news/2015/09/02/release-1.4.0-incubating/index.html calcite/site/news/2015/10/22/calcite-graduates/index.html calcite/site/news/2015/11/08/new-committers/index.html calcite/site/news/2015/11/10/release-1.5.0/index.html calcite/site/news/2016/01/22/release-1.6.0/index.html calcite/site/news/2016/02/17/elser-pmc/index.html calcite/site/news/2016/02/17/streaming-sql-talk/index.html calcite/site/news/2016/03/22/cassandra-adapter/index.html calcite/site/news/2016/03/22/release-1.7.0/index.html calcite/site/news/2016/06/13/release-1.8.0/index.html calcite/site/news/2016/09/22/release-1.9.0/index.html calcite/site/news/2016/10/12/release-1.10.0/index.html calcite/site/news/2017/01/09/release-1.11.0/index.html calcite/site/news/2017/03/24/release-1.12.0/index.html calcite/site/news/2017/03/31/new-avatica-repository/index.html calcite/site/news/2017/06/26/release-1.13.0/index.html calcite/site/news/2017/10/02/release-1.14.0/index.html calcite/site/news/2017/12/11/release-1.15.0/index.html calcite/site/news/2018/03/19/release-1.16.0/index.html calcite/site/news/2018/07/20/release-1.17.0/index.html calcite/site/news/index.html calcite/site/news/releases/index.html Modified: calcite/site/community/index.html URL: http://svn.apache.org/viewvc/calcite/site/community/index.html?rev=1849503&r1=1849502&r2=1849503&view=diff ============================================================================== --- calcite/site/community/index.html (original) +++ calcite/site/community/index.html Fri Dec 21 23:04:58 2018 @@ -425,7 +425,7 @@ Calcite, or attend one of the <a href="# [<a href="https://www.youtube.com/watch?v=5_MyORYjq3w">video</a>], [<a href="http://www.slideshare.net/julianhyde/apache-calcite-one-planner-fits-all">slides</a>].</p> -<div class="embed-container video "><iframe width="480" height="270" src="https://www.youtube.com/embed/5_MyORYjq3w?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen=""></iframe></div> +<div class="embed-container video "><iframe width="480" height="270" src="https://www.youtube.com/embed/5_MyORYjq3w?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div> <h2 id="streaming-sql">Streaming SQL</h2> @@ -434,7 +434,7 @@ Calcite, or attend one of the <a href="# [<a href="http://www.slideshare.net/julianhyde/streaming-sql-63554778">slides</a>], [<a href="https://github.com/julianhyde/share/blob/master/slides/calcite-streaming-sql-san-jose-2016.pdf?raw=true">pdf</a>].</p> -<div class="embed-container video "><iframe width="480" height="270" src="https://www.youtube.com/embed/b7HENkvd1uU?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen=""></iframe></div> +<div class="embed-container video "><iframe width="480" height="270" src="https://www.youtube.com/embed/b7HENkvd1uU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div> <h2 id="cost-based-query-optimization-in-apache-phoenix-using-apache-calcite">Cost-based Query Optimization in Apache Phoenix using Apache Calcite</h2> @@ -443,7 +443,7 @@ Calcite, or attend one of the <a href="# [<a href="http://www.slideshare.net/julianhyde/costbased-query-optimization-in-apache-phoenix-using-apache-calcite">slides</a>], [<a href="https://github.com/julianhyde/share/blob/master/slides/phoenix-on-calcite-hadoop-summit-2016.pdf?raw=true">pdf</a>].</p> -<div class="embed-container video "><iframe width="480" height="270" src="https://www.youtube.com/embed/gz9X7JD8BAU?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen=""></iframe></div> +<div class="embed-container video "><iframe width="480" height="270" src="https://www.youtube.com/embed/gz9X7JD8BAU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div> <h2 id="planning-with-polyalgebra-bringing-together-relational-complex-and-machine-learning-algebra">Planning with Polyalgebra: Bringing together relational, complex and machine learning algebra</h2> @@ -451,7 +451,7 @@ Calcite, or attend one of the <a href="# [<a href="https://www.youtube.com/watch?v=fHZqbe3iPMc">video</a>], [<a href="http://www.slideshare.net/julianhyde/planning-with-polyalgebra-bringing-together-relational-complex-and-machine-learning-algebra">slides</a>].</p> -<div class="embed-container video "><iframe width="480" height="270" src="https://www.youtube.com/embed/fHZqbe3iPMc?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen=""></iframe></div> +<div class="embed-container video "><iframe width="480" height="270" src="https://www.youtube.com/embed/fHZqbe3iPMc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div> <h2 id="more-talks">More talks</h2> Modified: calcite/site/docs/adapter.html URL: http://svn.apache.org/viewvc/calcite/site/docs/adapter.html?rev=1849503&r1=1849502&r2=1849503&view=diff ============================================================================== --- calcite/site/docs/adapter.html (original) +++ calcite/site/docs/adapter.html Fri Dec 21 23:04:58 2018 @@ -224,11 +224,11 @@ as implemented by Avaticaâs </tr> <tr> <td style="text-align: left"><a href="/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#MODEL">model</a></td> - <td style="text-align: left">URI of the JSON model file.</td> + <td style="text-align: left">URI of the JSON/YAML model file or inline like <code class="highlighter-rouge">inline:{...}</code> for JSON and <code class="highlighter-rouge">inline:...</code> for YAML.</td> </tr> <tr> <td style="text-align: left"><a href="/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#PARSER_FACTORY">parserFactory</a></td> - <td style="text-align: left">Parser factory. The name of a class that implements <a href="/apidocs/org/apache/calcite/sql/parser/SqlParserImplFactory.html"><tt>interface SqlParserImplFactory</tt></a> and has a public default constructor or an <code class="highlighter-rouge">INSTANCE</code> constant.</td> + <td style="text-align: left">Parser factory. The name of a class that implements <a href="/apidocs/org/apache/calcite/sql/parser/SqlParserImplFactory.html"><code>interface SqlParserImplFactory</code></a> and has a public default constructor or an <code class="highlighter-rouge">INSTANCE</code> constant.</td> </tr> <tr> <td style="text-align: left"><a href="/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#QUOTING">quoting</a></td> @@ -244,7 +244,7 @@ as implemented by Avaticaâs </tr> <tr> <td style="text-align: left"><a href="/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#SCHEMA_FACTORY">schemaFactory</a></td> - <td style="text-align: left">Schema factory. The name of a class that implements <a href="/apidocs/org/apache/calcite/schema/SchemaFactory.html"><tt>interface SchemaFactory</tt></a> and has a public default constructor or an <code class="highlighter-rouge">INSTANCE</code> constant. Ignored if <code class="highlighter-rouge">model</code> is specified.</td> + <td style="text-align: left">Schema factory. The name of a class that implements <a href="/apidocs/org/apache/calcite/schema/SchemaFactory.html"><code>interface SchemaFactory</code></a> and has a public default constructor or an <code class="highlighter-rouge">INSTANCE</code> constant. Ignored if <code class="highlighter-rouge">model</code> is specified.</td> </tr> <tr> <td style="text-align: left"><a href="/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#SCHEMA_TYPE">schemaType</a></td> @@ -260,7 +260,7 @@ as implemented by Avaticaâs </tr> <tr> <td style="text-align: left"><a href="/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#TYPE_SYSTEM">typeSystem</a></td> - <td style="text-align: left">Type system. The name of a class that implements <a href="/apidocs/org/apache/calcite/rel/type/RelDataTypeSystem.html"><tt>interface RelDataTypeSystem</tt></a> and has a public default constructor or an <code class="highlighter-rouge">INSTANCE</code> constant.</td> + <td style="text-align: left">Type system. The name of a class that implements <a href="/apidocs/org/apache/calcite/rel/type/RelDataTypeSystem.html"><code>interface RelDataTypeSystem</code></a> and has a public default constructor or an <code class="highlighter-rouge">INSTANCE</code> constant.</td> </tr> <tr> <td style="text-align: left"><a href="/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#UNQUOTED_CASING">unquotedCasing</a></td> @@ -364,7 +364,7 @@ into your project.</p> <p>At present, the repository is not persisted. As you execute DDL commands, you are modifying an in-memory repository by adding and removing objects reachable from a root -<a href="/apidocs/org/apache/calcite/schema/Schema.html"><tt>Schema</tt></a>. +<a href="/apidocs/org/apache/calcite/schema/Schema.html"><code>Schema</code></a>. All commands within the same SQL session will see those objects. You can create the same objects in a future session by executing the same script of SQL commands.</p> @@ -398,14 +398,14 @@ arguments, resolving overloaded function <p>It you want that flexibility, you probably need to write you a <em>user-defined operator</em> -(see <a href="/apidocs/org/apache/calcite/sql/SqlOperator.html"><tt>interface SqlOperator</tt></a>).</p> +(see <a href="/apidocs/org/apache/calcite/sql/SqlOperator.html"><code>interface SqlOperator</code></a>).</p> <p>If your operator does not adhere to standard SQL function syntax, â<code class="highlighter-rouge">f(arg1, arg2, ...)</code>â, then you need to <a href="#extending-the-parser">extend the parser</a>.</p> <p>There are many good examples in the tests: -<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/test/UdfTest.java"><tt>class UdfTest</tt></a> +<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/test/UdfTest.java"><code>class UdfTest</code></a> tests user-defined functions and user-defined aggregate functions.</p> <h3 id="aggregate-functions">Aggregate functions</h3> @@ -494,7 +494,7 @@ over the previous 2 rows, of 4 rows with to gather together records into sets. The built-in grouped window functions are <code class="highlighter-rouge">HOP</code>, <code class="highlighter-rouge">TUMBLE</code> and <code class="highlighter-rouge">SESSION</code>. You can define additional functions by implementing -<a href="/apidocs/org/apache/calcite/sql/fun/SqlGroupedWindowFunction.html"><tt>interface SqlGroupedWindowFunction</tt></a>.</p> +<a href="/apidocs/org/apache/calcite/sql/fun/SqlGroupedWindowFunction.html"><code>interface SqlGroupedWindowFunction</code></a>.</p> <h3 id="table-functions-and-table-macros">Table functions and table macros</h3> @@ -512,7 +512,7 @@ Table macros are invoked during query pr they produce can then be optimized. (Calciteâs implementation of views uses table macros.)</p> -<p><a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/test/TableFunctionTest.java"><tt>class TableFunctionTest</tt></a> +<p><a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/test/TableFunctionTest.java"><code>class TableFunctionTest</code></a> tests table functions and contains several useful examples.</p> <h3 id="extending-the-parser">Extending the parser</h3> @@ -535,39 +535,39 @@ extended parser.</p> [<a href="https://issues.apache.org/jira/browse/CALCITE-707">CALCITE-707</a>] and adds DDL statements such as <code class="highlighter-rouge">CREATE TABLE</code>, is an example that you could follow. Also see -<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/sql/parser/parserextensiontesting/ExtensionSqlParserTest.java"><tt>class ExtensionSqlParserTest</tt></a>.</p> +<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/sql/parser/parserextensiontesting/ExtensionSqlParserTest.java"><code>class ExtensionSqlParserTest</code></a>.</p> <h3 id="customizing-sql-dialect-accepted-and-generated">Customizing SQL dialect accepted and generated</h3> <p>To customize what SQL extensions the parser should accept, implement -<a href="/apidocs/org/apache/calcite/sql/validate/SqlConformance.html"><tt>interface SqlConformance</tt></a> +<a href="/apidocs/org/apache/calcite/sql/validate/SqlConformance.html"><code>interface SqlConformance</code></a> or use one of the built-in values in -<a href="/apidocs/org/apache/calcite/sql/validate/SqlConformanceEnum.html"><tt>enum SqlConformanceEnum</tt></a>.</p> +<a href="/apidocs/org/apache/calcite/sql/validate/SqlConformanceEnum.html"><code>enum SqlConformanceEnum</code></a>.</p> <p>To control how SQL is generated for an external database (usually via the JDBC adapter), use -<a href="/apidocs/org/apache/calcite/sql/SqlDialect.html"><tt>class SqlDialect</tt></a>. +<a href="/apidocs/org/apache/calcite/sql/SqlDialect.html"><code>class SqlDialect</code></a>. The dialect also describes the engineâs capabilities, such as whether it supports <code class="highlighter-rouge">OFFSET</code> and <code class="highlighter-rouge">FETCH</code> clauses.</p> <h3 id="defining-a-custom-schema">Defining a custom schema</h3> <p>To define a custom schema, you need to implement -<a href="/apidocs/org/apache/calcite/schema/SchemaFactory.html"><tt>interface SchemaFactory</tt></a>.</p> +<a href="/apidocs/org/apache/calcite/schema/SchemaFactory.html"><code>interface SchemaFactory</code></a>.</p> <p>During query preparation, Calcite will call this interface to find out what tables and sub-schemas your schema contains. When a table in your schema is referenced in a query, Calcite will ask your schema to create an instance of -<a href="/apidocs/org/apache/calcite/schema/Table.html"><tt>interface Table</tt></a>.</p> +<a href="/apidocs/org/apache/calcite/schema/Table.html"><code>interface Table</code></a>.</p> <p>That table will be wrapped in a -<a href="/apidocs/org/apache/calcite/rel/core/TableScan.html"><tt>TableScan</tt></a> +<a href="/apidocs/org/apache/calcite/rel/core/TableScan.html"><code>TableScan</code></a> and will undergo the query optimization process.</p> <h3 id="reflective-schema">Reflective schema</h3> <p>A reflective schema -(<a href="/apidocs/org/apache/calcite/adapter/java/ReflectiveSchema.html"><tt>class ReflectiveSchema</tt></a>) +(<a href="/apidocs/org/apache/calcite/adapter/java/ReflectiveSchema.html"><code>class ReflectiveSchema</code></a>) is a way of wrapping a Java object so that it appears as a schema. Its collection-valued fields will appear as tables.</p> @@ -575,12 +575,12 @@ as a schema. Its collection-valued field and wrap it in the schema by calling APIs.</p> <p>See -<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/test/ReflectiveSchemaTest.java"><tt>class ReflectiveSchemaTest</tt></a>.</p> +<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/test/ReflectiveSchemaTest.java"><code>class ReflectiveSchemaTest</code></a>.</p> <h3 id="defining-a-custom-table">Defining a custom table</h3> <p>To define a custom table, you need to implement -<a href="/apidocs/org/apache/calcite/schema/TableFactory.html"><tt>interface TableFactory</tt></a>. +<a href="/apidocs/org/apache/calcite/schema/TableFactory.html"><code>interface TableFactory</code></a>. Whereas a schema factory a set of named tables, a table factory produces a single table when bound to a schema with a particular name (and optionally a set of extra operands).</p> @@ -589,25 +589,25 @@ set of extra operands).</p> <p>If your table is to support DML operations (INSERT, UPDATE, DELETE, MERGE), your implementation of <code class="highlighter-rouge">interface Table</code> must implement -<a href="/apidocs/org/apache/calcite/schema/ModifiableTable.html"><tt>interface ModifiableTable</tt></a>.</p> +<a href="/apidocs/org/apache/calcite/schema/ModifiableTable.html"><code>interface ModifiableTable</code></a>.</p> <h3 id="streaming">Streaming</h3> <p>If your table is to support streaming queries, your implementation of <code class="highlighter-rouge">interface Table</code> must implement -<a href="/apidocs/org/apache/calcite/schema/StreamableTable.html"><tt>interface StreamableTable</tt></a>.</p> +<a href="/apidocs/org/apache/calcite/schema/StreamableTable.html"><code>interface StreamableTable</code></a>.</p> <p>See -<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/test/StreamTest.java"><tt>class StreamTest</tt></a> +<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/test/StreamTest.java"><code>class StreamTest</code></a> for examples.</p> <h3 id="pushing-operations-down-to-your-table">Pushing operations down to your table</h3> <p>If you wish to push processing down to your custom tableâs source system, consider implementing either -<a href="/apidocs/org/apache/calcite/schema/FilterableTable.html"><tt>interface FilterableTable</tt></a> +<a href="/apidocs/org/apache/calcite/schema/FilterableTable.html"><code>interface FilterableTable</code></a> or -<a href="/apidocs/org/apache/calcite/schema/ProjectableFilterableTable.html"><tt>interface ProjectableFilterableTable</tt></a>.</p> +<a href="/apidocs/org/apache/calcite/schema/ProjectableFilterableTable.html"><code>interface ProjectableFilterableTable</code></a>.</p> <p>If you want more control, you should write a <a href="#planner-rule">planner rule</a>. This will allow you to push down expressions, to make a cost-based decision @@ -617,36 +617,36 @@ such as join, aggregation, and sort.</p> <h3 id="type-system">Type system</h3> <p>You can customize some aspects of the type system by implementing -<a href="/apidocs/org/apache/calcite/rel/type/RelDataTypeSystem.html"><tt>interface RelDataTypeSystem</tt></a>.</p> +<a href="/apidocs/org/apache/calcite/rel/type/RelDataTypeSystem.html"><code>interface RelDataTypeSystem</code></a>.</p> <h3 id="relational-operators">Relational operators</h3> <p>All relational operators implement -<a href="/apidocs/org/apache/calcite/rel/RelNode.html"><tt>interface RelNode</tt></a> +<a href="/apidocs/org/apache/calcite/rel/RelNode.html"><code>interface RelNode</code></a> and most extend -<a href="/apidocs/org/apache/calcite/rel/AbstractRelNode.html"><tt>class AbstractRelNode</tt></a>. +<a href="/apidocs/org/apache/calcite/rel/AbstractRelNode.html"><code>class AbstractRelNode</code></a>. The core operators (used by -<a href="/apidocs/org/apache/calcite/sql2rel/SqlToRelConverter.html"><tt>SqlToRelConverter</tt></a> +<a href="/apidocs/org/apache/calcite/sql2rel/SqlToRelConverter.html"><code>SqlToRelConverter</code></a> and covering conventional relational algebra) are -<a href="/apidocs/org/apache/calcite/rel/core/TableScan.html"><tt>TableScan</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/TableModify.html"><tt>TableModify</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/Values.html"><tt>Values</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/Project.html"><tt>Project</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/Filter.html"><tt>Filter</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/Aggregate.html"><tt>Aggregate</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/Join.html"><tt>Join</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/Sort.html"><tt>Sort</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/Union.html"><tt>Union</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/Intersect.html"><tt>Intersect</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/Minus.html"><tt>Minus</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/Window.html"><tt>Window</tt></a> and -<a href="/apidocs/org/apache/calcite/rel/core/Match.html"><tt>Match</tt></a>.</p> +<a href="/apidocs/org/apache/calcite/rel/core/TableScan.html"><code>TableScan</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/TableModify.html"><code>TableModify</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/Values.html"><code>Values</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/Project.html"><code>Project</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/Filter.html"><code>Filter</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/Aggregate.html"><code>Aggregate</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/Join.html"><code>Join</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/Sort.html"><code>Sort</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/Union.html"><code>Union</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/Intersect.html"><code>Intersect</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/Minus.html"><code>Minus</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/Window.html"><code>Window</code></a> and +<a href="/apidocs/org/apache/calcite/rel/core/Match.html"><code>Match</code></a>.</p> <p>Each of these has a âpureâ logical sub-class, -<a href="/apidocs/org/apache/calcite/rel/logical/LogicalProject.html"><tt>LogicalProject</tt></a> +<a href="/apidocs/org/apache/calcite/rel/logical/LogicalProject.html"><code>LogicalProject</code></a> and so forth. Any given adapter will have counterparts for the operations that its engine can implement efficiently; for example, the Cassandra adapter has -<a href="/apidocs/org/apache/calcite/rel/cassandra/CassandraProject.html"><tt>CassandraProject</tt></a> +<a href="/apidocs/org/apache/calcite/rel/cassandra/CassandraProject.html"><code>CassandraProject</code></a> but there is no <code class="highlighter-rouge">CassandraJoin</code>.</p> <p>You can define your own sub-class of <code class="highlighter-rouge">RelNode</code> to add a new operator, or @@ -668,7 +668,7 @@ operators with no extra work.</p> <h3 id="planner-rule">Planner rule</h3> <p>A planner rule -(<a href="/apidocs/org/apache/calcite/plan/RelOptRule.html"><tt>class RelOptRule</tt></a>) +(<a href="/apidocs/org/apache/calcite/plan/RelOptRule.html"><code>class RelOptRule</code></a>) transforms a relational expression into an equivalent relational expression.</p> <p>A planner engine has many planner rules registered and fires them @@ -679,9 +679,9 @@ firing rules in a sequence that produces rules only concerns itself with correctness.</p> <p>Calcite has two built-in planner engines: -<a href="/apidocs/org/apache/calcite/plan/volcano/VolcanoPlanner.html"><tt>class VolcanoPlanner</tt></a> +<a href="/apidocs/org/apache/calcite/plan/volcano/VolcanoPlanner.html"><code>class VolcanoPlanner</code></a> uses dynamic programming and is good for exhaustive search, whereas -<a href="/apidocs/org/apache/calcite/plan/hep/HepPlanner.html"><tt>class HepPlanner</tt></a> +<a href="/apidocs/org/apache/calcite/plan/hep/HepPlanner.html"><code>class HepPlanner</code></a> fires a sequence of rules in a more fixed order.</p> <h3 id="calling-conventions">Calling conventions</h3> @@ -694,7 +694,7 @@ to another.</p> <p>If data needs to be converted from one calling convention to another, Calcite uses a special sub-class of relational expression called a converter -(see <a href="/apidocs/org/apache/calcite/rel/convert/Converter.html"><tt>class Converter</tt></a>). +(see <a href="/apidocs/org/apache/calcite/rel/convert/Converter.html"><code>class Converter</code></a>). But of course converting data has a runtime cost.</p> <p>When planning a query that uses multiple engines, Calcite âcolorsâ regions of @@ -705,15 +705,15 @@ operation can occur in more than one pla chosen according to cost.</p> <p>A calling convention is a class that implements -<a href="/apidocs/org/apache/calcite/plan/Convention.html"><tt>interface Convention</tt></a>, +<a href="/apidocs/org/apache/calcite/plan/Convention.html"><code>interface Convention</code></a>, an auxiliary interface (for instance -<a href="/apidocs/org/apache/calcite/adapter/cassandra/CassandraRel.html"><tt>interface CassandraRel</tt></a>), +<a href="/apidocs/org/apache/calcite/adapter/cassandra/CassandraRel.html"><code>interface CassandraRel</code></a>), and a set of sub-classes of -<a href="/apidocs/org/apache/calcite/rel/RelNode.html"><tt>class RelNode</tt></a> +<a href="/apidocs/org/apache/calcite/rel/RelNode.html"><code>class RelNode</code></a> that implement that interface for the core relational operators -(<a href="/apidocs/org/apache/calcite/rel/core/Project.html"><tt>Project</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/Filter.html"><tt>Filter</tt></a>, -<a href="/apidocs/org/apache/calcite/rel/core/Aggregate.html"><tt>Aggregate</tt></a>, +(<a href="/apidocs/org/apache/calcite/rel/core/Project.html"><code>Project</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/Filter.html"><code>Filter</code></a>, +<a href="/apidocs/org/apache/calcite/rel/core/Aggregate.html"><code>Aggregate</code></a>, and so forth).</p> <h3 id="built-in-sql-implementation">Built-in SQL implementation</h3> @@ -722,7 +722,7 @@ and so forth).</p> relational operators?</p> <p>The answer is a particular built-in calling convention, -<a href="/apidocs/org/apache/calcite/adapter/EnumerableConvention.html"><tt>EnumerableConvention</tt></a>. +<a href="/apidocs/org/apache/calcite/adapter/EnumerableConvention.html"><code>EnumerableConvention</code></a>. Relational expressions of enumerable convention are implemented as âbuilt-insâ: Calcite generates Java code, compiles it, and executes inside its own JVM. Enumerable convention is less efficient than, say, a distributed engine @@ -737,9 +737,9 @@ a fall-back.</p> statistics about relational operators, collectively referred to as <em>metadata</em>. Each kind of metadata has an interface with (usually) one method. For example, selectivity is defined by -<a href="/apidocs/org/apache/calcite/rel/metadata/RelMdSelectivity.html"><tt>interface RelMdSelectivity</tt></a> +<a href="/apidocs/org/apache/calcite/rel/metadata/RelMdSelectivity.html"><code>interface RelMdSelectivity</code></a> and the method -<a href="/apidocs/org/apache/calcite/rel/metadata/RelMetadataQuery.html#getSelectivity-org.apache.calcite.rel.RelNode-org.apache.calcite.rex.RexNode-"><tt>getSelectivity(RelNode rel, RexNode predicate)</tt></a>.</p> +<a href="/apidocs/org/apache/calcite/rel/metadata/RelMetadataQuery.html#getSelectivity-org.apache.calcite.rel.RelNode-org.apache.calcite.rex.RexNode-"><code>getSelectivity(RelNode rel, RexNode predicate)</code></a>.</p> <p>There are many built-in kinds of metadata, including <a href="/apidocs/org/apache/calcite/rel/metadata/RelMdCollation.html">collation</a>, @@ -758,9 +758,8 @@ and the method <a href="/apidocs/org/apache/calcite/rel/metadata/RelMdRowCount.html">row count</a>, <a href="/apidocs/org/apache/calcite/rel/metadata/RelMdSelectivity.html">selectivity</a>, <a href="/apidocs/org/apache/calcite/rel/metadata/RelMdSize.html">size</a>, -<a href="/apidocs/org/apache/calcite/rel/metadata/RelMdTableReferences.html">table references</a>, -<a href="/apidocs/org/apache/calcite/rel/metadata/RelMdUniqueKeys.html">unique keys</a>, and -<a href="/apidocs/org/apache/calcite/rel/metadata/RelMdSelectivity.html">selectivity</a>; +<a href="/apidocs/org/apache/calcite/rel/metadata/RelMdTableReferences.html">table references</a>, and +<a href="/apidocs/org/apache/calcite/rel/metadata/RelMdUniqueKeys.html">unique keys</a>; you can also define your own.</p> <p>You can then supply a <em>metadata provider</em> that computes that kind of metadata @@ -896,6 +895,16 @@ is computed only once.</p> + <li class=""><a href="/docs/materialized_views.html">Materialized Views</a></li> + + + + + + + + + <li class=""><a href="/docs/lattice.html">Lattices</a></li> @@ -972,7 +981,7 @@ is computed only once.</p> - <li class=""><a href="/docs/model.html">JSON models</a></li> + <li class=""><a href="/docs/model.html">JSON/YAML models</a></li> Modified: calcite/site/docs/algebra.html URL: http://svn.apache.org/viewvc/calcite/site/docs/algebra.html?rev=1849503&r1=1849502&r2=1849503&view=diff ============================================================================== --- calcite/site/docs/algebra.html (original) +++ calcite/site/docs/algebra.html Fri Dec 21 23:04:58 2018 @@ -278,7 +278,7 @@ If you have a particular <code class="hi changing. In fact, the whole relational expression is immutable.</p> <p>But if a relational expression has passed through several rewrite rules (see -(<a href="/apidocs/org/apache/calcite/plan/RelOptRule.html">RelOptRule</a>), the field +<a href="/apidocs/org/apache/calcite/plan/RelOptRule.html">RelOptRule</a>), the field names of the resulting expression might not look much like the originals. At that point it is better to reference fields by ordinal.</p> @@ -343,6 +343,10 @@ return the <code class="highlighter-roug <td style="text-align: left">Creates a <a href="/apidocs/org/apache/calcite/rel/core/Project.html">Project</a>. To override the default name, wrap expressions using <code class="highlighter-rouge">alias</code>, or specify the <code class="highlighter-rouge">fieldNames</code> argument.</td> </tr> <tr> + <td style="text-align: left"><code class="highlighter-rouge">projectPlus(expr...)</code><br /><code class="highlighter-rouge">projectPlus(exprList)</code></td> + <td style="text-align: left">Variant of <code class="highlighter-rouge">project</code> that keeps original fields and appends the given expressions.</td> + </tr> + <tr> <td style="text-align: left"><code class="highlighter-rouge">permute(mapping)</code></td> <td style="text-align: left">Creates a <a href="/apidocs/org/apache/calcite/rel/core/Project.html">Project</a> that permutes the fields using <code class="highlighter-rouge">mapping</code>.</td> </tr> @@ -371,6 +375,14 @@ return the <code class="highlighter-roug <td style="text-align: left">Creates a <a href="/apidocs/org/apache/calcite/rel/core/Sort.html">Sort</a> that does not sort, only applies with offset and limit.</td> </tr> <tr> + <td style="text-align: left"><code class="highlighter-rouge">exchange(distribution)</code></td> + <td style="text-align: left">Creates an <a href="/apidocs/org/apache/calcite/rel/core/Exchange.html">Exchange</a>.</td> + </tr> + <tr> + <td style="text-align: left"><code class="highlighter-rouge">sortExchange(distribution, collation)</code></td> + <td style="text-align: left">Creates a <a href="/apidocs/org/apache/calcite/rel/core/SortExchange.html">SortExchange</a>.</td> + </tr> + <tr> <td style="text-align: left"><code class="highlighter-rouge">join(joinType, expr...)</code><br /><code class="highlighter-rouge">join(joinType, exprList)</code><br /><code class="highlighter-rouge">join(joinType, fieldName...)</code></td> <td style="text-align: left">Creates a <a href="/apidocs/org/apache/calcite/rel/core/Join.html">Join</a> of the two most recent relational expressions.<br /><br />The first form joins on a boolean expression (multiple conditions are combined using AND).<br /><br />The last form joins on named fields; each side must have a field of each name.</td> </tr> @@ -420,6 +432,8 @@ return the <code class="highlighter-roug <li><code class="highlighter-rouge">varHolder</code> <a href="/apidocs/org/apache/calcite/util/Holder.html">Holder</a> of <a href="/apidocs/org/apache/calcite/rex/RexCorrelVariable.html">RexCorrelVariable</a></li> <li><code class="highlighter-rouge">patterns</code> Map whose key is String, value is <a href="/apidocs/org/apache/calcite/rex/RexNode.html">RexNode</a></li> <li><code class="highlighter-rouge">subsets</code> Map whose key is String, value is a sorted set of String</li> + <li><code class="highlighter-rouge">distribution</code> <a href="/apidocs/org/apache/calcite/rel/RelDistribution.html">RelDistribution</a></li> + <li><code class="highlighter-rouge">collation</code> <a href="/apidocs/org/apache/calcite/rel/RelCollation.html">RelCollation</a></li> </ul> <p>The builder methods perform various optimizations, including:</p> @@ -453,7 +467,7 @@ expression on the stack:</p> </tbody> </table> -<h3 id="stack-methods">Stack methods</h3> +<h4 id="stack-methods">Stack methods</h4> <table> <thead> @@ -633,7 +647,7 @@ added to the stack.</p> </tbody> </table> -<h3 id="group-key-methods">Group key methods</h3> +<h4 id="group-key-methods">Group key methods</h4> <p>The following methods return a <a href="/apidocs/org/apache/calcite/tools/RelBuilder.GroupKey.html">RelBuilder.GroupKey</a>.</p> @@ -655,13 +669,13 @@ added to the stack.</p> <td style="text-align: left">Creates a group key of the given expressions with grouping sets</td> </tr> <tr> - <td style="text-align: left"><code class="highlighter-rouge">groupKey(bitSet, bitSets)</code></td> - <td style="text-align: left">Creates a group key of the given input columns with grouping sets</td> + <td style="text-align: left"><code class="highlighter-rouge">groupKey(bitSet [, bitSets])</code></td> + <td style="text-align: left">Creates a group key of the given input columns, with multiple grouping sets if <code class="highlighter-rouge">bitSets</code> is specified</td> </tr> </tbody> </table> -<h3 id="aggregate-call-methods">Aggregate call methods</h3> +<h4 id="aggregate-call-methods">Aggregate call methods</h4> <p>The following methods return an <a href="/apidocs/org/apache/calcite/tools/RelBuilder.AggCall.html">RelBuilder.AggCall</a>.</p> @@ -675,32 +689,70 @@ added to the stack.</p> </thead> <tbody> <tr> - <td style="text-align: left"><code class="highlighter-rouge">aggregateCall(op, distinct, approximate, filter, alias, expr...)</code><br /><code class="highlighter-rouge">aggregateCall(op, distinct, approximate, filter, alias, exprList)</code></td> - <td style="text-align: left">Creates a call to a given aggregate function, with an optional filter expression</td> + <td style="text-align: left"><code class="highlighter-rouge">aggregateCall(op, expr...)</code><br /><code class="highlighter-rouge">aggregateCall(op, exprList)</code></td> + <td style="text-align: left">Creates a call to a given aggregate function</td> </tr> <tr> - <td style="text-align: left"><code class="highlighter-rouge">count(distinct, alias, expr...)</code></td> - <td style="text-align: left">Creates a call to the COUNT aggregate function</td> + <td style="text-align: left"><code class="highlighter-rouge">count([ distinct, alias, ] expr...)</code><br /><code class="highlighter-rouge">count([ distinct, alias, ] exprList)</code></td> + <td style="text-align: left">Creates a call to the <code class="highlighter-rouge">COUNT</code> aggregate function</td> </tr> <tr> <td style="text-align: left"><code class="highlighter-rouge">countStar(alias)</code></td> - <td style="text-align: left">Creates a call to the COUNT(*) aggregate function</td> + <td style="text-align: left">Creates a call to the <code class="highlighter-rouge">COUNT(*)</code> aggregate function</td> + </tr> + <tr> + <td style="text-align: left"><code class="highlighter-rouge">sum([ distinct, alias, ] expr)</code></td> + <td style="text-align: left">Creates a call to the <code class="highlighter-rouge">SUM</code> aggregate function</td> + </tr> + <tr> + <td style="text-align: left"><code class="highlighter-rouge">min([ alias, ] expr)</code></td> + <td style="text-align: left">Creates a call to the <code class="highlighter-rouge">MIN</code> aggregate function</td> + </tr> + <tr> + <td style="text-align: left"><code class="highlighter-rouge">max([ alias, ] expr)</code></td> + <td style="text-align: left">Creates a call to the <code class="highlighter-rouge">MAX</code> aggregate function</td> + </tr> + </tbody> +</table> + +<p>To further modify the <code class="highlighter-rouge">AggCall</code>, call its methods:</p> + +<table> + <thead> + <tr> + <th style="text-align: left">Method</th> + <th style="text-align: left">Description</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left"><code class="highlighter-rouge">approximate(approximate)</code></td> + <td style="text-align: left">Allows approximate value for the aggregate of <code class="highlighter-rouge">approximate</code></td> + </tr> + <tr> + <td style="text-align: left"><code class="highlighter-rouge">as(alias)</code></td> + <td style="text-align: left">Assigns a column alias to this expression (see SQL <code class="highlighter-rouge">AS</code>)</td> + </tr> + <tr> + <td style="text-align: left"><code class="highlighter-rouge">distinct()</code></td> + <td style="text-align: left">Eliminates duplicate values before aggregating (see SQL <code class="highlighter-rouge">DISTINCT</code>)</td> </tr> <tr> - <td style="text-align: left"><code class="highlighter-rouge">sum(distinct, alias, expr)</code></td> - <td style="text-align: left">Creates a call to the SUM aggregate function</td> + <td style="text-align: left"><code class="highlighter-rouge">distinct(distinct)</code></td> + <td style="text-align: left">Eliminates duplicate values before aggregating if <code class="highlighter-rouge">distinct</code></td> </tr> <tr> - <td style="text-align: left"><code class="highlighter-rouge">min(alias, expr)</code></td> - <td style="text-align: left">Creates a call to the MIN aggregate function</td> + <td style="text-align: left"><code class="highlighter-rouge">filter(expr)</code></td> + <td style="text-align: left">Filters rows before aggregating (see SQL <code class="highlighter-rouge">FILTER (WHERE ...)</code>)</td> </tr> <tr> - <td style="text-align: left"><code class="highlighter-rouge">max(alias, expr)</code></td> - <td style="text-align: left">Creates a call to the MAX aggregate function</td> + <td style="text-align: left"><code class="highlighter-rouge">sort(expr...)</code><br /><code class="highlighter-rouge">sort(exprList)</code></td> + <td style="text-align: left">Sorts rows before aggregating (see SQL <code class="highlighter-rouge">WITHIN GROUP</code>)</td> </tr> </tbody> </table> + @@ -822,6 +874,16 @@ added to the stack.</p> + <li class=""><a href="/docs/materialized_views.html">Materialized Views</a></li> + + + + + + + + + <li class=""><a href="/docs/lattice.html">Lattices</a></li> @@ -898,7 +960,7 @@ added to the stack.</p> - <li class=""><a href="/docs/model.html">JSON models</a></li> + <li class=""><a href="/docs/model.html">JSON/YAML models</a></li> Modified: calcite/site/docs/cassandra_adapter.html URL: http://svn.apache.org/viewvc/calcite/site/docs/cassandra_adapter.html?rev=1849503&r1=1849502&r2=1849503&view=diff ============================================================================== --- calcite/site/docs/cassandra_adapter.html (original) +++ calcite/site/docs/cassandra_adapter.html Fri Dec 21 23:04:58 2018 @@ -245,6 +245,9 @@ prove useful.</p> + + + </article> </div> @@ -332,6 +335,16 @@ prove useful.</p> + <li class=""><a href="/docs/materialized_views.html">Materialized Views</a></li> + + + + + + + + + <li class=""><a href="/docs/lattice.html">Lattices</a></li> @@ -408,7 +421,7 @@ prove useful.</p> - <li class=""><a href="/docs/model.html">JSON models</a></li> + <li class=""><a href="/docs/model.html">JSON/YAML models</a></li> Modified: calcite/site/docs/druid_adapter.html URL: http://svn.apache.org/viewvc/calcite/site/docs/druid_adapter.html?rev=1849503&r1=1849502&r2=1849503&view=diff ============================================================================== --- calcite/site/docs/druid_adapter.html (original) +++ calcite/site/docs/druid_adapter.html Fri Dec 21 23:04:58 2018 @@ -419,6 +419,9 @@ and the two tables in Druid (<code class + + + </article> </div> @@ -506,6 +509,16 @@ and the two tables in Druid (<code class + <li class=""><a href="/docs/materialized_views.html">Materialized Views</a></li> + + + + + + + + + <li class=""><a href="/docs/lattice.html">Lattices</a></li> @@ -582,7 +595,7 @@ and the two tables in Druid (<code class - <li class=""><a href="/docs/model.html">JSON models</a></li> + <li class=""><a href="/docs/model.html">JSON/YAML models</a></li> Modified: calcite/site/docs/elasticsearch_adapter.html URL: http://svn.apache.org/viewvc/calcite/site/docs/elasticsearch_adapter.html?rev=1849503&r1=1849502&r2=1849503&view=diff ============================================================================== --- calcite/site/docs/elasticsearch_adapter.html (original) +++ calcite/site/docs/elasticsearch_adapter.html Fri Dec 21 23:04:58 2018 @@ -270,6 +270,9 @@ it.</p> + + + </article> </div> @@ -357,6 +360,16 @@ it.</p> + <li class=""><a href="/docs/materialized_views.html">Materialized Views</a></li> + + + + + + + + + <li class=""><a href="/docs/lattice.html">Lattices</a></li> @@ -433,7 +446,7 @@ it.</p> - <li class=""><a href="/docs/model.html">JSON models</a></li> + <li class=""><a href="/docs/model.html">JSON/YAML models</a></li> Modified: calcite/site/docs/file_adapter.html URL: http://svn.apache.org/viewvc/calcite/site/docs/file_adapter.html?rev=1849503&r1=1849502&r2=1849503&view=diff ============================================================================== --- calcite/site/docs/file_adapter.html (original) +++ calcite/site/docs/file_adapter.html Fri Dec 21 23:04:58 2018 @@ -402,6 +402,9 @@ files) and being able to form URLs dynam + + + </article> </div> @@ -489,6 +492,16 @@ files) and being able to form URLs dynam + <li class=""><a href="/docs/materialized_views.html">Materialized Views</a></li> + + + + + + + + + <li class=""><a href="/docs/lattice.html">Lattices</a></li> @@ -565,7 +578,7 @@ files) and being able to form URLs dynam - <li class=""><a href="/docs/model.html">JSON models</a></li> + <li class=""><a href="/docs/model.html">JSON/YAML models</a></li> Modified: calcite/site/docs/geode_adapter.html URL: http://svn.apache.org/viewvc/calcite/site/docs/geode_adapter.html?rev=1849503&r1=1849502&r2=1849503&view=diff ============================================================================== --- calcite/site/docs/geode_adapter.html (original) +++ calcite/site/docs/geode_adapter.html Fri Dec 21 23:04:58 2018 @@ -319,6 +319,9 @@ prove useful.</p> + + + </article> </div> @@ -406,6 +409,16 @@ prove useful.</p> + <li class=""><a href="/docs/materialized_views.html">Materialized Views</a></li> + + + + + + + + + <li class=""><a href="/docs/lattice.html">Lattices</a></li> @@ -482,7 +495,7 @@ prove useful.</p> - <li class=""><a href="/docs/model.html">JSON models</a></li> + <li class=""><a href="/docs/model.html">JSON/YAML models</a></li>