You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2016/06/06 18:32:06 UTC

[1/4] calcite git commit: Release notes

Repository: calcite
Updated Branches:
  refs/heads/branch-1.8 [created] 3f4ea2f0f


Release notes


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

Branch: refs/heads/branch-1.8
Commit: 3f4ea2f0f2e299fb09da3b2e1afaac4b432227e6
Parents: 62db463
Author: Julian Hyde <jh...@apache.org>
Authored: Tue May 17 15:24:27 2016 -0700
Committer: Julian Hyde <jh...@apache.org>
Committed: Mon Jun 6 11:14:18 2016 -0700

----------------------------------------------------------------------
 README                                          |   2 +-
 .../calcite/schema/TranslatableTable.java       |  11 +-
 .../apache/calcite/adapter/tpcds/TpcdsTest.java |  16 +-
 pom.xml                                         |   2 +-
 site/_docs/adapter.md                           |   2 +-
 site/_docs/history.md                           | 177 +++++++++++++++++++
 site/_docs/howto.md                             |   6 +-
 site/_docs/tutorial.md                          |   2 +-
 site/community/index.md                         |  13 +-
 .../adapter/splunk/SplunkPushDownRule.java      |   2 +-
 10 files changed, 205 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/3f4ea2f0/README
----------------------------------------------------------------------
diff --git a/README b/README
index f07e842..b21e547 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Apache Calcite release 1.7.0
+Apache Calcite release 1.8.0
 
 This is a source or binary distribution of Apache Calcite.
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/3f4ea2f0/core/src/main/java/org/apache/calcite/schema/TranslatableTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/schema/TranslatableTable.java b/core/src/main/java/org/apache/calcite/schema/TranslatableTable.java
index 0a254ba..c93afcd 100644
--- a/core/src/main/java/org/apache/calcite/schema/TranslatableTable.java
+++ b/core/src/main/java/org/apache/calcite/schema/TranslatableTable.java
@@ -21,13 +21,14 @@ import org.apache.calcite.rel.RelNode;
 
 /**
  * Extension to {@link Table} that specifies how it is to be translated to
- * a {@link org.apache.calcite.rel.RelNode planner node}.
+ * a {@link org.apache.calcite.rel.RelNode relational expression}.
  *
- * <p>It is optional for a Table to implement this interface. A Table that does
- * not implement this interface, a Table will be converted to an
- * EnumerableTableAccessRel. Generally a Table will implements this interface to
+ * <p>It is optional for a Table to implement this interface. If Table does
+ * not implement this interface, it will be converted to an
+ * {@link org.apache.calcite.adapter.enumerable.EnumerableTableScan}.
+ * Generally a Table will implement this interface to
  * create a particular subclass of RelNode, and also register rules that act
- * on that particular subclass of RelNode.</p>
+ * on that particular subclass of RelNode.
  */
 public interface TranslatableTable extends Table {
   /** Converts this table into a {@link RelNode relational expression}. */

http://git-wip-us.apache.org/repos/asf/calcite/blob/3f4ea2f0/plus/src/test/java/org/apache/calcite/adapter/tpcds/TpcdsTest.java
----------------------------------------------------------------------
diff --git a/plus/src/test/java/org/apache/calcite/adapter/tpcds/TpcdsTest.java b/plus/src/test/java/org/apache/calcite/adapter/tpcds/TpcdsTest.java
index b7f1f1c..715e6f4 100644
--- a/plus/src/test/java/org/apache/calcite/adapter/tpcds/TpcdsTest.java
+++ b/plus/src/test/java/org/apache/calcite/adapter/tpcds/TpcdsTest.java
@@ -133,22 +133,22 @@ public class TpcdsTest {
                 + "        EnumerableCalcRel(expr#0..211=[{inputs}], expr#212=[*($t89, $t89)], expr#213=[*($t140, $t140)], expr#214=[*($t196, $t196)], I_ITEM_ID=[$t58], I_ITEM_DESC=[$t61], S_STATE=[$t24], SS_QUANTITY=[$t89], SR_RETURN_QUANTITY=[$t140], CS_QUANTITY=[$t196], $f6=[$t212], $f7=[$t213], $f8=[$t214]): rowcount = 5.434029018852197E27, cumulative cost = {1.0868058037845108E28 rows, 1.2172225002228922E30 cpu, 0.0 io}\n"
                 + "          EnumerableJoinRel(condition=[AND(=($82, $133), =($81, $132), =($88, $139))], joinType=[inner]): rowcount = 5.434029018852197E27, cumulative cost = {5.434029018992911E27 rows, 1.8579845E7 cpu, 0.0 io}\n"
                 + "            EnumerableJoinRel(condition=[=($0, $86)], joinType=[inner]): rowcount = 2.3008402586892598E13, cumulative cost = {4.8588854672853766E13 rows, 7354409.0 cpu, 0.0 io}\n"
-                + "              EnumerableTableAccessRel(table=[[TPCDS, STORE]]): rowcount = 12.0, cumulative cost = {12.0 rows, 13.0 cpu, 0.0 io}\n"
+                + "              EnumerableTableScan(table=[[TPCDS, STORE]]): rowcount = 12.0, cumulative cost = {12.0 rows, 13.0 cpu, 0.0 io}\n"
                 + "              EnumerableJoinRel(condition=[=($0, $50)], joinType=[inner]): rowcount = 1.2782445881607E13, cumulative cost = {1.279800620431234E13 rows, 7354396.0 cpu, 0.0 io}\n"
                 + "                EnumerableCalcRel(expr#0..27=[{inputs}], expr#28=[CAST($t15):VARCHAR(6) CHARACTER SET \"ISO-8859-1\" COLLATE \"ISO-8859-1$en_US$primary\"], expr#29=['1998Q1'], expr#30=[=($t28, $t29)], proj#0..27=[{exprs}], $condition=[$t30]): rowcount = 10957.35, cumulative cost = {84006.35 rows, 4455990.0 cpu, 0.0 io}\n"
-                + "                  EnumerableTableAccessRel(table=[[TPCDS, DATE_DIM]]): rowcount = 73049.0, cumulative cost = {73049.0 rows, 73050.0 cpu, 0.0 io}\n"
+                + "                  EnumerableTableScan(table=[[TPCDS, DATE_DIM]]): rowcount = 73049.0, cumulative cost = {73049.0 rows, 73050.0 cpu, 0.0 io}\n"
                 + "                EnumerableJoinRel(condition=[=($0, $24)], joinType=[inner]): rowcount = 7.7770908E9, cumulative cost = {7.783045975286664E9 rows, 2898406.0 cpu, 0.0 io}\n"
-                + "                  EnumerableTableAccessRel(table=[[TPCDS, ITEM]]): rowcount = 18000.0, cumulative cost = {18000.0 rows, 18001.0 cpu, 0.0 io}\n"
-                + "                  EnumerableTableAccessRel(table=[[TPCDS, STORE_SALES]]): rowcount = 2880404.0, cumulative cost = {2880404.0 rows, 2880405.0 cpu, 0.0 io}\n"
+                + "                  EnumerableTableScan(table=[[TPCDS, ITEM]]): rowcount = 18000.0, cumulative cost = {18000.0 rows, 18001.0 cpu, 0.0 io}\n"
+                + "                  EnumerableTableScan(table=[[TPCDS, STORE_SALES]]): rowcount = 2880404.0, cumulative cost = {2880404.0 rows, 2880405.0 cpu, 0.0 io}\n"
                 + "            EnumerableJoinRel(condition=[AND(=($31, $79), =($30, $91))], joinType=[inner]): rowcount = 6.9978029381741304E16, cumulative cost = {6.9978054204658736E16 rows, 1.1225436E7 cpu, 0.0 io}\n"
                 + "              EnumerableJoinRel(condition=[=($0, $28)], joinType=[inner]): rowcount = 7.87597881975E8, cumulative cost = {7.884434222216867E8 rows, 5035701.0 cpu, 0.0 io}\n"
                 + "                EnumerableCalcRel(expr#0..27=[{inputs}], expr#28=['1998Q1'], expr#29=[=($t15, $t28)], expr#30=['1998Q2'], expr#31=[=($t15, $t30)], expr#32=['1998Q3'], expr#33=[=($t15, $t32)], expr#34=[OR($t29, $t31, $t33)], proj#0..27=[{exprs}], $condition=[$t34]): rowcount = 18262.25, cumulative cost = {91311.25 rows, 4748186.0 cpu, 0.0 io}\n"
-                + "                  EnumerableTableAccessRel(table=[[TPCDS, DATE_DIM]]): rowcount = 73049.0, cumulative cost = {73049.0 rows, 73050.0 cpu, 0.0 io}\n"
-                + "                EnumerableTableAccessRel(table=[[TPCDS, STORE_RETURNS]]): rowcount = 287514.0, cumulative cost = {287514.0 rows, 287515.0 cpu, 0.0 io}\n"
+                + "                  EnumerableTableScan(table=[[TPCDS, DATE_DIM]]): rowcount = 73049.0, cumulative cost = {73049.0 rows, 73050.0 cpu, 0.0 io}\n"
+                + "                EnumerableTableScan(table=[[TPCDS, STORE_RETURNS]]): rowcount = 287514.0, cumulative cost = {287514.0 rows, 287515.0 cpu, 0.0 io}\n"
                 + "              EnumerableJoinRel(condition=[=($0, $28)], joinType=[inner]): rowcount = 3.94888649445E9, cumulative cost = {3.9520401026966867E9 rows, 6189735.0 cpu, 0.0 io}\n"
                 + "                EnumerableCalcRel(expr#0..27=[{inputs}], expr#28=['1998Q1'], expr#29=[=($t15, $t28)], expr#30=['1998Q2'], expr#31=[=($t15, $t30)], expr#32=['1998Q3'], expr#33=[=($t15, $t32)], expr#34=[OR($t29, $t31, $t33)], proj#0..27=[{exprs}], $condition=[$t34]): rowcount = 18262.25, cumulative cost = {91311.25 rows, 4748186.0 cpu, 0.0 io}\n"
-                + "                  EnumerableTableAccessRel(table=[[TPCDS, DATE_DIM]]): rowcount = 73049.0, cumulative cost = {73049.0 rows, 73050.0 cpu, 0.0 io}\n"
-                + "                EnumerableTableAccessRel(table=[[TPCDS, CATALOG_SALES]]): rowcount = 1441548.0, cumulative cost = {1441548.0 rows, 1441549.0 cpu, 0.0 io}\n"));
+                + "                  EnumerableTableScan(table=[[TPCDS, DATE_DIM]]): rowcount = 73049.0, cumulative cost = {73049.0 rows, 73050.0 cpu, 0.0 io}\n"
+                + "                EnumerableTableScan(table=[[TPCDS, CATALOG_SALES]]): rowcount = 1441548.0, cumulative cost = {1441548.0 rows, 1441549.0 cpu, 0.0 io}\n"));
   }
 
   @Test public void testQuery27() {

http://git-wip-us.apache.org/repos/asf/calcite/blob/3f4ea2f0/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 02497e8..ccec152 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,7 +49,7 @@ limitations under the License.
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <top.dir>${project.basedir}</top.dir>
     <version.major>1</version.major>
-    <version.minor>7</version.minor>
+    <version.minor>8</version.minor>
 
     <!-- This list is in alphabetical order. -->
     <airlift-tpch.version>0.1</airlift-tpch.version>

http://git-wip-us.apache.org/repos/asf/calcite/blob/3f4ea2f0/site/_docs/adapter.md
----------------------------------------------------------------------
diff --git a/site/_docs/adapter.md b/site/_docs/adapter.md
index 10cb8f8..987538f 100644
--- a/site/_docs/adapter.md
+++ b/site/_docs/adapter.md
@@ -64,7 +64,7 @@ where `property`, `property2` are properties as described below.
 as implemented by Avatica's
 <a href="{{ site.apiRoot }}/org/apache/calcite/avatica/ConnectStringParser.html">ConnectStringParser</a>.)
 
