Author: jhyde
Date: Fri Mar 24 19:09:25 2017
New Revision: 1788532
URL: http://svn.apache.org/viewvc?rev=1788532&view=rev
Log:
News item for Calcite 1.12.0
Added:
calcite/site/docs/materialized_views.html
calcite/site/news/2017/03/
calcite/site/news/2017/03/24/
calcite/site/news/2017/03/24/release-1.12.0/
calcite/site/news/2017/03/24/release-1.12.0/index.html
Modified:
calcite/site/community/index.html
calcite/site/develop/index.html
calcite/site/docs/adapter.html
calcite/site/docs/algebra.html
calcite/site/docs/avatica_json_reference.html
calcite/site/docs/avatica_overview.html
calcite/site/docs/avatica_protobuf_reference.html
calcite/site/docs/avatica_roadmap.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/history.html
calcite/site/docs/howto.html
calcite/site/docs/index.html
calcite/site/docs/lattice.html
calcite/site/docs/model.html
calcite/site/docs/pig_adapter.html
calcite/site/docs/powered_by.html
calcite/site/docs/reference.html
calcite/site/docs/stream.html
calcite/site/docs/tutorial.html
calcite/site/downloads/index.html
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/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=1788532&r1=1788531&r2=1788532&view=diff
==============================================================================
--- calcite/site/community/index.html (original)
+++ calcite/site/community/index.html Fri Mar 24 19:09:25 2017
@@ -104,7 +104,22 @@
<h1 id="upcoming-talks">Upcoming talks</h1>
<ul>
- <li>2016/11/14 <a
href="http://events.linuxfoundation.org/events/apache-big-data-europe/program/schedule">Apache:
Big Data</a>, Seville â talks by Alan Gates (Apache Hive), Jesús Camacho
RodrÃguez (Apache Hive and Druid) and Atri Sharma (streaming)</li>
+ <li>2017/04/04 <a href="http://www.apexbigdata.com/mountain-view.html">Apex
Big Data World 2017</a> (Mountain View, USA)
+ <ul>
+ <li><a href="http://www.apexbigdata.com/platform-track-2.html">Streaming
SQL</a> â Julian Hyde</li>
+ </ul>
+ </li>
+ <li>2017/05/16â18 <a
href="http://events.linuxfoundation.org/events/apache-big-data-north-america">Apache:
Big Data North America 2017</a> (Miami, USA)
+ <ul>
+ <li><a href="https://apachebigdata2017.sched.com/event/A00j">Data
Profiling in Apache Calcite</a> â Julian Hyde</li>
+ <li><a href="https://apachebigdata2017.sched.com/event/A02J">A Smarter
Pig</a> â Eli Levine and Julian Hyde</li>
+ </ul>
+ </li>
+ <li>2017/06/13â15 <a
href="https://dataworkssummit.com/san-jose-2017/">DataWorks Summit 2017</a>
(San Jose, USA)
+ <ul>
+ <li><a href="https://dataworkssummit.com/san-jose-2017/agenda/">Data
Profiling in Apache Calcite</a> â Julian Hyde</li>
+ </ul>
+ </li>
</ul>
<h1 id="project-members">Project Members</h1>
@@ -241,7 +256,7 @@
</tr>
<tr>
<td style="text-align: left">Ted Dunning (<a
href="http://people.apache.org/phonebook.html?uid=tdunning">tdunning</a>)</td>
- <td style="text-align: left"><a href="http://github.com/tdunning"><img
width="64"
src="https://www.mapr.com/sites/default/files/otherpageimages/ted-circle-80.png"
/></a></td>
+ <td style="text-align: left"><a href="http://github.com/tdunning"><img
width="64"
src="https://mapr.com/blog/author/ted-dunning/assets/tdunning-panama.jpg"
/></a></td>
<td style="text-align: left">MapR</td>
<td style="text-align: left">PMC</td>
</tr>
@@ -259,11 +274,11 @@
<p>There are several mailing lists for Calcite:</p>
<ul>
- <li><a
href="mailto:dev@calcite.apache.org">dev@calcite.apache.org</a>
- Development discussions
+ <li><a
href="mailto:dev@calcite.apache.org">dev@calcite.apache.org</a>
â Development discussions
[<a
href="https://mail-archives.apache.org/mod_mbox/calcite-dev/">archive</a>]</li>
- <li><a
href="mailto:issues@calcite.apache.org">issues@calcite.apache.org</a>
- Bug tracking
+ <li><a
href="mailto:issues@calcite.apache.org">issues@calcite.apache.org</a>
â Bug tracking
[<a
href="https://mail-archives.apache.org/mod_mbox/calcite-issues/">archive</a>]</li>
- <li><a
href="mailto:commits@calcite.apache.org">commits@calcite.apache.org</a>
- Git tracking
+ <li><a
href="mailto:commits@calcite.apache.org">commits@calcite.apache.org</a>
â Git tracking
[<a
href="https://mail-archives.apache.org/mod_mbox/calcite-commits/">archive</a>]</li>
</ul>
Modified: calcite/site/develop/index.html
URL:
http://svn.apache.org/viewvc/calcite/site/develop/index.html?rev=1788532&r1=1788531&r2=1788532&view=diff
==============================================================================
--- calcite/site/develop/index.html (original)
+++ calcite/site/develop/index.html Fri Mar 24 19:09:25 2017
@@ -110,8 +110,8 @@ user-friendly.</p>
<h2 id="download-source-build-and-run-tests">Download source, build, and run
tests</h2>
-<p>Prerequisites are git, maven (3.2.1 or later) and Java (JDK 1.7 or
-later, 1.8 preferred) on your path.</p>
+<p>Prerequisites are git, maven (3.2.1 or later) and Java (JDK 7 or
+later, 8 preferred) on your path.</p>
<p>Create a local copy of the git repository, <code
class="highlighter-rouge">cd</code> to its root directory,
then build using maven:</p>
Modified: calcite/site/docs/adapter.html
URL:
http://svn.apache.org/viewvc/calcite/site/docs/adapter.html?rev=1788532&r1=1788531&r2=1788532&view=diff
==============================================================================
--- calcite/site/docs/adapter.html (original)
+++ calcite/site/docs/adapter.html Fri Mar 24 19:09:25 2017
@@ -82,17 +82,17 @@
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docsâ¦</option>
- <optgroup label="Overview">
+ <optgroup label="Overview">
</optgroup>
- <optgroup label="Advanced">
+ <optgroup label="Advanced">
</optgroup>
- <optgroup label="Avatica">
+ <optgroup label="Avatica">
</optgroup>
- <optgroup label="Reference">
+ <optgroup label="Reference">
</optgroup>
- <optgroup label="Meta">
+ <optgroup label="Meta">
</optgroup>
-
+
</select>
</div>
@@ -194,7 +194,7 @@ as implemented by Avaticaâs
<td style="text-align: left">Whether Calcite should create
materializations. Default false.</td>
</tr>
<tr>
- <td style="text-align: left"><a
href="/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#DEFAULT_NULL_COLLATION">materializationsEnabled</a></td>
+ <td style="text-align: left"><a
href="/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#DEFAULT_NULL_COLLATION">defaultNullCollation</a></td>
<td style="text-align: left">How NULL values should be sorted if neither
NULLS FIRST nor NULLS LAST are specified in a query. The default, HIGH, sorts
NULL values the same as Oracle.</td>
</tr>
<tr>
Modified: calcite/site/docs/algebra.html
URL:
http://svn.apache.org/viewvc/calcite/site/docs/algebra.html?rev=1788532&r1=1788531&r2=1788532&view=diff
==============================================================================
--- calcite/site/docs/algebra.html (original)
+++ calcite/site/docs/algebra.html Fri Mar 24 19:09:25 2017
@@ -82,17 +82,17 @@
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docsâ¦</option>
- <optgroup label="Overview">
+ <optgroup label="Overview">
</optgroup>
- <optgroup label="Advanced">
+ <optgroup label="Advanced">
</optgroup>
- <optgroup label="Avatica">
+ <optgroup label="Avatica">
</optgroup>
- <optgroup label="Reference">
+ <optgroup label="Reference">
</optgroup>
- <optgroup label="Meta">
+ <optgroup label="Meta">
</optgroup>
-
+
</select>
</div>
Modified: calcite/site/docs/avatica_json_reference.html
URL:
http://svn.apache.org/viewvc/calcite/site/docs/avatica_json_reference.html?rev=1788532&r1=1788531&r2=1788532&view=diff
==============================================================================
--- calcite/site/docs/avatica_json_reference.html (original)
+++ calcite/site/docs/avatica_json_reference.html Fri Mar 24 19:09:25 2017
@@ -82,17 +82,17 @@
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docsâ¦</option>
- <optgroup label="Overview">
+ <optgroup label="Overview">
</optgroup>
- <optgroup label="Advanced">
+ <optgroup label="Advanced">
</optgroup>
- <optgroup label="Avatica">
+ <optgroup label="Avatica">
</optgroup>
- <optgroup label="Reference">
+ <optgroup label="Reference">
</optgroup>
- <optgroup label="Meta">
+ <optgroup label="Meta">
</optgroup>
-
+
</select>
</div>
Modified: calcite/site/docs/avatica_overview.html
URL:
http://svn.apache.org/viewvc/calcite/site/docs/avatica_overview.html?rev=1788532&r1=1788531&r2=1788532&view=diff
==============================================================================
--- calcite/site/docs/avatica_overview.html (original)
+++ calcite/site/docs/avatica_overview.html Fri Mar 24 19:09:25 2017
@@ -82,17 +82,17 @@
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docsâ¦</option>
- <optgroup label="Overview">
+ <optgroup label="Overview">
</optgroup>
- <optgroup label="Advanced">
+ <optgroup label="Advanced">
</optgroup>
- <optgroup label="Avatica">
+ <optgroup label="Avatica">
</optgroup>
- <optgroup label="Reference">
+ <optgroup label="Reference">
</optgroup>
- <optgroup label="Meta">
+ <optgroup label="Meta">
</optgroup>
-
+
</select>
</div>
Modified: calcite/site/docs/avatica_protobuf_reference.html
URL:
http://svn.apache.org/viewvc/calcite/site/docs/avatica_protobuf_reference.html?rev=1788532&r1=1788531&r2=1788532&view=diff
==============================================================================
--- calcite/site/docs/avatica_protobuf_reference.html (original)
+++ calcite/site/docs/avatica_protobuf_reference.html Fri Mar 24 19:09:25 2017
@@ -82,17 +82,17 @@
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docsâ¦</option>
- <optgroup label="Overview">
+ <optgroup label="Overview">
</optgroup>
- <optgroup label="Advanced">
+ <optgroup label="Advanced">
</optgroup>
- <optgroup label="Avatica">
+ <optgroup label="Avatica">
</optgroup>
- <optgroup label="Reference">
+ <optgroup label="Reference">
</optgroup>
- <optgroup label="Meta">
+ <optgroup label="Meta">
</optgroup>
-
+
</select>
</div>
Modified: calcite/site/docs/avatica_roadmap.html
URL:
http://svn.apache.org/viewvc/calcite/site/docs/avatica_roadmap.html?rev=1788532&r1=1788531&r2=1788532&view=diff
==============================================================================
--- calcite/site/docs/avatica_roadmap.html (original)
+++ calcite/site/docs/avatica_roadmap.html Fri Mar 24 19:09:25 2017
@@ -82,17 +82,17 @@
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docsâ¦</option>
- <optgroup label="Overview">
+ <optgroup label="Overview">
</optgroup>
- <optgroup label="Advanced">
+ <optgroup label="Advanced">
</optgroup>
- <optgroup label="Avatica">
+ <optgroup label="Avatica">
</optgroup>
- <optgroup label="Reference">
+ <optgroup label="Reference">
</optgroup>
- <optgroup label="Meta">
+ <optgroup label="Meta">
</optgroup>
-
+
</select>
</div>
Modified: calcite/site/docs/cassandra_adapter.html
URL:
http://svn.apache.org/viewvc/calcite/site/docs/cassandra_adapter.html?rev=1788532&r1=1788531&r2=1788532&view=diff
==============================================================================
--- calcite/site/docs/cassandra_adapter.html (original)
+++ calcite/site/docs/cassandra_adapter.html Fri Mar 24 19:09:25 2017
@@ -82,17 +82,17 @@
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docsâ¦</option>
- <optgroup label="Overview">
+ <optgroup label="Overview">
</optgroup>
- <optgroup label="Advanced">
+ <optgroup label="Advanced">
</optgroup>
- <optgroup label="Avatica">
+ <optgroup label="Avatica">
</optgroup>
- <optgroup label="Reference">
+ <optgroup label="Reference">
</optgroup>
- <optgroup label="Meta">
+ <optgroup label="Meta">
</optgroup>
-
+
</select>
</div>
Modified: calcite/site/docs/druid_adapter.html
URL:
http://svn.apache.org/viewvc/calcite/site/docs/druid_adapter.html?rev=1788532&r1=1788531&r2=1788532&view=diff
==============================================================================
--- calcite/site/docs/druid_adapter.html (original)
+++ calcite/site/docs/druid_adapter.html Fri Mar 24 19:09:25 2017
@@ -82,17 +82,17 @@
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docsâ¦</option>
- <optgroup label="Overview">
+ <optgroup label="Overview">
</optgroup>
- <optgroup label="Advanced">
+ <optgroup label="Advanced">
</optgroup>
- <optgroup label="Avatica">
+ <optgroup label="Avatica">
</optgroup>
- <optgroup label="Reference">
+ <optgroup label="Reference">
</optgroup>
- <optgroup label="Meta">
+ <optgroup label="Meta">
</optgroup>
-
+
</select>
</div>
Modified: calcite/site/docs/elasticsearch_adapter.html
URL:
http://svn.apache.org/viewvc/calcite/site/docs/elasticsearch_adapter.html?rev=1788532&r1=1788531&r2=1788532&view=diff
==============================================================================
--- calcite/site/docs/elasticsearch_adapter.html (original)
+++ calcite/site/docs/elasticsearch_adapter.html Fri Mar 24 19:09:25 2017
@@ -82,17 +82,17 @@
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docsâ¦</option>
- <optgroup label="Overview">
+ <optgroup label="Overview">
</optgroup>
- <optgroup label="Advanced">
+ <optgroup label="Advanced">
</optgroup>
- <optgroup label="Avatica">
+ <optgroup label="Avatica">
</optgroup>
- <optgroup label="Reference">
+ <optgroup label="Reference">
</optgroup>
- <optgroup label="Meta">
+ <optgroup label="Meta">
</optgroup>
-
+
</select>
</div>
Modified: calcite/site/docs/file_adapter.html
URL:
http://svn.apache.org/viewvc/calcite/site/docs/file_adapter.html?rev=1788532&r1=1788531&r2=1788532&view=diff
==============================================================================
--- calcite/site/docs/file_adapter.html (original)
+++ calcite/site/docs/file_adapter.html Fri Mar 24 19:09:25 2017
@@ -82,17 +82,17 @@
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docsâ¦</option>
- <optgroup label="Overview">
+ <optgroup label="Overview">
</optgroup>
- <optgroup label="Advanced">
+ <optgroup label="Advanced">
</optgroup>
- <optgroup label="Avatica">
+ <optgroup label="Avatica">
</optgroup>
- <optgroup label="Reference">
+ <optgroup label="Reference">
</optgroup>
- <optgroup label="Meta">
+ <optgroup label="Meta">
</optgroup>
-
+
</select>
</div>
@@ -104,7 +104,7 @@
-->
-<h1 id="overview">Overview</h1>
+<h2 id="overview">Overview</h2>
<p>The file adapter is able to read files in a variety of formats,
and can also read files over various protocols, such as HTTP.</p>
@@ -119,8 +119,8 @@ and can also read files over various pro
<p>You can then write a query like:</p>
<figure class="highlight"><pre><code class="language-sql"
data-lang="sql"><span class="k">select</span>
- <span class="k">count</span><span class="p">(</span><span
class="o">*</span><span class="p">)</span> <span class="nv">"City
Count"</span><span class="p">,</span>
- <span class="k">sum</span><span class="p">(</span><span
class="mi">100</span> <span class="o">*</span> <span class="k">c</span><span
class="p">.</span><span class="nv">"Population"</span> <span class="o">/</span>
<span class="n">s</span><span class="p">.</span><span
class="nv">"Population"</span><span class="p">)</span> <span class="nv">"Pct
State Population"</span>
+ <span class="k">count</span><span class="p">(</span><span
class="o">*</span><span class="p">)</span> <span class="nv">"City
Count"</span><span class="p">,</span>
+ <span class="k">sum</span><span class="p">(</span><span
class="mi">100</span> <span class="o">*</span> <span class="k">c</span><span
class="p">.</span><span class="nv">"Population"</span> <span class="o">/</span>
<span class="n">s</span><span class="p">.</span><span
class="nv">"Population"</span><span class="p">)</span> <span class="nv">"Pct
State Population"</span>
<span class="k">from</span> <span class="nv">"Cities"</span> <span
class="k">c</span><span class="p">,</span> <span class="nv">"States"</span>
<span class="n">s</span>
<span class="k">where</span> <span class="k">c</span><span
class="p">.</span><span class="nv">"State"</span> <span class="o">=</span>
<span class="n">s</span><span class="p">.</span><span class="nv">"State"</span>
<span class="k">and</span> <span class="n">s</span><span
class="p">.</span><span class="nv">"State"</span> <span class="o">=</span>
<span class="s1">'California'</span><span
class="p">;</span></code></pre></figure>
@@ -135,7 +135,11 @@ comprising almost 1/2 of the stateâ
+---------------------+----------------------+
</code></p>
-<h1 id="a-simple-example">A simple example</h1>
+<p>For simple file formats such as CSV, the file is self-describing and
+you donât even need a model.
+See <a href="#csv_files_and_model_free_browsing">CSV files and model-free
browsing</a>.</p>
+
+<h2 id="a-simple-example">A simple example</h2>
<p>Letâs start with a simple example. First, we need a
<a href="/docs/model.html">model definition</a>,
@@ -225,9 +229,9 @@ as follows:</p>
| 120 | 20 | Wilma |
| 130 | 40 | Alice |
+-------+--------+------+
-5 rows selected </code></pre></figure>
+5 rows selected</code></pre></figure>
-<h1 id="mapping-tables">Mapping tables</h1>
+<h2 id="mapping-tables">Mapping tables</h2>
<p>Now for a more complex example. This time we connect to Wikipedia via
HTTP, read pages for US states and cities, and extract data from HTML
@@ -237,28 +241,28 @@ file adapter helps us locate and parse d
<p>Tables can be simply defined for immediate gratification:</p>
<figure class="highlight"><pre><code class="language-json"
data-lang="json"><span class="p">{</span><span class="w">
- </span><span class="err">tableName:</span><span class="w"> </span><span
class="nt">"RawCities"</span><span class="err">,</span><span class="w">
- </span><span class="err">url</span><span class="p">:</span><span
class="w"> </span><span
class="s2">"http://en.wikipedia.org/wiki/List_of_United_States_cities_by_population"</span><span
class="w">
+ </span><span class="err">tableName:</span><span class="w"> </span><span
class="nt">"RawCities"</span><span class="err">,</span><span class="w">
+ </span><span class="err">url</span><span class="p">:</span><span class="w">
</span><span
class="s2">"http://en.wikipedia.org/wiki/List_of_United_States_cities_by_population"</span><span
class="w">
</span><span class="p">}</span></code></pre></figure>
<p>And subsequently refined for better usability / querying:</p>
<figure class="highlight"><pre><code class="language-json"
data-lang="json"><span class="p">{</span><span class="w">
- </span><span class="err">tableName:</span><span class="w"> </span><span
class="nt">"Cities"</span><span class="err">,</span><span class="w">
- </span><span class="err">url</span><span class="p">:</span><span
class="w"> </span><span
class="s2">"http://en.wikipedia.org/wiki/List_of_United_States_cities_by_population"</span><span
class="p">,</span><span class="w">
- </span><span class="err">path</span><span class="p">:</span><span
class="w"> </span><span class="s2">"#mw-content-text >
table.wikitable.sortable"</span><span class="p">,</span><span class="w">
- </span><span class="err">index</span><span class="p">:</span><span
class="w"> </span><span class="mi">0</span><span class="p">,</span><span
class="w">
- </span><span class="err">fieldDefs</span><span class="p">:</span><span
class="w"> </span><span class="p">[</span><span class="w">
- </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"2012 rank"</span><span
class="err">,</span><span class="w"> </span><span class="err">name</span><span
class="p">:</span><span class="w"> </span><span class="s2">"Rank"</span><span
class="p">,</span><span class="w"> </span><span class="err">type</span><span
class="p">:</span><span class="w"> </span><span class="s2">"int"</span><span
class="p">,</span><span class="w"> </span><span class="err">pattern</span><span
class="p">:</span><span class="w"> </span><span class="s2">"(\\d+)"</span><span
class="p">,</span><span class="w"> </span><span
class="err">matchGroup</span><span class="p">:</span><span class="w">
</span><span class="mi">0</span><span class="p">},</span><span class="w">
- </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"City"</span><span class="err">,</span><span
class="w"> </span><span class="err">selector</span><span
class="p">:</span><span class="w"> </span><span class="s2">"a"</span><span
class="p">,</span><span class="w"> </span><span
class="err">selectedElement</span><span class="p">:</span><span class="w">
</span><span class="mi">0</span><span class="p">},</span><span class="w">
- </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"State[5]"</span><span
class="err">,</span><span class="w"> </span><span class="err">name</span><span
class="p">:</span><span class="w"> </span><span class="s2">"State"</span><span
class="p">,</span><span class="w"> </span><span
class="err">selector</span><span class="p">:</span><span class="w">
</span><span class="s2">"a:eq(0)"</span><span class="p">},</span><span
class="w">
- </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"2012 estimate"</span><span
class="err">,</span><span class="w"> </span><span class="err">name</span><span
class="p">:</span><span class="w"> </span><span
class="s2">"Population"</span><span class="p">,</span><span class="w">
</span><span class="err">type</span><span class="p">:</span><span class="w">
</span><span class="s2">"double"</span><span class="p">},</span><span class="w">
- </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"2010 Census"</span><span
class="err">,</span><span class="w"> </span><span class="err">skip</span><span
class="p">:</span><span class="w"> </span><span class="s2">"true"</span><span
class="p">},</span><span class="w">
- </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"Change"</span><span
class="err">,</span><span class="w"> </span><span class="err">skip</span><span
class="p">:</span><span class="w"> </span><span class="s2">"true"</span><span
class="p">},</span><span class="w">
- </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"2012 land area"</span><span
class="err">,</span><span class="w"> </span><span class="err">name</span><span
class="p">:</span><span class="w"> </span><span class="s2">"Land Area (sq
mi)"</span><span class="p">,</span><span class="w"> </span><span
class="err">type</span><span class="p">:</span><span class="w"> </span><span
class="s2">"double"</span><span class="p">,</span><span class="w"> </span><span
class="err">selector</span><span class="p">:</span><span class="w">
</span><span class="s2">":not(span)"</span><span class="p">},</span><span
class="w">
- </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"2012 population density"</span><span
class="err">,</span><span class="w"> </span><span class="err">skip</span><span
class="p">:</span><span class="w"> </span><span class="s2">"true"</span><span
class="p">},</span><span class="w">
- </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"ANSI"</span><span class="err">,</span><span
class="w"> </span><span class="err">skip</span><span class="p">:</span><span
class="w"> </span><span class="s2">"true"</span><span class="p">}</span><span
class="w">
- </span><span class="p">]</span><span class="w">
+ </span><span class="err">tableName:</span><span class="w"> </span><span
class="nt">"Cities"</span><span class="err">,</span><span class="w">
+ </span><span class="err">url</span><span class="p">:</span><span class="w">
</span><span
class="s2">"http://en.wikipedia.org/wiki/List_of_United_States_cities_by_population"</span><span
class="p">,</span><span class="w">
+ </span><span class="err">path</span><span class="p">:</span><span class="w">
</span><span class="s2">"#mw-content-text >
table.wikitable.sortable"</span><span class="p">,</span><span class="w">
+ </span><span class="err">index</span><span class="p">:</span><span
class="w"> </span><span class="mi">0</span><span class="p">,</span><span
class="w">
+ </span><span class="err">fieldDefs</span><span class="p">:</span><span
class="w"> </span><span class="p">[</span><span class="w">
+ </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"2012 rank"</span><span
class="err">,</span><span class="w"> </span><span class="err">name</span><span
class="p">:</span><span class="w"> </span><span class="s2">"Rank"</span><span
class="p">,</span><span class="w"> </span><span class="err">type</span><span
class="p">:</span><span class="w"> </span><span class="s2">"int"</span><span
class="p">,</span><span class="w"> </span><span class="err">pattern</span><span
class="p">:</span><span class="w"> </span><span class="s2">"(\\d+)"</span><span
class="p">,</span><span class="w"> </span><span
class="err">matchGroup</span><span class="p">:</span><span class="w">
</span><span class="mi">0</span><span class="p">},</span><span class="w">
+ </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"City"</span><span class="err">,</span><span
class="w"> </span><span class="err">selector</span><span
class="p">:</span><span class="w"> </span><span class="s2">"a"</span><span
class="p">,</span><span class="w"> </span><span
class="err">selectedElement</span><span class="p">:</span><span class="w">
</span><span class="mi">0</span><span class="p">},</span><span class="w">
+ </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"State[5]"</span><span
class="err">,</span><span class="w"> </span><span class="err">name</span><span
class="p">:</span><span class="w"> </span><span class="s2">"State"</span><span
class="p">,</span><span class="w"> </span><span
class="err">selector</span><span class="p">:</span><span class="w">
</span><span class="s2">"a:eq(0)"</span><span class="p">},</span><span
class="w">
+ </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"2012 estimate"</span><span
class="err">,</span><span class="w"> </span><span class="err">name</span><span
class="p">:</span><span class="w"> </span><span
class="s2">"Population"</span><span class="p">,</span><span class="w">
</span><span class="err">type</span><span class="p">:</span><span class="w">
</span><span class="s2">"double"</span><span class="p">},</span><span class="w">
+ </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"2010 Census"</span><span
class="err">,</span><span class="w"> </span><span class="err">skip</span><span
class="p">:</span><span class="w"> </span><span class="s2">"true"</span><span
class="p">},</span><span class="w">
+ </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"Change"</span><span
class="err">,</span><span class="w"> </span><span class="err">skip</span><span
class="p">:</span><span class="w"> </span><span class="s2">"true"</span><span
class="p">},</span><span class="w">
+ </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"2012 land area"</span><span
class="err">,</span><span class="w"> </span><span class="err">name</span><span
class="p">:</span><span class="w"> </span><span class="s2">"Land Area (sq
mi)"</span><span class="p">,</span><span class="w"> </span><span
class="err">type</span><span class="p">:</span><span class="w"> </span><span
class="s2">"double"</span><span class="p">,</span><span class="w"> </span><span
class="err">selector</span><span class="p">:</span><span class="w">
</span><span class="s2">":not(span)"</span><span class="p">},</span><span
class="w">
+ </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"2012 population density"</span><span
class="err">,</span><span class="w"> </span><span class="err">skip</span><span
class="p">:</span><span class="w"> </span><span class="s2">"true"</span><span
class="p">},</span><span class="w">
+ </span><span class="p">{</span><span class="err">th:</span><span
class="w"> </span><span class="nt">"ANSI"</span><span class="err">,</span><span
class="w"> </span><span class="err">skip</span><span class="p">:</span><span
class="w"> </span><span class="s2">"true"</span><span class="p">}</span><span
class="w">
+ </span><span class="p">]</span><span class="w">
</span><span class="p">}</span></code></pre></figure>
<p>Connect and execute queries, as follows.</p>
@@ -278,7 +282,7 @@ navigation; selectors for both tables an
<p>Field definitions may be used to rename or skip source fields, to
select and condition the cell contents and to set a data type.</p>
-<h1 id="parsing-cell-contents">Parsing cell contents</h1>
+<h3 id="parsing-cell-contents">Parsing cell contents</h3>
<p>The file adapter can select DOM nodes within a cell, replace text
within the selected element, match within the selected text, and
@@ -287,7 +291,7 @@ steps are applied in the order described
patterns are based on
<a
href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Java
regular expressions</a>.</p>
-<h1 id="further-examples">Further examples</h1>
+<h3 id="further-examples">Further examples</h3>
<p>There are more examples in the form of a script:</p>
@@ -297,7 +301,43 @@ patterns are based on
each query containing a join. These are expected and do not affect
query results. These messages will be suppressed in the next release.)</p>
-<h1 id="future-improvements">Future improvements</h1>
+<h2 id="csv-files-and-model-free-browsing">CSV files and model-free
browsing</h2>
+
+<p>Some files are describe their own schema, and for these files, we do not
need a model. For example, <code class="highlighter-rouge">DEPTS.csv</code> has
an
+integer <code class="highlighter-rouge">DEPTNO</code> column and a string
<code class="highlighter-rouge">NAME</code> column:</p>
+
+<figure class="highlight"><pre><code class="language-json"
data-lang="json"><span class="err">DEPTNO:int,NAME:string</span><span class="w">
+</span><span class="mi">10</span><span class="err">,</span><span
class="s2">"Sales"</span><span class="w">
+</span><span class="mi">20</span><span class="err">,</span><span
class="s2">"Marketing"</span><span class="w">
+</span><span class="mi">30</span><span class="err">,</span><span
class="s2">"Accounts"</span></code></pre></figure>
+
+<p>You can launch <code class="highlighter-rouge">sqlline</code>, and pointing
the file adapter that directory,
+and every CSV file becomes a table:</p>
+
+<figure class="highlight"><pre><code class="language-bash"
data-lang="bash"><span class="gp">$ </span>ls file/src/test/resources/sales-csv
+ -rw-r--r-- 1 jhyde jhyde 62 Mar 15 10:16 DEPTS.csv
+ -rw-r--r-- 1 jhyde jhyde 262 Mar 15 10:16 EMPS.csv.gz
+
+<span class="gp">$ </span>./sqlline -u <span
class="s2">"jdbc:calcite:schemaFactory=org.apache.calcite.adapter.file.FileSchemaFactory;schema.directory=file/src/test/resources/sales-csv"</span>
+<span class="gp">sqlline> </span>!tables
++-----------+-------------+------------+------------+
+| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE |
++-----------+-------------+------------+------------+
+| | adhoc | DEPTS | TABLE |
+| | adhoc | EMPS | TABLE |
++-----------+-------------+------------+------------+
+
+<span class="gp">sqlline> </span><span class="k">select </span>distinct
deptno from depts;
++--------+
+| DEPTNO |
++--------+
+| 20 |
+| 10 |
+| 30 |
++--------+
+3 rows selected <span class="o">(</span>0.985 seconds<span
class="o">)</span></code></pre></figure>
+
+<h2 id="future-improvements">Future improvements</h2>
<p>We are continuing to enhance the adapter, and would welcome
contributions of new parsing capabilities (for example parsing JSON