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

[17/19] incubator-calcite git commit: [CALCITE-355] Web site

[CALCITE-355] Web site

Update instructions

Rename 'back' button to 'previous'

Remove content from root README.md.

Add release 1.3.0


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

Branch: refs/heads/master
Commit: 5c049bc8764e931bd7771928fd25c21f33d24546
Parents: 20f5912
Author: Julian Hyde <jh...@apache.org>
Authored: Wed May 27 19:11:54 2015 -0700
Committer: Julian Hyde <jh...@apache.org>
Committed: Mon Jun 1 00:01:55 2015 -0700

----------------------------------------------------------------------
 README.md                                       |  229 +--
 doc/avatica.md                                  |   97 -
 doc/history.md                                  | 1587 -----------------
 doc/howto.md                                    |  803 ---------
 doc/lattice.md                                  |  125 --
 doc/model.md                                    |  435 -----
 doc/reference.md                                |  569 ------
 doc/stream.md                                   |  631 -------
 doc/tutorial.md                                 |  753 --------
 site/.gitignore                                 |    2 +
 site/Gemfile                                    |    3 +
 site/README.md                                  |   37 +
 site/_config.yml                                |   12 +
 site/_data/contributors.yml                     |   58 +
 site/_data/docs.yml                             |   25 +
 site/_docs/adapter.md                           |   21 +
 site/_docs/algebra.md                           |   22 +
 site/_docs/api.md                               |   22 +
 site/_docs/avatica.md                           |  102 ++
 site/_docs/contributing.md                      |   72 +
 site/_docs/downloads.md                         |   53 +
 site/_docs/history.md                           | 1656 ++++++++++++++++++
 site/_docs/howto.md                             |  810 +++++++++
 site/_docs/index.md                             |  137 ++
 site/_docs/lattice.md                           |  133 ++
 site/_docs/model.md                             |  447 +++++
 site/_docs/reference.md                         |  587 +++++++
 site/_docs/stream.md                            |  644 +++++++
 site/_docs/tutorial.md                          |  760 ++++++++
 site/_includes/anchor_links.html                |   33 +
 site/_includes/docs_contents.html               |    8 +
 site/_includes/docs_contents_mobile.html        |   10 +
 site/_includes/docs_option.html                 |   11 +
 site/_includes/docs_ul.html                     |   21 +
 site/_includes/footer.html                      |   19 +
 site/_includes/header.html                      |   18 +
 site/_includes/news_contents.html               |   30 +
 site/_includes/news_contents_mobile.html        |   11 +
 site/_includes/news_item.html                   |   45 +
 site/_includes/primary-nav-items.html           |   20 +
 site/_includes/section_nav.html                 |   39 +
 site/_includes/top.html                         |   15 +
 site/_layouts/default.html                      |   12 +
 site/_layouts/docs.html                         |   23 +
 site/_layouts/external.html                     |    9 +
 site/_layouts/news.html                         |   19 +
 site/_layouts/news_item.html                    |   48 +
 site/_layouts/page.html                         |   18 +
 .../2014-06-27-release-0.8.0-incubating.md      |   11 +
 .../2014-08-19-release-0.9.0-incubating.md      |   12 +
 .../2014-10-02-release-0.9.1-incubating.md      |   11 +
 .../2014-11-05-release-0.9.2-incubating.md      |   14 +
 .../2015-01-31-release-1.0.0-incubating.md      |   24 +
 .../2015-03-13-release-1.1.0-incubating.md      |   23 +
 .../2015-04-07-release-1.2.0-incubating.md      |   23 +
 site/_posts/2015-04-24-new-committers.md        |   16 +
 .../2015-05-30-release-1.3.0-incubating.md      |   15 +
 site/_sass/_font-awesome.scss                   |   25 +
 site/_sass/_gridism.scss                        |  124 ++
 site/_sass/_mixins.scss                         |   38 +
 site/_sass/_normalize.scss                      |    1 +
 site/_sass/_pygments.scss                       |   78 +
 site/_sass/_style.scss                          |  976 +++++++++++
 site/css/screen.scss                            |    9 +
 site/develop/index.md                           |   53 +
 site/doap_orc.rdf                               |   56 +
 site/favicon.ico                                |  Bin 0 -> 5683 bytes
 site/fonts/fontawesome-webfont.eot              |  Bin 0 -> 56006 bytes
 site/fonts/fontawesome-webfont.svg              |  520 ++++++
 site/fonts/fontawesome-webfont.ttf              |  Bin 0 -> 112160 bytes
 site/fonts/fontawesome-webfont.woff             |  Bin 0 -> 65452 bytes
 site/help/index.md                              |   32 +
 site/img/logo.png                               |  Bin 0 -> 69304 bytes
 site/index.html                                 |   34 +
 site/js/html5shiv.min.js                        |    4 +
 site/js/respond.min.js                          |    5 +
 site/news/index.html                            |   19 +
 site/news/releases/index.html                   |   10 +
 site/talks/index.md                             |   28 +
 79 files changed, 8174 insertions(+), 5228 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/5c049bc8/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 877bc8f..fe4e10e 100644