-JDBC connect string parameters
+## JDBC connect string parameters
 
 | Property | Description |
 |:-------- |:------------|

http://git-wip-us.apache.org/repos/asf/calcite/blob/3f4ea2f0/site/_docs/history.md
----------------------------------------------------------------------
diff --git a/site/_docs/history.md b/site/_docs/history.md
index fcd20c2..75595a7 100644
--- a/site/_docs/history.md
+++ b/site/_docs/history.md
@@ -28,6 +28,183 @@ For a full list of releases, see
 Downloads are available on the
 [downloads page]({{ site.baseurl }}/downloads/).
 
+{% comment %}
+## <a href="https://github.com/apache/calcite/releases/tag/calcite-1.x.0">1.x.0</a> / 2016-xx-xx
+{: #v1-x-0}
+
+Description of the release.
+
+Compatibility: This release is tested
+on Linux, Mac OS X, Microsoft Windows;
+using Oracle JDK 1.7, 1.8;
+Guava versions 12.0.1 to 19.0;
+other software versions as specified in `pom.xml`.
+
+(Fill in the gaps in the following sections using the relNotes script)
+
+New features
+Planner rules
+Bug fixes, API changes and minor enhancements
+Web site and documentation
+{% endcomment %}
+
+## <a href="https://github.com/apache/calcite/releases/tag/calcite-1.8.0">1.8.0</a> / 2016-06-09
+{: #v1-8-0}
+
+This release adds adapters for
+<a href="https://issues.apache.org/jira/browse/CALCITE-1253">Elasticsearch</a> and
+<a href="https://issues.apache.org/jira/browse/CALCITE-1121">Druid</a>.
+It is also now easier to
+<a href="https://issues.apache.org/jira/browse/CALCITE-1259">make a JDBC connection based upon a single adapter</a>.
+
+There are several new SQL features: `UNNEST` with
+<a href="https://issues.apache.org/jira/browse/CALCITE-855">multiple arguments</a>,
+<a href="https://issues.apache.org/jira/browse/CALCITE-1250">MAP arguments</a>
+and <a href="https://issues.apache.org/jira/browse/CALCITE-1225">with a JOIN</a>;
+a <a href="https://issues.apache.org/jira/browse/CALCITE-1168">DESCRIBE</a> statement;
+and a <a href="https://issues.apache.org/jira/browse/CALCITE-1115">TRANSLATE</a>
+function like the one in Oracle and PostgreSQL.
+We also added support for
+<a href="https://issues.apache.org/jira/browse/CALCITE-1120">SELECT without FROM</a>
+(equivalent to the `VALUES` clause, and widely used in MySQL and PostgreSQL),
+and added a
+[conformance]({{ site.baseurl }}/docs/adapter.html#jdbc-connect-string-parameters)
+parameter to allow you to selectively enable this and other SQL features.
+
+And a couple of dozen bug-fixes and enhancements to planner rules and APIs.
+
+Compatibility: This release is tested
+on Linux, Mac OS X, Microsoft Windows;
+using Oracle JDK 1.7, 1.8;
+Guava versions 12.0.1 to 19.0;
+other software versions as specified in `pom.xml`.
+
+New features
+
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1177">CALCITE-1177</a>]
+  Extend list of supported time units in `EXTRACT`, `CEIL` and `FLOOR` functions
+  (Venki Korukanti)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1259">CALCITE-1259</a>]
+  Allow connecting to a single schema without writing a model
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-750">CALCITE-750</a>]
+  Support aggregates within windowed aggregates (Gautam Parai)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1250">CALCITE-1250</a>]
+  `UNNEST` applied to `MAP` data type (Johannes Schulte)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1253">CALCITE-1253</a>]
+  Elasticsearch adapter (Subhobrata Dey)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1228">CALCITE-1228</a>]
+  Bind parameters in `INSERT`
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1120">CALCITE-1120</a>]
+  `SELECT` without `FROM` (Jimmy Xiang)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-855">CALCITE-855</a>]
+  `UNNEST` with multiple arguments
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1225">CALCITE-1225</a>]
+  `UNNEST` with `JOIN`
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1115">CALCITE-1115</a>]
+  Add `TRANSLATE` function with 3 parameters, like the one in Oracle (Javanshir
+  Yelchiyev)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1168">CALCITE-1168</a>]
+  Add `DESCRIBE` statement (Arina Ielchiieva)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1121">CALCITE-1121</a>]
+  Druid adapter
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1207">CALCITE-1207</a>]
+  Allow numeric connection properties, and 'K', 'M', 'G' suffixes
+
+Planner rules
+
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1235">CALCITE-1235</a>]
+  Fully push down `LIMIT` + `OFFSET` in Cassandra
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1216">CALCITE-1216</a>]
+  Rule to convert `Filter`-on-`Scan` to materialized view (Amogh Margoor)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1200">CALCITE-1200</a>]
+  Extend `RelOptUtil.splitJoinCondition` to handle `IS NOT DISTINCT FROM`
+  (Venki Korukanti)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1211">CALCITE-1211</a>]
+  Allow free use of `CassandraSort` for `LIMIT`
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1210">CALCITE-1210</a>]
+  Allow UUID filtering in Cassandra
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1182">CALCITE-1182</a>]
+  Add `ProjectRemoveRule` to pre-processing program of materialization
+  substitution
+
+Bug fixes, API changes and minor enhancements
+
+* Update KEYS
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1252">CALCITE-1252</a>]
+  Handle `ANY` type in `RexBuilder.ensureType` and `TypeFactory.leastRestrictive`
+  (Mehand Baid, Minji Kim)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1151">CALCITE-1151</a>]
+  Fix `SqlSetOption` to correctly handle `SqlOperator.createCall`
+  (Sudheesh Katkam, Minji Kim)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1106">CALCITE-1106</a>]
+  Expose constructor for `ProjectJoinTransposeRule` (Minji Kim)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1107">CALCITE-1107</a>]
+  Make `SqlSumEmptyIsZeroAggFunction` constructor public (Minji Kim)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1269">CALCITE-1269</a>]
+  Replace `IntList` with Guava `Ints` class
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1239">CALCITE-1239</a>]
+  Upgrade to avatica-1.8.0
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1266">CALCITE-1266</a>]
+  `RelBuilder.field` gets offsets wrong
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1264">CALCITE-1264</a>]
+  `Litmus` argument interpolation (Chris Baynes)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1245">CALCITE-1245</a>]
+  Allow `RelBuilder.scan` to take qualified table name (Chris Baynes)
+* Move code from `Enumerables` to `EnumerableDefaults`
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1246">CALCITE-1246</a>]
+  Cleanup duplicate variables in `JoinPushThroughJoinRule` (Yi Xinglu)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1241">CALCITE-1241</a>]
+  Add a Freemarker variable for adding non reserved keyword list to `Parser.jj`
+  template (Venki Korukanti)
+  * Create a table in `SqlParserTest` of reserved keywords from various versions
+    of the SQL standard
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1150">CALCITE-1150</a>]
+  Add dynamic record type and dynamic star for schema-on-read table
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1238">CALCITE-1238</a>]
+  Unparsing a query with `LIMIT` but no `ORDER BY` gives invalid SQL (Emmanuel
+  Bastien)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1230">CALCITE-1230</a>]
+  Add SQLSTATE reference data as `enum SqlState` in Avatica, and
+  deprecate `SqlStateCodes` in Calcite
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1199">CALCITE-1199</a>]
+  Incorrect trimming of `CHAR` when performing cast to `VARCHAR`
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1219">CALCITE-1219</a>]
+  Add method `SqlOperatorBinding.isOperandLiteral()` (Hsuan-Yi Chu)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1222">CALCITE-1222</a>]
+  `DatabaseMetaData.getColumnLabel` returns null when query has `ORDER BY`
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1215">CALCITE-1215</a>]
+  Fix missing override in `CassandraTable`
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1212">CALCITE-1212</a>]
+  Fix NPE on some Cassandra projects
+* Remove trailing spaces from all source files
+* Move HTTP utilities from Splunk adapter to core
+* Test case for
+  [<a href="https://issues.apache.org/jira/browse/PHOENIX-2767">PHOENIX-2767</a>],
+  non-constant in `IN`
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1166">CALCITE-1166</a>]
+  Disallow sub-classes of `RelOptRuleOperand`
+* Remove all calls to deprecated methods
+* Add class `ConsList`
+* More of [<a href="https://issues.apache.org/jira/browse/CALCITE-999">CALCITE-999</a>]
+  Clean up maven POM files
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1204">CALCITE-1204</a>]
+  Fix invalid Javadoc and suppress checkstyle "errors"
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1170">CALCITE-1170</a>]
+  Allow `SqlSetOperator` to be overridden, as a regular `SqlOperator` can
+  (Hsuan-Yi Chu)
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-746">CALCITE-746</a>]
+  Allow apache-rat to be run outside of release process
+
+Web site and documentation
+
+* Fix typo in SQL (Yi Xinglu)
+* Site: add committer, and post slides/video from Polyalgebra talk
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1203">CALCITE-1203</a>]
+  Update to github-pages-67
+* [<a href="https://issues.apache.org/jira/browse/CALCITE-1202">CALCITE-1202</a>]
+  Lock version of Jekyll for bundler
+* Site: add upcoming talks, and fix link to Apache phonebook
+
 ## <a href="https://github.com/apache/calcite/releases/tag/calcite-1.7.0">1.7.0</a> / 2016-03-22
 {: #v1-7-0}
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/3f4ea2f0/site/_docs/howto.md
----------------------------------------------------------------------
diff --git a/site/_docs/howto.md b/site/_docs/howto.md
index 723b39c..b31d985 100644
--- a/site/_docs/howto.md
+++ b/site/_docs/howto.md
@@ -39,8 +39,8 @@ Unpack the source distribution `.tar.gz` or `.zip` file,
 then build using maven:
 
 {% highlight bash %}
-$ tar xvfz calcite-1.7.0-source.tar.gz
-$ cd calcite-1.7.0
+$ tar xvfz calcite-1.8.0-source.tar.gz
+$ cd calcite-1.8.0
 $ mvn install
 {% endhighlight %}
 
@@ -113,7 +113,7 @@ environment, as follows.
 ## Running integration tests
 
 For testing Calcite's external adapters, a test virtual machine should be used.
-The VM includes H2, HSQLDB, MySQL, MongoDB, and PostgreSQL.
+The VM includes Cassandra, Druid, H2, HSQLDB, MySQL, MongoDB, and PostgreSQL.
 
 Test VM requires 5GiB of disk space and it takes 30 minutes to build.
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/3f4ea2f0/site/_docs/tutorial.md
----------------------------------------------------------------------
diff --git a/site/_docs/tutorial.md b/site/_docs/tutorial.md
index 73f8f8f..c907cef 100644
--- a/site/_docs/tutorial.md
+++ b/site/_docs/tutorial.md
@@ -481,7 +481,7 @@ sqlline> explain plan for select name from emps;
 | PLAN                                                |
 +-----------------------------------------------------+
 | EnumerableCalcRel(expr#0..9=[{inputs}], NAME=[$t1]) |
-|   EnumerableTableAccessRel(table=[[SALES, EMPS]])   |
+|   EnumerableTableScan(table=[[SALES, EMPS]])        |
 +-----------------------------------------------------+
 sqlline> !connect jdbc:calcite:model=target/test-classes/smart.json admin admin
 sqlline> explain plan for select name from emps;

http://git-wip-us.apache.org/repos/asf/calcite/blob/3f4ea2f0/site/community/index.md
----------------------------------------------------------------------
diff --git a/site/community/index.md b/site/community/index.md
index 7e8bec0..bfbbd96 100644
--- a/site/community/index.md
+++ b/site/community/index.md
@@ -26,8 +26,6 @@ limitations under the License.
 
 # Upcoming talks
 
-* 2016/05/10 <a href="http://events.linuxfoundation.org/events/apache-big-data-north-america/program/schedule">ApacheCon Big Data North America</a>, Vancouver
-* 2016/05/24 <a href="http://www-conf.slac.stanford.edu/xldb2016/Program.asp">XLDB</a>, Palo Alto
 * 2016/06/29 <a href="http://hadoopsummit.org/san-jose/agenda/">Hadoop Summit</a>, San Jose
 
 # Project Members
@@ -39,7 +37,7 @@ Name (Apache ID) | Github | Org | Role
 
 # Mailing Lists
 
-There are several development mailing lists for Calcite:
+There are several mailing lists for Calcite:
 
 * [dev@calcite.apache.org](mailto:dev@calcite.apache.org) - Development discussions
   [[archive](https://mail-archives.apache.org/mod_mbox/calcite-dev/)]
@@ -49,8 +47,8 @@ There are several development mailing lists for Calcite:
   [[archive](https://mail-archives.apache.org/mod_mbox/calcite-commits/)]
 
 You can subscribe to the lists by sending email to
-*list*-subscribe@calcite.apache.org and unsubscribe by sending email to
-*list*-unsubscribe@calcite.apache.org.
+*{list}*-subscribe@calcite.apache.org and unsubscribe by sending email to
+*{list}*-unsubscribe@calcite.apache.org (where *{list}* is either "dev", "issues", or "commits").
 
 # Help
 
@@ -66,9 +64,9 @@ Need help with Calcite? Try these resources:
 * **Bug Reports**.
   Please file any issues you encounter or fixes you'd like on the
   [Calcite Jira](https://issues.apache.org/jira/browse/CALCITE). We welcome
-  patches!
+  patches and pull-requests!
 * **StackOverflow**.
-  [StackOverflow](http://stackoverflow.com) is a wonderful resource for
+  [StackOverflow](http://stackoverflow.com/questions/tagged/calcite) is a wonderful resource for
   any developer. Take a look over there to see if someone has answered
   your question.
 * **Browse the code**.
@@ -122,6 +120,7 @@ As Hadoop Summit, Dublin, 2016
 
 ## More talks
 
+* <a href="https://github.com/julianhyde/share/blob/master/slides/calcite-streaming-sql-xldb-2016.pdf?raw=true">Streaming SQL</a> (XLDB, Menlo Park, 2016)
 * <a href="https://github.com/julianhyde/share/blob/master/slides/hive-cbo-seattle-2014.pdf?raw=true">Cost-based optimization in Hive 0.14</a> (Seattle, 2014)
 * <a href="https://github.com/julianhyde/share/blob/master/slides/dmmq-summit-2014.pdf?raw=true">Discardable, in-memory materialized query for Hadoop</a> (<a href="https://www.youtube.com/watch?v=CziGOa8GXqI">video</a>) (Hadoop Summit, 2014)
 * <a href="https://github.com/julianhyde/share/blob/master/slides/hive-cbo-summit-2014.pdf?raw=true">Cost-based optimization in Hive</a> (<a href="https://www.youtube.com/watch?v=vpG5noIbEFs">video</a>) (Hadoop Summit, 2014)

http://git-wip-us.apache.org/repos/asf/calcite/blob/3f4ea2f0/splunk/src/main/java/org/apache/calcite/adapter/splunk/SplunkPushDownRule.java
----------------------------------------------------------------------
diff --git a/splunk/src/main/java/org/apache/calcite/adapter/splunk/SplunkPushDownRule.java b/splunk/src/main/java/org/apache/calcite/adapter/splunk/SplunkPushDownRule.java
index a9c0d8e..31e73d8 100644
--- a/splunk/src/main/java/org/apache/calcite/adapter/splunk/SplunkPushDownRule.java
+++ b/splunk/src/main/java/org/apache/calcite/adapter/splunk/SplunkPushDownRule.java
@@ -415,7 +415,7 @@ public class SplunkPushDownRule
     assert false;
 /*
     RelNode rel =
-        new EnumerableRules.EnumerableTableAccessRel(
+        new EnumerableTableScan(
             udxRel.getCluster(),
             udxRel.getTable(),
             udxRel.getRowType(),


[4/4] calcite git commit: Following [CALCITE-1230], deprecate SqlStateCodes

Posted by jh...@apache.org.
Following [CALCITE-1230], deprecate SqlStateCodes


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

Branch: refs/heads/branch-1.8
Commit: e77b86638cc85fe58784c447619a8d4bef9f3940
Parents: 2bee6ef
Author: Julian Hyde <jh...@apache.org>
Authored: Fri May 6 12:05:50 2016 -0700
Committer: Julian Hyde <jh...@apache.org>
Committed: Mon Jun 6 11:14:18 2016 -0700

----------------------------------------------------------------------
 core/src/main/java/org/apache/calcite/sql/SqlStateCodes.java | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/e77b8663/core/src/main/java/org/apache/calcite/sql/SqlStateCodes.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlStateCodes.java b/core/src/main/java/org/apache/calcite/sql/SqlStateCodes.java
index 5753f47..d4fe7e9 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlStateCodes.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlStateCodes.java
@@ -22,7 +22,10 @@ package org.apache.calcite.sql;
  * <p>SQL State codes are defined in
  *
  * <pre><code> &#64;sql.2003 Part 2 Section 23.1</code></pre>
+ *
+ * @deprecated Use {@code org.apache.calcite.avatica.SqlState}
  */
+@Deprecated // will be removed before 2.0
 public enum SqlStateCodes {
   CARDINALITY_VIOLATION("cardinality violation", "21", "000"),
 


[2/4] calcite git commit: [CALCITE-1252] Handle ANY type in RexBuilder.ensureType and TypeFactory.leastRestrictive (Mehand Baid, Minji Kim)

Posted by jh...@apache.org.
[CALCITE-1252] Handle ANY type in RexBuilder.ensureType and TypeFactory.leastRestrictive (Mehand Baid, Minji Kim)

Close apache/calcite#243


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

Branch: refs/heads/branch-1.8
Commit: a4ccb80a91b4592f902e3f34355aa391d6cb4066
Parents: e77b866
Author: Minji Kim <mi...@dremio.com>
Authored: Fri Jun 3 14:05:31 2016 -0700
Committer: Julian Hyde <jh...@apache.org>
Committed: Mon Jun 6 11:14:18 2016 -0700

----------------------------------------------------------------------
 .../java/org/apache/calcite/rex/RexBuilder.java |  7 ++
 .../calcite/sql/type/SqlTypeFactoryImpl.java    | 12 +++
 .../org/apache/calcite/rex/RexBuilderTest.java  | 84 ++++++++++++++++++++
 .../calcite/sql/type/SqlTypeFactoryTest.java    | 55 +++++++++++++
 .../org/apache/calcite/test/CalciteSuite.java   |  4 +
 .../calcite/test/SqlToRelConverterTest.xml      |  4 +-
 6 files changed, 164 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/a4ccb80a/core/src/main/java/org/apache/calcite/rex/RexBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexBuilder.java b/core/src/main/java/org/apache/calcite/rex/RexBuilder.java
index 1796784..2d8b459 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexBuilder.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexBuilder.java
@@ -999,6 +999,13 @@ public class RexBuilder {
     if (matchNullability) {
       targetType = matchNullability(type, node);
     }
+
+    if (targetType.getSqlTypeName() == SqlTypeName.ANY
+        && (!matchNullability
+            || targetType.isNullable() == node.getType().isNullable())) {
+      return node;
+    }
+
     if (!node.getType().equals(targetType)) {
       return makeCast(targetType, node);
     }

http://git-wip-us.apache.org/repos/asf/calcite/blob/a4ccb80a/core/src/main/java/org/apache/calcite/sql/type/SqlTypeFactoryImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/type/SqlTypeFactoryImpl.java b/core/src/main/java/org/apache/calcite/sql/type/SqlTypeFactoryImpl.java
index 28a5d2d..c7636cc 100644
--- a/core/src/main/java/org/apache/calcite/sql/type/SqlTypeFactoryImpl.java
+++ b/core/src/main/java/org/apache/calcite/sql/type/SqlTypeFactoryImpl.java
@@ -219,12 +219,18 @@ public class SqlTypeFactoryImpl extends RelDataTypeFactoryImpl {
     int nullCount = 0;
     int nullableCount = 0;
     int javaCount = 0;
+    int anyCount = 0;
 
     for (RelDataType type : types) {
       final SqlTypeName typeName = type.getSqlTypeName();
       if (typeName == null) {
         return null;
       }
+
+      if (typeName == SqlTypeName.ANY) {
+        anyCount++;
+      }
+
       if (type.isNullable()) {
         ++nullableCount;
       }
@@ -236,6 +242,12 @@ public class SqlTypeFactoryImpl extends RelDataTypeFactoryImpl {
       }
     }
 
+
+    //  if any of the inputs are ANY, the output is ANY
+    if (anyCount > 0) {
+      return createTypeWithNullability(createSqlType(SqlTypeName.ANY), nullCount > 0);
+    }
+
     for (int i = 0; i < types.size(); ++i) {
       RelDataType type = types.get(i);
       RelDataTypeFamily family = type.getFamily();

http://git-wip-us.apache.org/repos/asf/calcite/blob/a4ccb80a/core/src/test/java/org/apache/calcite/rex/RexBuilderTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/rex/RexBuilderTest.java b/core/src/test/java/org/apache/calcite/rex/RexBuilderTest.java
new file mode 100644
index 0000000..28671fc
--- /dev/null
+++ b/core/src/test/java/org/apache/calcite/rex/RexBuilderTest.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.calcite.rex;
+
+import org.apache.calcite.rel.type.RelDataTypeFactory;
+import org.apache.calcite.rel.type.RelDataTypeSystem;
+import org.apache.calcite.sql.type.SqlTypeFactoryImpl;
+import org.apache.calcite.sql.type.SqlTypeName;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
+/**
+ * Test for {@link RexBuilder}
+ */
+public class RexBuilderTest {
+
+  /**
+   * Test RexBuilder.ensureType()
+   */
+  @Test
+  public void testEnsureTypeWithAny() {
+    final RelDataTypeFactory typeFactory = new SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT);
+    RexBuilder builder = new RexBuilder(typeFactory);
+
+    RexNode node =  new RexLiteral(
+            Boolean.TRUE, typeFactory.createSqlType(SqlTypeName.BOOLEAN), SqlTypeName.BOOLEAN);
+    RexNode ensuredNode = builder.ensureType(
+            typeFactory.createSqlType(SqlTypeName.ANY), node, true);
+
+    assertEquals(node, ensuredNode);
+  }
+
+  /**
+   * Test RexBuilder.ensureType()
+   */
+  @Test
+  public void testEnsureTypeWithItself() {
+    final RelDataTypeFactory typeFactory = new SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT);
+    RexBuilder builder = new RexBuilder(typeFactory);
+
+    RexNode node =  new RexLiteral(
+            Boolean.TRUE, typeFactory.createSqlType(SqlTypeName.BOOLEAN), SqlTypeName.BOOLEAN);
+    RexNode ensuredNode = builder.ensureType(
+            typeFactory.createSqlType(SqlTypeName.BOOLEAN), node, true);
+
+    assertEquals(node, ensuredNode);
+  }
+
+  /**
+   * Test RexBuilder.ensureType()
+   */
+  @Test
+  public void testEnsureTypeWithDifference() {
+    final RelDataTypeFactory typeFactory = new SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT);
+    RexBuilder builder = new RexBuilder(typeFactory);
+
+    RexNode node =  new RexLiteral(
+            Boolean.TRUE, typeFactory.createSqlType(SqlTypeName.BOOLEAN), SqlTypeName.BOOLEAN);
+    RexNode ensuredNode = builder.ensureType(
+            typeFactory.createSqlType(SqlTypeName.INTEGER), node, true);
+
+    assertNotEquals(node, ensuredNode);
+    assertEquals(ensuredNode.getType(), typeFactory.createSqlType(SqlTypeName.INTEGER));
+  }
+
+}
+// End RexBuilderTest.java

http://git-wip-us.apache.org/repos/asf/calcite/blob/a4ccb80a/core/src/test/java/org/apache/calcite/sql/type/SqlTypeFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/sql/type/SqlTypeFactoryTest.java b/core/src/test/java/org/apache/calcite/sql/type/SqlTypeFactoryTest.java
new file mode 100644
index 0000000..5748b14
--- /dev/null
+++ b/core/src/test/java/org/apache/calcite/sql/type/SqlTypeFactoryTest.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.calcite.sql.type;
+
+import org.apache.calcite.rel.type.RelDataType;
+import org.apache.calcite.rel.type.RelDataTypeSystem;
+
+import com.google.common.collect.Lists;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Test for {@link SqlTypeFactoryImpl}
+ */
+public class SqlTypeFactoryTest {
+
+  @Test
+  public void testLeastRestrictiveWithAny() {
+    SqlTypeFactoryImpl typeFactory = new SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT);
+    final RelDataType sqlBigInt = typeFactory.createSqlType(SqlTypeName.BIGINT);
+    final RelDataType sqlAny = typeFactory.createSqlType(SqlTypeName.ANY);
+
+    RelDataType leastRestrictive =
+            typeFactory.leastRestrictive(Lists.newArrayList(sqlBigInt, sqlAny));
+    assertEquals(leastRestrictive.getSqlTypeName(), SqlTypeName.ANY);
+  }
+
+  @Test
+  public void testLeastRestrictiveWithNumbers() {
+    SqlTypeFactoryImpl typeFactory = new SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT);
+    final RelDataType sqlBigInt = typeFactory.createSqlType(SqlTypeName.BIGINT);
+    final RelDataType sqlInt = typeFactory.createSqlType(SqlTypeName.INTEGER);
+
+    RelDataType leastRestrictive =
+            typeFactory.leastRestrictive(Lists.newArrayList(sqlBigInt, sqlInt));
+    assertEquals(leastRestrictive.getSqlTypeName(), SqlTypeName.BIGINT);
+  }
+}
+// End SqlTypeFactoryTest.java

http://git-wip-us.apache.org/repos/asf/calcite/blob/a4ccb80a/core/src/test/java/org/apache/calcite/test/CalciteSuite.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/CalciteSuite.java b/core/src/test/java/org/apache/calcite/test/CalciteSuite.java
index c43a76e..0132016 100644
--- a/core/src/test/java/org/apache/calcite/test/CalciteSuite.java
+++ b/core/src/test/java/org/apache/calcite/test/CalciteSuite.java
@@ -26,6 +26,7 @@ import org.apache.calcite.plan.volcano.VolcanoPlannerTest;
 import org.apache.calcite.plan.volcano.VolcanoPlannerTraitTest;
 import org.apache.calcite.rel.RelCollationTest;
 import org.apache.calcite.rel.rel2sql.RelToSqlConverterTest;
+import org.apache.calcite.rex.RexBuilderTest;
 import org.apache.calcite.rex.RexExecutorTest;
 import org.apache.calcite.runtime.BinarySearchTest;
 import org.apache.calcite.runtime.EnumerablesTest;
@@ -36,6 +37,7 @@ import org.apache.calcite.sql.test.SqlAdvisorTest;
 import org.apache.calcite.sql.test.SqlOperatorTest;
 import org.apache.calcite.sql.test.SqlPrettyWriterTest;
 import org.apache.calcite.sql.test.SqlTypeNameTest;
+import org.apache.calcite.sql.type.SqlTypeFactoryTest;
 import org.apache.calcite.test.enumerable.EnumerableCorrelateTest;
 import org.apache.calcite.tools.FrameworksTest;
 import org.apache.calcite.tools.PlannerTest;
@@ -94,6 +96,8 @@ import org.junit.runners.Suite;
     ExceptionMessageTest.class,
     InduceGroupingTypeTest.class,
     RelOptPlanReaderTest.class,
+    RexBuilderTest.class,
+    SqlTypeFactoryTest.class,
 
     // medium tests (above 0.1s)
     SqlParserTest.class,

http://git-wip-us.apache.org/repos/asf/calcite/blob/a4ccb80a/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml b/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
index 1ac074f..d16b3fd 100644
--- a/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
+++ b/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
@@ -3363,7 +3363,7 @@ LogicalProject(**=[$0], **0=[$1])
             <![CDATA[
 LogicalAggregate(group=[{0}], CNT=[COUNT()])
   LogicalProject(N_REGIONKEY=[ITEM($0, 'N_REGIONKEY')])
-    LogicalFilter(condition=[>(CAST(ITEM($0, 'N_NATIONKEY')):INTEGER, 5)])
+    LogicalFilter(condition=[>(ITEM($0, 'N_NATIONKEY'), 5)])
       LogicalProject(**=[$0])
         LogicalTableScan(table=[[CATALOG, SALES, NATION]])
 ]]>
@@ -3391,7 +3391,7 @@ LogicalProject(**=[$0], **0=[$1])
         <Resource name="plan">
             <![CDATA[
 LogicalProject(**=[$1], R_REGIONKEY=[$2], R_NAME=[$3], R_COMMENT=[$4])
-  LogicalFilter(condition=[=(CAST($0):INTEGER, $2)])
+  LogicalFilter(condition=[=($0, $2)])
     LogicalJoin(condition=[true], joinType=[inner])
       LogicalTableScan(table=[[CATALOG, SALES, NATION]])
       LogicalTableScan(table=[[CATALOG, SALES, REGION]])


[3/4] calcite git commit: Update KEYS

Posted by jh...@apache.org.
Update KEYS


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

Branch: refs/heads/branch-1.8
Commit: 62db4638af9ffbda249d51d1b47e783db9221e1a
Parents: a4ccb80
Author: Julian Hyde <jh...@apache.org>
Authored: Sat Jun 4 20:52:41 2016 -0700
Committer: Julian Hyde <jh...@apache.org>
Committed: Mon Jun 6 11:14:18 2016 -0700

----------------------------------------------------------------------
 KEYS | 72 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 42 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/62db4638/KEYS
----------------------------------------------------------------------
diff --git a/KEYS b/KEYS
index 61ee69c..fb1a493 100644
--- a/KEYS
+++ b/KEYS
@@ -14,11 +14,12 @@ Examples of adding your key to this file:
 
 -----------------------------------------------------------------------------------
 
-pub   4096R/2AD3FAE3 2014-07-24
-uid                  Julian Hyde (CODE SIGNING KEY) <jh...@apache.org>
-sig 3        2AD3FAE3 2014-07-24  Julian Hyde (CODE SIGNING KEY) <jh...@apache.org>
-sub   4096R/B9E5F68D 2014-07-24
-sig          2AD3FAE3 2014-07-24  Julian Hyde (CODE SIGNING KEY) <jh...@apache.org>
+pub   4096R/DDB6E9812AD3FAE3 2014-07-24
+uid                          Julian Hyde (CODE SIGNING KEY) <jh...@apache.org>
+sig 3        DDB6E9812AD3FAE3 2014-07-24  Julian Hyde (CODE SIGNING KEY) <jh...@apache.org>
+sig          1209E7F13D0C92B9 2014-11-10  Owen O'Malley (Code signing) <om...@apache.org>
+sub   4096R/7A6BF54DB9E5F68D 2014-07-24
+sig          DDB6E9812AD3FAE3 2014-07-24  Julian Hyde (CODE SIGNING KEY) <jh...@apache.org>
 
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1
@@ -46,31 +47,42 @@ ymAZ90Tx/8NCQnck/V1Sq4lZL1FS+cwoRP+g/fXnLpR6iUoKttLOa3eDHf/Mvw5u
 4Wr1WxlfWWVMOXrsHbHgnQEsW+lwpeA+WUELCQ6ksJzwPr4TGH6c8r9pZNNvz2et
 pjZ7WIrPmR56w9INfeaENuNoS8pKmvtBpY+CZ4riSjmP3GpB1S37LvPsvgXapHpa
 0Niceb1jSBT/cfYf2Sp0yNzy+yr0DtG7d3HKvY+S3NpBygs+NLC1t7YVUzYiw+iu
-fmnIrpKwDNTGomvN2y+LEf7AuXe8+wt8bgLsZ0UiDT21KLZjCRCE1Bxx+8gkZ7kC
-DQRT0Ud8ARAAquRV7f+IHDjrbzDQkTI7N8XJOQJykR44vNdbt9BgNbBrbFZSYOU1
-d2DtudPMgPVCcNJ73fVOasXfCcLm1C8FGRb0BAOPvF97L2+RNMuD/JzNAYyZL/bU
-im61Dgz+HM9Fyu1PFNmywgAdBvK1rHhiyv3mfJUOLquoIxr3lzjAqCvHAFKeNOdv
-GpVByRK6BwvbCMMwwY2Alu7OlzEmv0KANbf1K2zIKG3VtN5bpIFvXWMDwMhZSEmg
-Z86vAapmpeMVfgvtDhB1xGL88ihwGQSVaGOurR8u6JpcbWKWu+hwkS61hzLXxdiJ
-fxC18wuXuIAKz01hETX8ktL4UZk0jISqoD+WAbajUiJIBvEoDSmVoQz0znLECU7U
-a4h3GguQ/tSJejGVk0gbNONi0CveYPzVWqoIkCaD08z62HeCuH4WbrP5NMag4iGt
-zkS6preP38M3uJYUrF47AqD8c9xqaqrqN9ePX2rTM8/v9tdcy7vtyBLyX7bVz2Bw
-cF7aCKtol7wxgrNf+npUmnAQ8ejCrnMaFB4X9C6BuP/Y1l1mplguHSim6WzNU/d2
-63kbxWQuOWcnMNoZ2v3vkmTS1o5kQcJyo1bjpzgV255gowTKQJspgUySPYjYxD14
-tBNW8kpp2sqiNq338t3DXBpznWEIGtbX3TjwtW1mKxITaL4Ks8uExqUAEQEAAYkC
-HwQYAQIACQUCU9FHfAIbDAAKCRDdtumBKtP645/ID/49Uq6/T+fleY7mt6pOuk0B
-M+zRF2nLPXzEqtf7rOgiQjyhhv40hDfJWOPtoOwpOMPZZYVmZf/2UUL0tDHqJum3
-iPVDP3mLw/6uNK+1Ifeg+1nK/g25jnIsyfRMKaKu6DOB3nTi7G86/5BTdr7wiXGb
-RUaTH7jhkUk5Np02ru3Wv/b8zZvfo/K7UfvsoJ936HRv2C6BwdiizEEnbfPmzzFp
-uEvnCFQHL2fxFtJaKthtRyudWTEEY+ZFMgvM7+YYqyg6mdoDAcg4FXYC6THF9H12
-z1/qPnOiCfiEJvpimCcVv5qKdWjd3r4YMmrfOPkGpqvwwm0OulO/1DlLmYTqkLmV
-TJjPb81zFgJlhBhFcFXHRq2KaJOsJr3+N6NEDKzmbYGBZTvWQBVaRxAbV9tCz12Q
-FCw65kJIjdJhaZKg89H9TDOzemEk4sbAHMF7dFmA9p+OX+MpUgsnG2fAh1zr2aqJ
-YqLHGuE5xiFcFsOOixpHwS3vr6L9Lsn+ixdIXtK0IXh1mHJ78yNaDKrFzIRGissF
-Mo0VX9LD8U6wT32+AXldZkFlFr1TsJtilgEen1AvxjVs9KLJjb0WhFsw0MGndMOD
-Uf2lGPk3WCmS8+NmQm4PePkNUIN1N6BNvLpeA8xUzUorfUHI74949+ppVQ8td5eS
-HFfYzFyXcqX3BhXdDWg/XQ==
-=9tCp
+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
+=P3yk
 -----END PGP PUBLIC KEY BLOCK-----
 
 pub   4096R/AB10D143 2013-09-01 [expires: 2017-09-01]