--- a/README.md
+++ b/README.md
@@ -20,231 +20,4 @@ limitations under the License.
 
 Apache Calcite is a dynamic data management framework.
 
-It was formerly called Optiq.
-
-## Getting Calcite
-
-To run Apache Calcite, you can either
-[download and build from github](doc/howto.md#building-from-git),
-or [download a release](http://www.apache.org/dyn/closer.cgi/incubator/calcite)
-then [build the source code](doc/howto.md#building-from-a-source-distribution).
-
-Pre-built jars are in
-[the Apache maven repository](https://repository.apache.org/content/repositories/releases)
-with the following Maven coordinates:
-
-```xml
-<dependency>
-  <groupId>org.apache.calcite</groupId>
-  <artifactId>calcite-core</artifactId>
-  <version>1.3.0-incubating</version>
-</dependency>
-```
-
-## Example
-
-Calcite makes data anywhere, of any format, look like a database. For
-example, you can execute a complex ANSI-standard SQL statement on
-in-memory collections:
-
-```java
-public static class HrSchema {
-  public final Employee[] emps = ... ;
-  public final Department[] depts = ...;
-}
-
-Class.forName("org.apache.calcite.jdbc.Driver");
-Properties info = new Properties();
-info.setProperty("lex", "JAVA");
-Connection connection = DriverManager.getConnection("jdbc:calcite:", info);
-CalciteConnection calciteConnection =
-    connection.unwrap(CalciteConnection.class);
-ReflectiveSchema.create(calciteConnection,
-    calciteConnection.getRootSchema(), "hr", new HrSchema());
-Statement statement = calciteConnection.createStatement();
-ResultSet resultSet = statement.executeQuery(
-    "select d.deptno, min(e.empid)\n"
-    + "from hr.emps as e\n"
-    + "join hr.depts as d\n"
-    + "  on e.deptno = d.deptno\n"
-    + "group by d.deptno\n"
-    + "having count(*) > 1");
-print(resultSet);
-resultSet.close();
-statement.close();
-connection.close();
-```
-
-Where is the database? There is no database. The connection is
-completely empty until <code>ReflectiveSchema.create</code> registers
-a Java object as a schema and its collection fields <code>emps</code>
-and <code>depts</code> as tables.
-
-Calcite does not want to own data; it does not even have favorite data
-format. This example used in-memory data sets, and processed them
-using operators such as <code>groupBy</code> and <code>join</code>
-from the linq4j
-library. But Calcite can also process data in other data formats, such
-as JDBC. In the first example, replace
-
-```java
-ReflectiveSchema.create(calciteConnection,
-    calciteConnection.getRootSchema(), "hr", new HrSchema());
-```
-
-with
-
-```java
-Class.forName("com.mysql.jdbc.Driver");
-BasicDataSource dataSource = new BasicDataSource();
-dataSource.setUrl("jdbc:mysql://localhost");
-dataSource.setUsername("username");
-dataSource.setPassword("password");
-JdbcSchema.create(calciteConnection.getRootSchema(), "name", dataSource,
-    null, "hr");
-```
-
-and Calcite will execute the same query in JDBC. To the application, the
-data and API are the same, but behind the scenes the implementation is
-very different. Calcite uses optimizer rules
-to push the <code>JOIN</code> and <code>GROUP BY</code> operations to
-the source database.
-
-In-memory and JDBC are just two familiar examples. Calcite can handle
-any data source and data format. To add a data source, you need to
-write an adapter that tells Calcite
-what collections in the data source it should consider "tables".
-
-For more advanced integration, you can write optimizer
-rules. Optimizer rules allow Calcite to access data of a new format,
-allow you to register new operators (such as a better join algorithm),
-and allow Calcite to optimize how queries are translated to
-operators. Calcite will combine your rules and operators with built-in
-rules and operators, apply cost-based optimization, and generate an
-efficient plan.
-
-### Non-JDBC access
-
-Calcite also allows front-ends other than SQL/JDBC. For example, you can
-execute queries in <a href="https://github.com/julianhyde/linq4j">linq4j</a>:
-
-```java
-final OptiqConnection connection = ...;
-ParameterExpression c = Expressions.parameter(Customer.class, "c");
-for (Customer customer
-    : connection.getRootSchema()
-        .getSubSchema("foodmart")
-        .getTable("customer", Customer.class)
-        .where(
-            Expressions.<Predicate1<Customer>>lambda(
-                Expressions.lessThan(
-                    Expressions.field(c, "customer_id"),
-                    Expressions.constant(5)),
-                c))) {
-  System.out.println(c.name);
-}
-```
-
-Linq4j understands the full query parse tree, and the Linq4j query
-provider for Calcite invokes Calcite as an query optimizer. If the
-<code>customer</code> table comes from a JDBC database (based on
-this code fragment, we really can't tell) then the optimal plan
-will be to send the query
-
-```SQL
-SELECT *
-FROM "customer"
-WHERE "customer_id" < 5
-```
-
-to the JDBC data source.
-
-### Writing an adapter
-
-The subproject under example/csv provides a CSV adapter, which is fully functional for use in applications
-but is also simple enough to serve as a good template if you are writing
-your own adapter.
-
-See the <a href="https://github.com/apache/incubator-calcite/blob/master/doc/tutorial.md">CSV tutorial</a>
-for information on using the CSV adapter and writing other adapters.
-
-See the <a href="doc/howto.md">HOWTO</a> for more information about using other
-adapters, and about using Calcite in general.
-
-## Status
-
-The following features are complete.
-
-* Query parser, validator and optimizer
-* Support for reading models in JSON format
-* Many standard functions and aggregate functions
-* JDBC queries against Linq4j and JDBC back-ends
-* <a href="https://github.com/julianhyde/linq4j">Linq4j</a> front-end
-* SQL features: SELECT, FROM (including JOIN syntax), WHERE, GROUP BY (and aggregate functions including COUNT(DISTINCT ...)), HAVING, ORDER BY (including NULLS FIRST/LAST), set operations (UNION, INTERSECT, MINUS), sub-queries (including correlated sub-queries), windowed aggregates, LIMIT (syntax as <a href="http://www.postgresql.org/docs/8.4/static/sql-select.html#SQL-LIMIT">Postgres</a>)
-
-For more details, see the <a href="doc/reference.md">Reference guide</a>.
-
-### Drivers
-
-* <a href="http://www.hydromatic.net/calcite/apidocs/net/hydromatic/optiq/jdbc/package-summary.html">JDBC driver</a>
-
-### Adapters
-
-* <a href="https://github.com/apache/incubator-drill">Apache Drill adapter</a>
-* Cascading adapter (<a href="https://github.com/Cascading/lingual">Lingual</a>)
-* CSV adapter (example/csv)
-* JDBC adapter (part of <a href="http://www.hydromatic.net/calcite/apidocs/net/hydromatic/optiq/impl/jdbc/package-summary.html">calcite-core</a>)
-* MongoDB adapter (<a href="http://www.hydromatic.net/calcite/apidocs/net/hydromatic/optiq/impl/mongodb/package-summary.html">calcite-mongodb</a>)
-* Spark adapter (<a href="http://www.hydromatic.net/calcite/apidocs/net/hydromatic/optiq/impl/spark/package-summary.html">calcite-spark</a>)
-* Splunk adapter (<a href="http://www.hydromatic.net/calcite/apidocs/net/hydromatic/optiq/impl/splunk/package-summary.html">calcite-splunk</a>)
-* Eclipse Memory Analyzer (MAT) adapter (<a href="https://github.com/vlsi/mat-calcite-plugin">mat-calcite-plugin</a>)
-
-## More information
-
-* License: Apache License, Version 2.0
-* Blog: http://julianhyde.blogspot.com
-* Project page: http://calcite.incubator.apache.org
-* Incubation status page: http://incubator.apache.org/projects/calcite.html
-* Source code: http://github.com/apache/incubator-calcite
-* Issues: <a href="https://issues.apache.org/jira/browse/CALCITE">Apache JIRA</a>
-* Developers list: <a href="mailto:dev@calcite.incubator.apache.org">dev at calcite.incubator.apache.org</a>
-  (<a href="http://mail-archives.apache.org/mod_mbox/incubator-calcite-dev/">archive</a>,
-  <a href="mailto:dev-subscribe@calcite.incubator.apache.org">subscribe</a>)
-* Twitter: <a href="https://twitter.com/ApacheCalcite">@ApacheCalcite</a>
-* <a href="doc/howto.md">HOWTO</a>
-* <a href="doc/model.md">JSON model</a>
-* <a href="doc/reference.md">Reference guide</a>
-* <a href="doc/lattice.md">Lattices</a>
-* <a href="doc/stream.md">Streaming SQL</a>
-* <a href="doc/avatica.md">Avatica JDBC framework</a>
-* <a href="doc/history.md">Release notes and history</a>
-
-### Pre-Apache resources
-
-These resources, which we used when Calcite was called Optiq and
-before it joined the Apache incubator, are for reference only.
-They may be out of date.
-Please don't post or try to subscribe to the mailing list.
-
-* Developers list: <a href="http://groups.google.com/group/optiq-dev">optiq-dev@googlegroups.com</a>
-
-### Presentations
-
-* <a href="http://www.slideshare.net/julianhyde/how-to-integrate-splunk-with-any-data-solution">How to integrate Splunk with any data solution</a> (Splunk User Conference, 2012)
-* <a href="https://github.com/julianhyde/share/blob/master/slides/optiq-drill-user-group-2013.pdf?raw=true">Drill / SQL / Optiq</a> (2013)
-* <a href="https://github.com/julianhyde/share/blob/master/slides/optiq-richrelevance-2013.pdf?raw=true">SQL on Big Data using Optiq</a> (2013)
-* <a href="https://github.com/julianhyde/share/blob/master/slides/optiq-nosql-now-2013.pdf?raw=true">SQL Now!</a> (NoSQL Now! conference, 2013)
-* <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)
-* <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-seattle-2014.pdf?raw=true">Cost-based optimization in Hive 0.14</a> (Seattle, 2014)
-
-## Disclaimer
-
-Apache Calcite is an effort undergoing incubation at The Apache Software
-Foundation (ASF), sponsored by the Apache Incubator. Incubation is
-required of all newly accepted projects until a further review
-indicates that the infrastructure, communications, and decision making
-process have stabilized in a manner consistent with other successful
-ASF projects. While incubation status is not necessarily a reflection
-of the completeness or stability of the code, it does indicate that
-the project has yet to be fully endorsed by the ASF.
+For more details, see the [home page](http://calcite.incubator.apache.org).

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/5c049bc8/doc/avatica.md
----------------------------------------------------------------------
diff --git a/doc/avatica.md b/doc/avatica.md
deleted file mode 100644
index 86899d3..0000000
--- a/doc/avatica.md
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--
-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.
--->
-# Avatica
-
-## Introduction
-
-Avatica is a framework for building JDBC and ODBC drivers for databases,
-and an RPC wire protocol.
-
-![Avatica Architecture]
-(https://raw.githubusercontent.com/julianhyde/share/master/slides/avatica-architecture.png)
-
-Avatica's Java binding has very few dependencies.
-Even though it is part of Apache Calcite it does not depend on other parts of
-Calcite. It depends only on JDK 1.7+ and Jackson.
-
-Avatica's wire protocol is JSON over HTTP.
-The Java implementation uses Jackson to convert request/response command
-objects to/from JSON.
-
-Avatica-Server is a Java implementation of Avatica RPC.
-It embeds the Jetty HTTP server.
-
-Core concepts:
-* Meta is a local API sufficient to implement any Avatica provider
-* Factory creates implementations of the JDBC classes (Driver, Connection,
-  Statement, ResultSet) on top of a Meta
-* Service is an interface that implements the functions of Meta in terms
-  of request and response command objects
-
-## JDBC
-
-Avatica implements JDBC by means of Factory.
-Factory creates implementations of the JDBC classes (Driver, Connection,
-Statement, PreparedStatement, ResultSet) on top of a Meta.
-
-## ODBC
-
-Work has not started on Avatica ODBC.
-
-Avatica ODBC would use the same wire protocol and could use the same server
-implementation in Java. The ODBC client would be written in C or C++.
-
-Since the Avatica protocol abstracts many of the differences between providers,
-the same ODBC client could be used for different databases.
-
-## Project structure
-
-We know that it is important that client libraries have minimal dependencies.
-
-Avatica is currently part of Apache Calcite.
-It does not depend upon any other part of Calcite.
-At some point Avatica could become a separate project.
-
-Packages:
-* [org.apache.calcite.avatica](http://www.hydromatic.net/calcite/apidocs/org/apache/calcite/avatica/package-summary.html) Core framework
-* [org.apache.calcite.avatica.remote](http://www.hydromatic.net/calcite/apidocs/org/apache/calcite/avatica/remote/package-summary.html) JDBC driver that uses remote procedure calls
-* [org.apache.calcite.avatica.server](http://www.hydromatic.net/calcite/apidocs/org/apache/calcite/avatica/server/package-summary.html) HTTP server
-* [org.apache.calcite.avatica.util](http://www.hydromatic.net/calcite/apidocs/org/apache/calcite/avatica/util/package-summary.html) Utilities
-
-## Status
-
-### Implemented
-* Create connection, create statement, metadata, prepare, bind, execute, fetch
-* RPC using JSON over HTTP
-* Local implementation
-* Implementation over an existing JDBC driver
-* Composite RPCs (combining several requests into one round trip)
-  * Execute-Fetch
-  * Metadata-Fetch (metadata calls such as getTables return all rows)
-
-### Not implemented
-* ODBC
-* RPCs
-  * CloseStatement
-  * CloseConnection
-* Composite RPCs
-  * CreateStatement-Prepare
-  * CloseStatement-CloseConnection
-  * Prepare-Execute-Fetch (Statement.executeQuery should fetch first N rows)
-* Remove statements from statement table
-* DML (INSERT, UPDATE, DELETE)
-* Statement.execute applied to SELECT statement