Modified: calcite/site/docs/tutorial.html
URL: 
http://svn.apache.org/viewvc/calcite/site/docs/tutorial.html?rev=1739659&r1=1739658&r2=1739659&view=diff
==============================================================================
--- calcite/site/docs/tutorial.html (original)
+++ calcite/site/docs/tutorial.html Sun Apr 17 21:26:04 2016
@@ -4,7 +4,7 @@
   <meta charset="UTF-8">
   <title>Tutorial</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v2.4.0">
+  <meta name="generator" content="Jekyll v3.0.3">
   <link rel="stylesheet" 
href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -844,10 +844,10 @@ to relational operators using planner ru
 
 <p>You need Java (1.7 or higher; 1.8 preferred), git and maven (3.2.1 or 
later).</p>
 
-<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span 
class="nv">$ </span>git clone https://github.com/apache/calcite.git
-<span class="nv">$ </span><span class="nb">cd </span>calcite
-<span class="nv">$ </span>mvn install -DskipTests -Dcheckstyle.skip<span 
class="o">=</span><span class="nb">true</span>
-<span class="nv">$ </span><span class="nb">cd 
</span>example/csv</code></pre></div>
+<figure class="highlight"><pre><code class="language-bash" 
data-lang="bash"><span class="gp">$ </span>git clone 
https://github.com/apache/calcite.git
+<span class="gp">$ </span><span class="nb">cd </span>calcite
+<span class="gp">$ </span>mvn install -DskipTests -Dcheckstyle.skip<span 
class="o">=</span><span class="nb">true</span>
+<span class="gp">$ </span><span class="nb">cd 
</span>example/csv</code></pre></figure>
 
 <h2 id="first-queries">First queries</h2>
 
@@ -855,23 +855,23 @@ to relational operators using planner ru
 <a href="https://github.com/julianhyde/sqlline";>sqlline</a>, a SQL shell
 that is included in this project.</p>
 
-<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span 
class="nv">$ </span>./sqlline
-sqlline&gt; !connect jdbc:calcite:model<span 
class="o">=</span>target/test-classes/model.json admin admin</code></pre></div>
+<figure class="highlight"><pre><code class="language-bash" 
data-lang="bash"><span class="gp">$ </span>./sqlline
+<span class="gp">sqlline&gt; </span>!connect jdbc:calcite:model<span 
class="o">=</span>target/test-classes/model.json admin 
admin</code></pre></figure>
 
-<p>(If you are running Windows, the command is <code>sqlline.bat</code>.)</p>
+<p>(If you are running Windows, the command is <code 
class="highlighter-rouge">sqlline.bat</code>.)</p>
 
 <p>Execute a metadata query:</p>
 
-<div class="highlight"><pre><code class="language-bash" 
data-lang="bash">sqlline&gt; !tables
+<figure class="highlight"><pre><code class="language-bash" 
data-lang="bash"><span class="gp">sqlline&gt; </span>!tables
 +------------+--------------+-------------+---------------+----------+------+
-<span class="p">|</span> TABLE_CAT  <span class="p">|</span> TABLE_SCHEM  
<span class="p">|</span> TABLE_NAME  <span class="p">|</span>  TABLE_TYPE   
<span class="p">|</span> REMARKS  <span class="p">|</span> TYPE <span 
class="p">|</span>
+| TABLE_CAT  | TABLE_SCHEM  | TABLE_NAME  |  TABLE_TYPE   | REMARKS  | TYPE |
 +------------+--------------+-------------+---------------+----------+------+
-<span class="p">|</span> null       <span class="p">|</span> SALES        
<span class="p">|</span> DEPTS       <span class="p">|</span> TABLE         
<span class="p">|</span> null     <span class="p">|</span> null <span 
class="p">|</span>
-<span class="p">|</span> null       <span class="p">|</span> SALES        
<span class="p">|</span> EMPS        <span class="p">|</span> TABLE         
<span class="p">|</span> null     <span class="p">|</span> null <span 
class="p">|</span>
-<span class="p">|</span> null       <span class="p">|</span> SALES        
<span class="p">|</span> HOBBIES     <span class="p">|</span> TABLE         
<span class="p">|</span> null     <span class="p">|</span> null <span 
class="p">|</span>
-<span class="p">|</span> null       <span class="p">|</span> metadata     
<span class="p">|</span> COLUMNS     <span class="p">|</span> SYSTEM_TABLE  
<span class="p">|</span> null     <span class="p">|</span> null <span 
class="p">|</span>
-<span class="p">|</span> null       <span class="p">|</span> metadata     
<span class="p">|</span> TABLES      <span class="p">|</span> SYSTEM_TABLE  
<span class="p">|</span> null     <span class="p">|</span> null <span 
class="p">|</span>
-+------------+--------------+-------------+---------------+----------+------+</code></pre></div>
+| null       | SALES        | DEPTS       | TABLE         | null     | null |
+| null       | SALES        | EMPS        | TABLE         | null     | null |
+| null       | SALES        | HOBBIES     | TABLE         | null     | null |
+| null       | metadata     | COLUMNS     | SYSTEM_TABLE  | null     | null |
+| null       | metadata     | TABLES      | SYSTEM_TABLE  | null     | null |
++------------+--------------+-------------+---------------+----------+------+</code></pre></figure>
 
 <p>(JDBC experts, note: sqlline’s <code>!tables</code> command is just 
executing
 <a 
href="http://docs.oracle.com/javase/7/docs/api/java/sql/DatabaseMetaData.html#getTables(java.lang.String,
 java.lang.String, java.lang.String, 
java.lang.String[])"><code>DatabaseMetaData.getTables()</code></a>
@@ -891,38 +891,38 @@ the <code>EMPS</code> and <code>DEPTS</c
 <p>Let’s execute some queries on those tables, to show that Calcite is 
providing
 a full implementation of SQL. First, a table scan:</p>
 
-<div class="highlight"><pre><code class="language-bash" 
data-lang="bash">sqlline&gt; SELECT * FROM emps<span class="p">;</span>
+<figure class="highlight"><pre><code class="language-bash" 
data-lang="bash"><span class="gp">sqlline&gt; </span>SELECT <span 
class="k">*</span> FROM emps;
 +--------+--------+---------+---------+----------------+--------+-------+---+
-<span class="p">|</span> EMPNO  <span class="p">|</span>  NAME  <span 
class="p">|</span> DEPTNO  <span class="p">|</span> GENDER  <span 
class="p">|</span>      CITY      <span class="p">|</span> EMPID  <span 
class="p">|</span>  AGE  <span class="p">|</span> S <span class="p">|</span>
+| EMPNO  |  NAME  | DEPTNO  | GENDER  |      CITY      | EMPID  |  AGE  | S |
 +--------+--------+---------+---------+----------------+--------+-------+---+
-<span class="p">|</span> <span class="m">100</span>    <span 
class="p">|</span> Fred   <span class="p">|</span> <span class="m">10</span>    
  <span class="p">|</span>         <span class="p">|</span>                
<span class="p">|</span> <span class="m">30</span>     <span class="p">|</span> 
<span class="m">25</span>    <span class="p">|</span> t <span class="p">|</span>
-<span class="p">|</span> <span class="m">110</span>    <span 
class="p">|</span> Eric   <span class="p">|</span> <span class="m">20</span>    
  <span class="p">|</span> M       <span class="p">|</span> San Francisco  
<span class="p">|</span> <span class="m">3</span>      <span class="p">|</span> 
<span class="m">80</span>    <span class="p">|</span> n <span class="p">|</span>
-<span class="p">|</span> <span class="m">110</span>    <span 
class="p">|</span> John   <span class="p">|</span> <span class="m">40</span>    
  <span class="p">|</span> M       <span class="p">|</span> Vancouver      
<span class="p">|</span> <span class="m">2</span>      <span class="p">|</span> 
null  <span class="p">|</span> f <span class="p">|</span>
-<span class="p">|</span> <span class="m">120</span>    <span 
class="p">|</span> Wilma  <span class="p">|</span> <span class="m">20</span>    
  <span class="p">|</span> F       <span class="p">|</span>                
<span class="p">|</span> <span class="m">1</span>      <span class="p">|</span> 
<span class="m">5</span>     <span class="p">|</span> n <span class="p">|</span>
-<span class="p">|</span> <span class="m">130</span>    <span 
class="p">|</span> Alice  <span class="p">|</span> <span class="m">40</span>    
  <span class="p">|</span> F       <span class="p">|</span> Vancouver      
<span class="p">|</span> <span class="m">2</span>      <span class="p">|</span> 
null  <span class="p">|</span> f <span class="p">|</span>
-+--------+--------+---------+---------+----------------+--------+-------+---+</code></pre></div>
+| 100    | Fred   | 10      |         |                | 30     | 25    | t |
+| 110    | Eric   | 20      | M       | San Francisco  | 3      | 80    | n |
+| 110    | John   | 40      | M       | Vancouver      | 2      | null  | f |
+| 120    | Wilma  | 20      | F       |                | 1      | 5     | n |
+| 130    | Alice  | 40      | F       | Vancouver      | 2      | null  | f |
++--------+--------+---------+---------+----------------+--------+-------+---+</code></pre></figure>
 
 <p>Now JOIN and GROUP BY:</p>
 
-<div class="highlight"><pre><code class="language-bash" 
data-lang="bash">sqlline&gt; SELECT d.name, COUNT<span class="o">(</span>*<span 
class="o">)</span>
+<figure class="highlight"><pre><code class="language-bash" 
data-lang="bash"><span class="gp">sqlline&gt; </span>SELECT d.name, COUNT<span 
class="o">(</span><span class="k">*</span><span class="o">)</span>
 . . . .&gt; FROM emps AS e JOIN depts AS d ON e.deptno <span 
class="o">=</span> d.deptno
-. . . .&gt; GROUP BY d.name<span class="p">;</span>
+. . . .&gt; GROUP BY d.name;
 +------------+---------+
-<span class="p">|</span>    NAME    <span class="p">|</span> EXPR<span 
class="nv">$1</span>  <span class="p">|</span>
+|    NAME    | EXPR<span class="nv">$1</span>  |
 +------------+---------+
-<span class="p">|</span> Sales      <span class="p">|</span> <span 
class="m">1</span>       <span class="p">|</span>
-<span class="p">|</span> Marketing  <span class="p">|</span> <span 
class="m">2</span>       <span class="p">|</span>
-+------------+---------+</code></pre></div>
+| Sales      | 1       |
+| Marketing  | 2       |
++------------+---------+</code></pre></figure>
 
 <p>Last, the VALUES operator generates a single row, and is a convenient
 way to test expressions and SQL built-in functions:</p>
 
-<div class="highlight"><pre><code class="language-bash" 
data-lang="bash">sqlline&gt; VALUES CHAR_LENGTH<span class="o">(</span><span 
class="s1">&#39;Hello, &#39;</span> <span class="o">||</span> <span 
class="s1">&#39;world!&#39;</span><span class="o">)</span><span 
class="p">;</span>
+<figure class="highlight"><pre><code class="language-bash" 
data-lang="bash"><span class="gp">sqlline&gt; </span>VALUES CHAR_LENGTH<span 
class="o">(</span><span class="s1">'Hello, '</span> <span class="o">||</span> 
<span class="s1">'world!'</span><span class="o">)</span>;
 +---------+
-<span class="p">|</span> EXPR<span class="nv">$0</span>  <span 
class="p">|</span>
+| EXPR<span class="nv">$0</span>  |
 +---------+
-<span class="p">|</span> <span class="m">13</span>      <span 
class="p">|</span>
-+---------+</code></pre></div>
+| 13      |
++---------+</code></pre></figure>
 
 <p>Calcite has many other SQL features. We don’t have time to cover them
 here. Write some more queries to experiment.</p>
@@ -946,20 +946,20 @@ executed. Now let’s look at those s
 <p>On the JDBC connect string we gave the path of a model in JSON
 format. Here is the model:</p>
 
-<div class="highlight"><pre><code class="language-json" data-lang="json"><span 
class="p">{</span>
-  <span class="err">version:</span> <span class="err">&#39;1.0&#39;,</span>
-  <span class="err">defaultSchema:</span> <span 
class="err">&#39;SALES&#39;,</span>
-  <span class="err">schemas:</span> <span class="err">[</span>
-    <span class="err">{</span>
-      <span class="err">name:</span> <span class="err">&#39;SALES&#39;,</span>
-      <span class="err">type:</span> <span class="err">&#39;custom&#39;,</span>
-      <span class="err">factory:</span> <span 
class="err">&#39;org.apache.calcite.adapter.csv.CsvSchemaFactory&#39;,</span>
-      <span class="err">operand:</span> <span class="err">{</span>
-        <span class="err">directory:</span> <span 
class="err">&#39;target/test-classes/sales&#39;</span>
-      <span class="p">}</span>
-    <span class="err">}</span>
-  <span class="err">]</span>
-<span class="err">}</span></code></pre></div>
+<figure class="highlight"><pre><code class="language-json" 
data-lang="json"><span class="p">{</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span 
class="err">'1.0',</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span 
class="err">'SALES',</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span 
class="err">[</span><span class="w">
+    </span><span class="err">{</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span 
class="err">'SALES',</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span 
class="err">'custom',</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span 
class="err">'org.apache.calcite.adapter.csv.CsvSchemaFactory',</span><span 
class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span 
class="err">{</span><span class="w">
+        </span><span class="err">directory:</span><span class="w"> 
</span><span class="err">'target/test-classes/sales'</span><span class="w">
+      </span><span class="p">}</span><span class="w">
+    </span><span class="err">}</span><span class="w">
+  </span><span class="err">]</span><span class="w">
+</span><span class="err">}</span></code></pre></figure>
 
 <p>The model defines a single schema called ‘SALES’. The schema is
 powered by a plugin class,
@@ -970,20 +970,20 @@ calcite-example-csv project and implemen
 Its <code>create</code> method instantiates a
 schema, passing in the <code>directory</code> argument from the model file:</p>
 
-<div class="highlight"><pre><code class="language-java" data-lang="java"><span 
class="kd">public</span> <span class="n">Schema</span> <span 
class="nf">create</span><span class="o">(</span><span 
class="n">SchemaPlus</span> <span class="n">parentSchema</span><span 
class="o">,</span> <span class="n">String</span> <span 
class="n">name</span><span class="o">,</span>
+<figure class="highlight"><pre><code class="language-java" 
data-lang="java"><span class="kd">public</span> <span class="n">Schema</span> 
<span class="nf">create</span><span class="p">(</span><span 
class="n">SchemaPlus</span> <span class="n">parentSchema</span><span 
class="o">,</span> <span class="n">String</span> <span 
class="n">name</span><span class="o">,</span>
     <span class="n">Map</span><span class="o">&lt;</span><span 
class="n">String</span><span class="o">,</span> <span 
class="n">Object</span><span class="o">&gt;</span> <span 
class="n">operand</span><span class="o">)</span> <span class="o">{</span>
-  <span class="n">String</span> <span class="n">directory</span> <span 
class="o">=</span> <span class="o">(</span><span class="n">String</span><span 
class="o">)</span> <span class="n">operand</span><span class="o">.</span><span 
class="na">get</span><span class="o">(</span><span 
class="s">&quot;directory&quot;</span><span class="o">);</span>
-  <span class="n">String</span> <span class="n">flavorName</span> <span 
class="o">=</span> <span class="o">(</span><span class="n">String</span><span 
class="o">)</span> <span class="n">operand</span><span class="o">.</span><span 
class="na">get</span><span class="o">(</span><span 
class="s">&quot;flavor&quot;</span><span class="o">);</span>
+  <span class="n">String</span> <span class="n">directory</span> <span 
class="o">=</span> <span class="o">(</span><span class="n">String</span><span 
class="o">)</span> <span class="n">operand</span><span class="o">.</span><span 
class="na">get</span><span class="o">(</span><span 
class="s">"directory"</span><span class="o">);</span>
+  <span class="n">String</span> <span class="n">flavorName</span> <span 
class="o">=</span> <span class="o">(</span><span class="n">String</span><span 
class="o">)</span> <span class="n">operand</span><span class="o">.</span><span 
class="na">get</span><span class="o">(</span><span 
class="s">"flavor"</span><span class="o">);</span>
   <span class="n">CsvTable</span><span class="o">.</span><span 
class="na">Flavor</span> <span class="n">flavor</span><span class="o">;</span>
   <span class="k">if</span> <span class="o">(</span><span 
class="n">flavorName</span> <span class="o">==</span> <span 
class="kc">null</span><span class="o">)</span> <span class="o">{</span>
     <span class="n">flavor</span> <span class="o">=</span> <span 
class="n">CsvTable</span><span class="o">.</span><span 
class="na">Flavor</span><span class="o">.</span><span 
class="na">SCANNABLE</span><span class="o">;</span>
   <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
     <span class="n">flavor</span> <span class="o">=</span> <span 
class="n">CsvTable</span><span class="o">.</span><span 
class="na">Flavor</span><span class="o">.</span><span 
class="na">valueOf</span><span class="o">(</span><span 
class="n">flavorName</span><span class="o">.</span><span 
class="na">toUpperCase</span><span class="o">());</span>
   <span class="o">}</span>
-  <span class="k">return</span> <span class="k">new</span> <span 
class="nf">CsvSchema</span><span class="o">(</span>
-      <span class="k">new</span> <span class="nf">File</span><span 
class="o">(</span><span class="n">directory</span><span class="o">),</span>
+  <span class="k">return</span> <span class="k">new</span> <span 
class="n">CsvSchema</span><span class="o">(</span>
+      <span class="k">new</span> <span class="n">File</span><span 
class="o">(</span><span class="n">directory</span><span class="o">),</span>
       <span class="n">flavor</span><span class="o">);</span>
-<span class="o">}</span></code></pre></div>
+<span class="o">}</span></code></pre></figure>
 
 <p>Driven by the model, the schema factory instantiates a single schema
 called ‘SALES’.  The schema is an instance of
@@ -1003,51 +1003,51 @@ and its sub-classes.</p>
 <code><a 
href="/apidocs/org/apache/calcite/schema/impl/AbstractSchema.html#getTableMap()">getTableMap()</a></code>
 method in the <code>AbstractSchema</code> base class.</p>
 
-<div class="highlight"><pre><code class="language-java" data-lang="java"><span 
class="kd">protected</span> <span class="n">Map</span><span 
class="o">&lt;</span><span class="n">String</span><span class="o">,</span> 
<span class="n">Table</span><span class="o">&gt;</span> <span 
class="nf">getTableMap</span><span class="o">()</span> <span class="o">{</span>
-  <span class="c1">// Look for files in the directory ending in 
&quot;.csv&quot;, &quot;.csv.gz&quot;, &quot;.json&quot;,</span>
-  <span class="c1">// &quot;.json.gz&quot;.</span>
+<figure class="highlight"><pre><code class="language-java" 
data-lang="java"><span class="kd">protected</span> <span 
class="n">Map</span><span class="o">&lt;</span><span 
class="n">String</span><span class="o">,</span> <span 
class="n">Table</span><span class="o">&gt;</span> <span 
class="n">getTableMap</span><span class="o">()</span> <span class="o">{</span>
+  <span class="c1">// Look for files in the directory ending in ".csv", 
".csv.gz", ".json",</span>
+  <span class="c1">// ".json.gz".</span>
   <span class="n">File</span><span class="o">[]</span> <span 
class="n">files</span> <span class="o">=</span> <span 
class="n">directoryFile</span><span class="o">.</span><span 
class="na">listFiles</span><span class="o">(</span>
-      <span class="k">new</span> <span class="nf">FilenameFilter</span><span 
class="o">()</span> <span class="o">{</span>
-        <span class="kd">public</span> <span class="kt">boolean</span> <span 
class="nf">accept</span><span class="o">(</span><span class="n">File</span> 
<span class="n">dir</span><span class="o">,</span> <span 
class="n">String</span> <span class="n">name</span><span class="o">)</span> 
<span class="o">{</span>
-          <span class="kd">final</span> <span class="n">String</span> <span 
class="n">nameSansGz</span> <span class="o">=</span> <span 
class="n">trim</span><span class="o">(</span><span class="n">name</span><span 
class="o">,</span> <span class="s">&quot;.gz&quot;</span><span 
class="o">);</span>
-          <span class="k">return</span> <span class="n">nameSansGz</span><span 
class="o">.</span><span class="na">endsWith</span><span class="o">(</span><span 
class="s">&quot;.csv&quot;</span><span class="o">)</span>
-              <span class="o">||</span> <span class="n">nameSansGz</span><span 
class="o">.</span><span class="na">endsWith</span><span class="o">(</span><span 
class="s">&quot;.json&quot;</span><span class="o">);</span>
+      <span class="k">new</span> <span class="n">FilenameFilter</span><span 
class="o">()</span> <span class="o">{</span>
+        <span class="kd">public</span> <span class="kt">boolean</span> <span 
class="n">accept</span><span class="o">(</span><span class="n">File</span> 
<span class="n">dir</span><span class="o">,</span> <span 
class="n">String</span> <span class="n">name</span><span class="o">)</span> 
<span class="o">{</span>
+          <span class="kd">final</span> <span class="n">String</span> <span 
class="n">nameSansGz</span> <span class="o">=</span> <span 
class="n">trim</span><span class="o">(</span><span class="n">name</span><span 
class="o">,</span> <span class="s">".gz"</span><span class="o">);</span>
+          <span class="k">return</span> <span class="n">nameSansGz</span><span 
class="o">.</span><span class="na">endsWith</span><span class="o">(</span><span 
class="s">".csv"</span><span class="o">)</span>
+              <span class="o">||</span> <span class="n">nameSansGz</span><span 
class="o">.</span><span class="na">endsWith</span><span class="o">(</span><span 
class="s">".json"</span><span class="o">);</span>
         <span class="o">}</span>
       <span class="o">});</span>
   <span class="k">if</span> <span class="o">(</span><span 
class="n">files</span> <span class="o">==</span> <span 
class="kc">null</span><span class="o">)</span> <span class="o">{</span>
-    <span class="n">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span 
class="s">&quot;directory &quot;</span> <span class="o">+</span> <span 
class="n">directoryFile</span> <span class="o">+</span> <span class="s">&quot; 
not found&quot;</span><span class="o">);</span>
+    <span class="n">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span class="s">"directory 
"</span> <span class="o">+</span> <span class="n">directoryFile</span> <span 
class="o">+</span> <span class="s">" not found"</span><span class="o">);</span>
     <span class="n">files</span> <span class="o">=</span> <span 
class="k">new</span> <span class="n">File</span><span class="o">[</span><span 
class="mi">0</span><span class="o">];</span>
   <span class="o">}</span>
   <span class="c1">// Build a map from table name to table; each file becomes 
a table.</span>
   <span class="kd">final</span> <span class="n">ImmutableMap</span><span 
class="o">.</span><span class="na">Builder</span><span 
class="o">&lt;</span><span class="n">String</span><span class="o">,</span> 
<span class="n">Table</span><span class="o">&gt;</span> <span 
class="n">builder</span> <span class="o">=</span> <span 
class="n">ImmutableMap</span><span class="o">.</span><span 
class="na">builder</span><span class="o">();</span>
   <span class="k">for</span> <span class="o">(</span><span 
class="n">File</span> <span class="n">file</span> <span class="o">:</span> 
<span class="n">files</span><span class="o">)</span> <span class="o">{</span>
-    <span class="n">String</span> <span class="n">tableName</span> <span 
class="o">=</span> <span class="n">trim</span><span class="o">(</span><span 
class="n">file</span><span class="o">.</span><span 
class="na">getName</span><span class="o">(),</span> <span 
class="s">&quot;.gz&quot;</span><span class="o">);</span>
-    <span class="kd">final</span> <span class="n">String</span> <span 
class="n">tableNameSansJson</span> <span class="o">=</span> <span 
class="n">trimOrNull</span><span class="o">(</span><span 
class="n">tableName</span><span class="o">,</span> <span 
class="s">&quot;.json&quot;</span><span class="o">);</span>
+    <span class="n">String</span> <span class="n">tableName</span> <span 
class="o">=</span> <span class="n">trim</span><span class="o">(</span><span 
class="n">file</span><span class="o">.</span><span 
class="na">getName</span><span class="o">(),</span> <span 
class="s">".gz"</span><span class="o">);</span>
+    <span class="kd">final</span> <span class="n">String</span> <span 
class="n">tableNameSansJson</span> <span class="o">=</span> <span 
class="n">trimOrNull</span><span class="o">(</span><span 
class="n">tableName</span><span class="o">,</span> <span 
class="s">".json"</span><span class="o">);</span>
     <span class="k">if</span> <span class="o">(</span><span 
class="n">tableNameSansJson</span> <span class="o">!=</span> <span 
class="kc">null</span><span class="o">)</span> <span class="o">{</span>
-      <span class="n">JsonTable</span> <span class="n">table</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="nf">JsonTable</span><span class="o">(</span><span 
class="n">file</span><span class="o">);</span>
+      <span class="n">JsonTable</span> <span class="n">table</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">JsonTable</span><span class="o">(</span><span 
class="n">file</span><span class="o">);</span>
       <span class="n">builder</span><span class="o">.</span><span 
class="na">put</span><span class="o">(</span><span 
class="n">tableNameSansJson</span><span class="o">,</span> <span 
class="n">table</span><span class="o">);</span>
       <span class="k">continue</span><span class="o">;</span>
     <span class="o">}</span>
-    <span class="n">tableName</span> <span class="o">=</span> <span 
class="n">trim</span><span class="o">(</span><span 
class="n">tableName</span><span class="o">,</span> <span 
class="s">&quot;.csv&quot;</span><span class="o">);</span>
+    <span class="n">tableName</span> <span class="o">=</span> <span 
class="n">trim</span><span class="o">(</span><span 
class="n">tableName</span><span class="o">,</span> <span 
class="s">".csv"</span><span class="o">);</span>
     <span class="kd">final</span> <span class="n">Table</span> <span 
class="n">table</span> <span class="o">=</span> <span 
class="n">createTable</span><span class="o">(</span><span 
class="n">file</span><span class="o">);</span>
     <span class="n">builder</span><span class="o">.</span><span 
class="na">put</span><span class="o">(</span><span 
class="n">tableName</span><span class="o">,</span> <span 
class="n">table</span><span class="o">);</span>
   <span class="o">}</span>
   <span class="k">return</span> <span class="n">builder</span><span 
class="o">.</span><span class="na">build</span><span class="o">();</span>
 <span class="o">}</span>
 
-<span class="cm">/** Creates different sub-type of table based on the 
&quot;flavor&quot; attribute. */</span>
-<span class="kd">private</span> <span class="n">Table</span> <span 
class="nf">createTable</span><span class="o">(</span><span 
class="n">File</span> <span class="n">file</span><span class="o">)</span> <span 
class="o">{</span>
+<span class="cm">/** Creates different sub-type of table based on the "flavor" 
attribute. */</span>
+<span class="kd">private</span> <span class="n">Table</span> <span 
class="nf">createTable</span><span class="p">(</span><span 
class="n">File</span> <span class="n">file</span><span class="o">)</span> <span 
class="o">{</span>
   <span class="k">switch</span> <span class="o">(</span><span 
class="n">flavor</span><span class="o">)</span> <span class="o">{</span>
   <span class="k">case</span> <span class="nl">TRANSLATABLE:</span>
-    <span class="k">return</span> <span class="k">new</span> <span 
class="nf">CsvTranslatableTable</span><span class="o">(</span><span 
class="n">file</span><span class="o">,</span> <span class="kc">null</span><span 
class="o">);</span>
+    <span class="k">return</span> <span class="k">new</span> <span 
class="n">CsvTranslatableTable</span><span class="o">(</span><span 
class="n">file</span><span class="o">,</span> <span class="kc">null</span><span 
class="o">);</span>
   <span class="k">case</span> <span class="nl">SCANNABLE:</span>
-    <span class="k">return</span> <span class="k">new</span> <span 
class="nf">CsvScannableTable</span><span class="o">(</span><span 
class="n">file</span><span class="o">,</span> <span class="kc">null</span><span 
class="o">);</span>
+    <span class="k">return</span> <span class="k">new</span> <span 
class="n">CsvScannableTable</span><span class="o">(</span><span 
class="n">file</span><span class="o">,</span> <span class="kc">null</span><span 
class="o">);</span>
   <span class="k">case</span> <span class="nl">FILTERABLE:</span>
-    <span class="k">return</span> <span class="k">new</span> <span 
class="nf">CsvFilterableTable</span><span class="o">(</span><span 
class="n">file</span><span class="o">,</span> <span class="kc">null</span><span 
class="o">);</span>
+    <span class="k">return</span> <span class="k">new</span> <span 
class="n">CsvFilterableTable</span><span class="o">(</span><span 
class="n">file</span><span class="o">,</span> <span class="kc">null</span><span 
class="o">);</span>
   <span class="k">default</span><span class="o">:</span>
-    <span class="k">throw</span> <span class="k">new</span> <span 
class="nf">AssertionError</span><span class="o">(</span><span 
class="s">&quot;Unknown flavor &quot;</span> <span class="o">+</span> <span 
class="n">flavor</span><span class="o">);</span>
+    <span class="k">throw</span> <span class="k">new</span> <span 
class="n">AssertionError</span><span class="o">(</span><span class="s">"Unknown 
flavor "</span> <span class="o">+</span> <span class="n">flavor</span><span 
class="o">);</span>
   <span class="o">}</span>
-<span class="o">}</span></code></pre></div>
+<span class="o">}</span></code></pre></figure>
 
 <p>The schema scans the directory and finds all files whose name ends
 with “.csv” and creates tables for them. In this case, the directory
@@ -1075,27 +1075,27 @@ clause that are not used in the final re
 
 <p>Here is a schema that defines a view:</p>
 
-<div class="highlight"><pre><code class="language-json" data-lang="json"><span 
class="p">{</span>
-  <span class="err">version:</span> <span class="err">&#39;1.0&#39;,</span>
-  <span class="err">defaultSchema:</span> <span 
class="err">&#39;SALES&#39;,</span>
-  <span class="err">schemas:</span> <span class="err">[</span>
-    <span class="err">{</span>
-      <span class="err">name:</span> <span class="err">&#39;SALES&#39;,</span>
-      <span class="err">type:</span> <span class="err">&#39;custom&#39;,</span>
-      <span class="err">factory:</span> <span 
class="err">&#39;org.apache.calcite.adapter.csv.CsvSchemaFactory&#39;,</span>
-      <span class="err">operand:</span> <span class="err">{</span>
-        <span class="err">directory:</span> <span 
class="err">&#39;target/test-classes/sales&#39;</span>
-      <span class="p">}</span><span class="err">,</span>
-      <span class="err">tables:</span> <span class="p">[</span>
-        <span class="p">{</span>
-          <span class="err">name:</span> <span 
class="err">&#39;FEMALE_EMPS&#39;,</span>
-          <span class="err">type:</span> <span 
class="err">&#39;view&#39;,</span>
-          <span class="err">sql:</span> <span class="err">&#39;SELECT</span> 
<span class="err">*</span> <span class="err">FROM</span> <span 
class="err">emps</span> <span class="err">WHERE</span> <span 
class="err">gender</span> <span class="err">=</span> <span 
class="err">\&#39;F\&#39;&#39;</span>
-        <span class="p">}</span>
-      <span class="p">]</span>
-    <span class="err">}</span>
-  <span class="err">]</span>
-<span class="err">}</span></code></pre></div>
+<figure class="highlight"><pre><code class="language-json" 
data-lang="json"><span class="p">{</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span 
class="err">'1.0',</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span 
class="err">'SALES',</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span 
class="err">[</span><span class="w">
+    </span><span class="err">{</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span 
class="err">'SALES',</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span 
class="err">'custom',</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span 
class="err">'org.apache.calcite.adapter.csv.CsvSchemaFactory',</span><span 
class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span 
class="err">{</span><span class="w">
+        </span><span class="err">directory:</span><span class="w"> 
</span><span class="err">'target/test-classes/sales'</span><span class="w">
+      </span><span class="p">}</span><span class="err">,</span><span class="w">
+      </span><span class="err">tables:</span><span class="w"> </span><span 
class="p">[</span><span class="w">
+        </span><span class="p">{</span><span class="w">
+          </span><span class="err">name:</span><span class="w"> </span><span 
class="err">'FEMALE_EMPS',</span><span class="w">
+          </span><span class="err">type:</span><span class="w"> </span><span 
class="err">'view',</span><span class="w">
+          </span><span class="err">sql:</span><span class="w"> </span><span 
class="err">'SELECT</span><span class="w"> </span><span 
class="err">*</span><span class="w"> </span><span class="err">FROM</span><span 
class="w"> </span><span class="err">emps</span><span class="w"> </span><span 
class="err">WHERE</span><span class="w"> </span><span 
class="err">gender</span><span class="w"> </span><span 
class="err">=</span><span class="w"> </span><span 
class="err">\'F\''</span><span class="w">
+        </span><span class="p">}</span><span class="w">
+      </span><span class="p">]</span><span class="w">
+    </span><span class="err">}</span><span class="w">
+  </span><span class="err">]</span><span class="w">
+</span><span class="err">}</span></code></pre></figure>
 
 <p>The line <code>type: 'view'</code> tags <code>FEMALE_EMPS</code> as a view,
 as opposed to a regular table or a custom table.
@@ -1106,23 +1106,23 @@ back-slash, in the normal way for JSON.<
 alternative syntax. If your view has a long SQL statement, you can instead
 supply a list of lines rather than a single string:</p>
 
-<div class="highlight"><pre><code class="language-json" data-lang="json"><span 
class="p">{</span>
-  <span class="err">name:</span> <span 
class="err">&#39;FEMALE_EMPS&#39;,</span>
-  <span class="err">type:</span> <span class="err">&#39;view&#39;,</span>
-  <span class="err">sql:</span> <span class="err">[</span>
-    <span class="err">&#39;SELECT</span> <span class="err">*</span> <span 
class="err">FROM</span> <span class="err">emps&#39;,</span>
-    <span class="err">&#39;WHERE</span> <span class="err">gender</span> <span 
class="err">=</span> <span class="err">\&#39;F\&#39;&#39;</span>
-  <span class="err">]</span>
-<span class="p">}</span></code></pre></div>
+<figure class="highlight"><pre><code class="language-json" 
data-lang="json"><span class="p">{</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span 
class="err">'FEMALE_EMPS',</span><span class="w">
+  </span><span class="err">type:</span><span class="w"> </span><span 
class="err">'view',</span><span class="w">
+  </span><span class="err">sql:</span><span class="w"> </span><span 
class="err">[</span><span class="w">
+    </span><span class="err">'SELECT</span><span class="w"> </span><span 
class="err">*</span><span class="w"> </span><span class="err">FROM</span><span 
class="w"> </span><span class="err">emps',</span><span class="w">
+    </span><span class="err">'WHERE</span><span class="w"> </span><span 
class="err">gender</span><span class="w"> </span><span 
class="err">=</span><span class="w"> </span><span 
class="err">\'F\''</span><span class="w">
+  </span><span class="err">]</span><span class="w">
+</span><span class="p">}</span></code></pre></figure>
 
 <p>Now we have defined a view, we can use it in queries just as if it were a 
table:</p>
 
-<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span 
class="n">sqlline</span><span class="o">&gt;</span> <span 
class="k">SELECT</span> <span class="n">e</span><span class="p">.</span><span 
class="n">name</span><span class="p">,</span> <span class="n">d</span><span 
class="p">.</span><span class="n">name</span> <span class="k">FROM</span> <span 
class="n">female_emps</span> <span class="k">AS</span> <span class="n">e</span> 
<span class="k">JOIN</span> <span class="n">depts</span> <span 
class="k">AS</span> <span class="n">d</span> <span class="k">on</span> <span 
class="n">e</span><span class="p">.</span><span class="n">deptno</span> <span 
class="o">=</span> <span class="n">d</span><span class="p">.</span><span 
class="n">deptno</span><span class="p">;</span>
-<span class="o">+</span><span class="c1">--------+------------+</span>
-<span class="o">|</span>  <span class="n">NAME</span>  <span 
class="o">|</span>    <span class="n">NAME</span>    <span class="o">|</span>
-<span class="o">+</span><span class="c1">--------+------------+</span>
-<span class="o">|</span> <span class="n">Wilma</span>  <span 
class="o">|</span> <span class="n">Marketing</span>  <span class="o">|</span>
-<span class="o">+</span><span 
class="c1">--------+------------+</span></code></pre></div>
+<figure class="highlight"><pre><code class="language-sql" 
data-lang="sql"><span class="n">sqlline</span><span class="o">&gt;</span> <span 
class="k">SELECT</span> <span class="n">e</span><span class="p">.</span><span 
class="n">name</span><span class="p">,</span> <span class="n">d</span><span 
class="p">.</span><span class="n">name</span> <span class="k">FROM</span> <span 
class="n">female_emps</span> <span class="k">AS</span> <span class="n">e</span> 
<span class="k">JOIN</span> <span class="n">depts</span> <span 
class="k">AS</span> <span class="n">d</span> <span class="k">on</span> <span 
class="n">e</span><span class="p">.</span><span class="n">deptno</span> <span 
class="o">=</span> <span class="n">d</span><span class="p">.</span><span 
class="n">deptno</span><span class="p">;</span>
+<span class="o">+</span><span class="c1">--------+------------+
+</span><span class="o">|</span>  <span class="n">NAME</span>  <span 
class="o">|</span>    <span class="n">NAME</span>    <span class="o">|</span>
+<span class="o">+</span><span class="c1">--------+------------+
+</span><span class="o">|</span> <span class="n">Wilma</span>  <span 
class="o">|</span> <span class="n">Marketing</span>  <span class="o">|</span>
+<span class="o">+--------+------------+</span></code></pre></figure>
 
 <h2 id="custom-tables">Custom tables</h2>
 
@@ -1131,40 +1131,40 @@ They don’t need to live in a custom
 
 <p>There is an example in <code>model-with-custom-table.json</code>:</p>
 
-<div class="highlight"><pre><code class="language-json" data-lang="json"><span 
class="p">{</span>
-  <span class="err">version:</span> <span class="err">&#39;1.0&#39;,</span>
-  <span class="err">defaultSchema:</span> <span 
class="err">&#39;CUSTOM_TABLE&#39;,</span>
-  <span class="err">schemas:</span> <span class="err">[</span>
-    <span class="err">{</span>
-      <span class="err">name:</span> <span 
class="err">&#39;CUSTOM_TABLE&#39;,</span>
-      <span class="err">tables:</span> <span class="err">[</span>
-        <span class="err">{</span>
-          <span class="err">name:</span> <span 
class="err">&#39;EMPS&#39;,</span>
-          <span class="err">type:</span> <span 
class="err">&#39;custom&#39;,</span>
-          <span class="err">factory:</span> <span 
class="err">&#39;org.apache.calcite.adapter.csv.CsvTableFactory&#39;,</span>
-          <span class="err">operand:</span> <span class="err">{</span>
-            <span class="err">file:</span> <span 
class="err">&#39;target/test-classes/sales/EMPS.csv.gz&#39;,</span>
-            <span class="err">flavor:</span> <span 
class="nt">&quot;scannable&quot;</span>
-          <span class="p">}</span>
-        <span class="err">}</span>
-      <span class="err">]</span>
-    <span class="err">}</span>
-  <span class="err">]</span>
-<span class="err">}</span></code></pre></div>
+<figure class="highlight"><pre><code class="language-json" 
data-lang="json"><span class="p">{</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span 
class="err">'1.0',</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span 
class="err">'CUSTOM_TABLE',</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span 
class="err">[</span><span class="w">
+    </span><span class="err">{</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span 
class="err">'CUSTOM_TABLE',</span><span class="w">
+      </span><span class="err">tables:</span><span class="w"> </span><span 
class="err">[</span><span class="w">
+        </span><span class="err">{</span><span class="w">
+          </span><span class="err">name:</span><span class="w"> </span><span 
class="err">'EMPS',</span><span class="w">
+          </span><span class="err">type:</span><span class="w"> </span><span 
class="err">'custom',</span><span class="w">
+          </span><span class="err">factory:</span><span class="w"> 
</span><span 
class="err">'org.apache.calcite.adapter.csv.CsvTableFactory',</span><span 
class="w">
+          </span><span class="err">operand:</span><span class="w"> 
</span><span class="err">{</span><span class="w">
+            </span><span class="err">file:</span><span class="w"> </span><span 
class="err">'target/test-classes/sales/EMPS.csv.gz',</span><span class="w">
+            </span><span class="err">flavor:</span><span class="w"> 
</span><span class="nt">"scannable"</span><span class="w">
+          </span><span class="err">}</span><span class="w">
+        </span><span class="err">}</span><span class="w">
+      </span><span class="err">]</span><span class="w">
+    </span><span class="err">}</span><span class="w">
+  </span><span class="err">]</span><span class="w">
+</span><span class="err">}</span></code></pre></figure>
 
 <p>We can query the table in the usual way:</p>
 
-<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span 
class="n">sqlline</span><span class="o">&gt;</span> <span 
class="o">!</span><span class="k">connect</span> <span 
class="n">jdbc</span><span class="p">:</span><span 
class="n">calcite</span><span class="p">:</span><span 
class="n">model</span><span class="o">=</span><span 
class="n">target</span><span class="o">/</span><span class="n">test</span><span 
class="o">-</span><span class="n">classes</span><span class="o">/</span><span 
class="n">model</span><span class="o">-</span><span class="k">with</span><span 
class="o">-</span><span class="n">custom</span><span class="o">-</span><span 
class="k">table</span><span class="p">.</span><span class="n">json</span> <span 
class="k">admin</span> <span class="k">admin</span>
+<figure class="highlight"><pre><code class="language-sql" 
data-lang="sql"><span class="n">sqlline</span><span class="o">&gt;</span> <span 
class="o">!</span><span class="k">connect</span> <span 
class="n">jdbc</span><span class="p">:</span><span 
class="n">calcite</span><span class="p">:</span><span 
class="n">model</span><span class="o">=</span><span 
class="n">target</span><span class="o">/</span><span class="n">test</span><span 
class="o">-</span><span class="n">classes</span><span class="o">/</span><span 
class="n">model</span><span class="o">-</span><span class="k">with</span><span 
class="o">-</span><span class="n">custom</span><span class="o">-</span><span 
class="k">table</span><span class="p">.</span><span class="n">json</span> <span 
class="k">admin</span> <span class="k">admin</span>
 <span class="n">sqlline</span><span class="o">&gt;</span> <span 
class="k">SELECT</span> <span class="n">empno</span><span class="p">,</span> 
<span class="n">name</span> <span class="k">FROM</span> <span 
class="n">custom_table</span><span class="p">.</span><span 
class="n">emps</span><span class="p">;</span>
-<span class="o">+</span><span class="c1">--------+--------+</span>
-<span class="o">|</span> <span class="n">EMPNO</span>  <span 
class="o">|</span>  <span class="n">NAME</span>  <span class="o">|</span>
-<span class="o">+</span><span class="c1">--------+--------+</span>
-<span class="o">|</span> <span class="mi">100</span>    <span 
class="o">|</span> <span class="n">Fred</span>   <span class="o">|</span>
+<span class="o">+</span><span class="c1">--------+--------+
+</span><span class="o">|</span> <span class="n">EMPNO</span>  <span 
class="o">|</span>  <span class="n">NAME</span>  <span class="o">|</span>
+<span class="o">+</span><span class="c1">--------+--------+
+</span><span class="o">|</span> <span class="mi">100</span>    <span 
class="o">|</span> <span class="n">Fred</span>   <span class="o">|</span>
 <span class="o">|</span> <span class="mi">110</span>    <span 
class="o">|</span> <span class="n">Eric</span>   <span class="o">|</span>
 <span class="o">|</span> <span class="mi">110</span>    <span 
class="o">|</span> <span class="n">John</span>   <span class="o">|</span>
 <span class="o">|</span> <span class="mi">120</span>    <span 
class="o">|</span> <span class="n">Wilma</span>  <span class="o">|</span>
 <span class="o">|</span> <span class="mi">130</span>    <span 
class="o">|</span> <span class="n">Alice</span>  <span class="o">|</span>
-<span class="o">+</span><span 
class="c1">--------+--------+</span></code></pre></div>
+<span class="o">+--------+--------+</span></code></pre></figure>
 
 <p>The schema is a regular one, and contains a custom table powered by
 <a 
href="https://github.com/apache/calcite/blob/master/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTableFactory.java";>org.apache.calcite.adapter.csv.CsvTableFactory</a>,
@@ -1173,14 +1173,14 @@ which implements the Calcite interface
 Its <code>create</code> method instantiates a <code>CsvScannableTable</code>,
 passing in the <code>file</code> argument from the model file:</p>
 
-<div class="highlight"><pre><code class="language-java" data-lang="java"><span 
class="kd">public</span> <span class="n">CsvTable</span> <span 
class="nf">create</span><span class="o">(</span><span 
class="n">SchemaPlus</span> <span class="n">schema</span><span 
class="o">,</span> <span class="n">String</span> <span 
class="n">name</span><span class="o">,</span>
+<figure class="highlight"><pre><code class="language-java" 
data-lang="java"><span class="kd">public</span> <span class="n">CsvTable</span> 
<span class="nf">create</span><span class="p">(</span><span 
class="n">SchemaPlus</span> <span class="n">schema</span><span 
class="o">,</span> <span class="n">String</span> <span 
class="n">name</span><span class="o">,</span>
     <span class="n">Map</span><span class="o">&lt;</span><span 
class="n">String</span><span class="o">,</span> <span 
class="n">Object</span><span class="o">&gt;</span> <span 
class="n">map</span><span class="o">,</span> <span class="n">RelDataType</span> 
<span class="n">rowType</span><span class="o">)</span> <span class="o">{</span>
-  <span class="n">String</span> <span class="n">fileName</span> <span 
class="o">=</span> <span class="o">(</span><span class="n">String</span><span 
class="o">)</span> <span class="n">map</span><span class="o">.</span><span 
class="na">get</span><span class="o">(</span><span 
class="s">&quot;file&quot;</span><span class="o">);</span>
-  <span class="kd">final</span> <span class="n">File</span> <span 
class="n">file</span> <span class="o">=</span> <span class="k">new</span> <span 
class="nf">File</span><span class="o">(</span><span 
class="n">fileName</span><span class="o">);</span>
+  <span class="n">String</span> <span class="n">fileName</span> <span 
class="o">=</span> <span class="o">(</span><span class="n">String</span><span 
class="o">)</span> <span class="n">map</span><span class="o">.</span><span 
class="na">get</span><span class="o">(</span><span class="s">"file"</span><span 
class="o">);</span>
+  <span class="kd">final</span> <span class="n">File</span> <span 
class="n">file</span> <span class="o">=</span> <span class="k">new</span> <span 
class="n">File</span><span class="o">(</span><span 
class="n">fileName</span><span class="o">);</span>
   <span class="kd">final</span> <span class="n">RelProtoDataType</span> <span 
class="n">protoRowType</span> <span class="o">=</span>
       <span class="n">rowType</span> <span class="o">!=</span> <span 
class="kc">null</span> <span class="o">?</span> <span 
class="n">RelDataTypeImpl</span><span class="o">.</span><span 
class="na">proto</span><span class="o">(</span><span 
class="n">rowType</span><span class="o">)</span> <span class="o">:</span> <span 
class="kc">null</span><span class="o">;</span>
-  <span class="k">return</span> <span class="k">new</span> <span 
class="nf">CsvScannableTable</span><span class="o">(</span><span 
class="n">file</span><span class="o">,</span> <span 
class="n">protoRowType</span><span class="o">);</span>
-<span class="o">}</span></code></pre></div>
+  <span class="k">return</span> <span class="k">new</span> <span 
class="n">CsvScannableTable</span><span class="o">(</span><span 
class="n">file</span><span class="o">,</span> <span 
class="n">protoRowType</span><span class="o">);</span>
+<span class="o">}</span></code></pre></figure>
 
 <p>Implementing a custom table is often a simpler alternative to implementing
 a custom schema. Both approaches might end up creating a similar implementation
@@ -1195,18 +1195,18 @@ more control (say, providing different p
 
 <h2 id="comments-in-models">Comments in models</h2>
 
-<p>Models can include comments using <code>/* ... */</code> and 
<code>//</code> syntax:</p>
+<p>Models can include comments using <code class="highlighter-rouge">/* ... 
*/</code> and <code class="highlighter-rouge">//</code> syntax:</p>
 
-<div class="highlight"><pre><code class="language-json" data-lang="json"><span 
class="p">{</span>
-  <span class="err">version:</span> <span class="err">&#39;1.0&#39;,</span>
-  <span class="err">/*</span> <span class="err">Multi-line</span>
-     <span class="err">comment.</span> <span class="err">*/</span>
-  <span class="err">defaultSchema:</span> <span 
class="err">&#39;CUSTOM_TABLE&#39;,</span>
-  <span class="err">//</span> <span class="err">Single-line</span> <span 
class="err">comment.</span>
-  <span class="err">schemas:</span> <span class="err">[</span>
-    <span class="err">..</span>
-  <span class="err">]</span>
-<span class="p">}</span></code></pre></div>
+<figure class="highlight"><pre><code class="language-json" 
data-lang="json"><span class="p">{</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span 
class="err">'1.0',</span><span class="w">
+  </span><span class="err">/*</span><span class="w"> </span><span 
class="err">Multi-line</span><span class="w">
+     </span><span class="err">comment.</span><span class="w"> </span><span 
class="err">*/</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span 
class="err">'CUSTOM_TABLE',</span><span class="w">
+  </span><span class="err">//</span><span class="w"> </span><span 
class="err">Single-line</span><span class="w"> </span><span 
class="err">comment.</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span 
class="err">[</span><span class="w">
+    </span><span class="err">..</span><span class="w">
+  </span><span class="err">]</span><span class="w">
+</span><span class="p">}</span></code></pre></figure>
 
 <p>(Comments are not standard JSON, but are a harmless extension.)</p>
 
@@ -1231,27 +1231,27 @@ schema, and then you define some rules t
 a subset of columns from a CSV file. Let’s run the same query against two 
very
 similar schemas:</p>
 
-<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span 
class="n">sqlline</span><span class="o">&gt;</span> <span 
class="o">!</span><span class="k">connect</span> <span 
class="n">jdbc</span><span class="p">:</span><span 
class="n">calcite</span><span class="p">:</span><span 
class="n">model</span><span class="o">=</span><span 
class="n">target</span><span class="o">/</span><span class="n">test</span><span 
class="o">-</span><span class="n">classes</span><span class="o">/</span><span 
class="n">model</span><span class="p">.</span><span class="n">json</span> <span 
class="k">admin</span> <span class="k">admin</span>
+<figure class="highlight"><pre><code class="language-sql" 
data-lang="sql"><span class="n">sqlline</span><span class="o">&gt;</span> <span 
class="o">!</span><span class="k">connect</span> <span 
class="n">jdbc</span><span class="p">:</span><span 
class="n">calcite</span><span class="p">:</span><span 
class="n">model</span><span class="o">=</span><span 
class="n">target</span><span class="o">/</span><span class="n">test</span><span 
class="o">-</span><span class="n">classes</span><span class="o">/</span><span 
class="n">model</span><span class="p">.</span><span class="n">json</span> <span 
class="k">admin</span> <span class="k">admin</span>
 <span class="n">sqlline</span><span class="o">&gt;</span> <span 
class="k">explain</span> <span class="n">plan</span> <span class="k">for</span> 
<span class="k">select</span> <span class="n">name</span> <span 
class="k">from</span> <span class="n">emps</span><span class="p">;</span>
-<span class="o">+</span><span 
class="c1">-----------------------------------------------------+</span>
-<span class="o">|</span> <span class="n">PLAN</span>                           
                     <span class="o">|</span>
-<span class="o">+</span><span 
class="c1">-----------------------------------------------------+</span>
-<span class="o">|</span> <span class="n">EnumerableCalcRel</span><span 
class="p">(</span><span class="n">expr</span><span class="o">#</span><span 
class="mi">0</span><span class="p">..</span><span class="mi">9</span><span 
class="o">=</span><span class="p">[</span><span class="err">{</span><span 
class="n">inputs</span><span class="err">}</span><span class="p">],</span> 
<span class="n">NAME</span><span class="o">=</span><span 
class="p">[</span><span class="err">$</span><span class="n">t1</span><span 
class="p">])</span> <span class="o">|</span>
+<span class="o">+</span><span 
class="c1">-----------------------------------------------------+
+</span><span class="o">|</span> <span class="n">PLAN</span>                    
                            <span class="o">|</span>
+<span class="o">+</span><span 
class="c1">-----------------------------------------------------+
+</span><span class="o">|</span> <span class="n">EnumerableCalcRel</span><span 
class="p">(</span><span class="n">expr</span><span class="o">#</span><span 
class="mi">0</span><span class="p">..</span><span class="mi">9</span><span 
class="o">=</span><span class="p">[</span><span class="err">{</span><span 
class="n">inputs</span><span class="err">}</span><span class="p">],</span> 
<span class="n">NAME</span><span class="o">=</span><span 
class="p">[</span><span class="err">$</span><span class="n">t1</span><span 
class="p">])</span> <span class="o">|</span>
 <span class="o">|</span>   <span 
class="n">EnumerableTableAccessRel</span><span class="p">(</span><span 
class="k">table</span><span class="o">=</span><span class="p">[[</span><span 
class="n">SALES</span><span class="p">,</span> <span class="n">EMPS</span><span 
class="p">]])</span>   <span class="o">|</span>
-<span class="o">+</span><span 
class="c1">-----------------------------------------------------+</span>
-<span class="n">sqlline</span><span class="o">&gt;</span> <span 
class="o">!</span><span class="k">connect</span> <span 
class="n">jdbc</span><span class="p">:</span><span 
class="n">calcite</span><span class="p">:</span><span 
class="n">model</span><span class="o">=</span><span 
class="n">target</span><span class="o">/</span><span class="n">test</span><span 
class="o">-</span><span class="n">classes</span><span class="o">/</span><span 
class="n">smart</span><span class="p">.</span><span class="n">json</span> <span 
class="k">admin</span> <span class="k">admin</span>
+<span class="o">+</span><span 
class="c1">-----------------------------------------------------+
+</span><span class="n">sqlline</span><span class="o">&gt;</span> <span 
class="o">!</span><span class="k">connect</span> <span 
class="n">jdbc</span><span class="p">:</span><span 
class="n">calcite</span><span class="p">:</span><span 
class="n">model</span><span class="o">=</span><span 
class="n">target</span><span class="o">/</span><span class="n">test</span><span 
class="o">-</span><span class="n">classes</span><span class="o">/</span><span 
class="n">smart</span><span class="p">.</span><span class="n">json</span> <span 
class="k">admin</span> <span class="k">admin</span>
 <span class="n">sqlline</span><span class="o">&gt;</span> <span 
class="k">explain</span> <span class="n">plan</span> <span class="k">for</span> 
<span class="k">select</span> <span class="n">name</span> <span 
class="k">from</span> <span class="n">emps</span><span class="p">;</span>
-<span class="o">+</span><span 
class="c1">-----------------------------------------------------+</span>
-<span class="o">|</span> <span class="n">PLAN</span>                           
                     <span class="o">|</span>
-<span class="o">+</span><span 
class="c1">-----------------------------------------------------+</span>
-<span class="o">|</span> <span class="n">EnumerableCalcRel</span><span 
class="p">(</span><span class="n">expr</span><span class="o">#</span><span 
class="mi">0</span><span class="p">..</span><span class="mi">9</span><span 
class="o">=</span><span class="p">[</span><span class="err">{</span><span 
class="n">inputs</span><span class="err">}</span><span class="p">],</span> 
<span class="n">NAME</span><span class="o">=</span><span 
class="p">[</span><span class="err">$</span><span class="n">t1</span><span 
class="p">])</span> <span class="o">|</span>
+<span class="o">+</span><span 
class="c1">-----------------------------------------------------+
+</span><span class="o">|</span> <span class="n">PLAN</span>                    
                            <span class="o">|</span>
+<span class="o">+</span><span 
class="c1">-----------------------------------------------------+
+</span><span class="o">|</span> <span class="n">EnumerableCalcRel</span><span 
class="p">(</span><span class="n">expr</span><span class="o">#</span><span 
class="mi">0</span><span class="p">..</span><span class="mi">9</span><span 
class="o">=</span><span class="p">[</span><span class="err">{</span><span 
class="n">inputs</span><span class="err">}</span><span class="p">],</span> 
<span class="n">NAME</span><span class="o">=</span><span 
class="p">[</span><span class="err">$</span><span class="n">t1</span><span 
class="p">])</span> <span class="o">|</span>
 <span class="o">|</span>   <span class="n">CsvTableScan</span><span 
class="p">(</span><span class="k">table</span><span class="o">=</span><span 
class="p">[[</span><span class="n">SALES</span><span class="p">,</span> <span 
class="n">EMPS</span><span class="p">]])</span>               <span 
class="o">|</span>
-<span class="o">+</span><span 
class="c1">-----------------------------------------------------+</span></code></pre></div>
+<span 
class="o">+-----------------------------------------------------+</span></code></pre></figure>
 
 <p>What causes the difference in plan? Let’s follow the trail of evidence. 
In the
 <code>smart.json</code> model file, there is just one extra line:</p>
 
-<div class="highlight"><pre><code class="language-json" data-lang="json"><span 
class="err">flavor:</span> <span 
class="s2">&quot;translatable&quot;</span></code></pre></div>
+<figure class="highlight"><pre><code class="language-json" 
data-lang="json"><span class="err">flavor:</span><span class="w"> </span><span 
class="s2">"translatable"</span></code></pre></figure>
 
 <p>This causes a <code>CsvSchema</code> to be created with
 <code>flavor = TRANSLATABLE</code>,
@@ -1270,19 +1270,19 @@ but we have created a distinctive sub-ty
 
 <p>Here is the rule in its entirety:</p>
 
-<div class="highlight"><pre><code class="language-java" data-lang="java"><span 
class="kd">public</span> <span class="kd">class</span> <span 
class="nc">CsvProjectTableScanRule</span> <span class="kd">extends</span> <span 
class="n">RelOptRule</span> <span class="o">{</span>
+<figure class="highlight"><pre><code class="language-java" 
data-lang="java"><span class="kd">public</span> <span class="kd">class</span> 
<span class="nc">CsvProjectTableScanRule</span> <span class="kd">extends</span> 
<span class="n">RelOptRule</span> <span class="o">{</span>
   <span class="kd">public</span> <span class="kd">static</span> <span 
class="kd">final</span> <span class="n">CsvProjectTableScanRule</span> <span 
class="n">INSTANCE</span> <span class="o">=</span>
-      <span class="k">new</span> <span 
class="nf">CsvProjectTableScanRule</span><span class="o">();</span>
+      <span class="k">new</span> <span 
class="n">CsvProjectTableScanRule</span><span class="o">();</span>
 
-  <span class="kd">private</span> <span 
class="nf">CsvProjectTableScanRule</span><span class="o">()</span> <span 
class="o">{</span>
+  <span class="kd">private</span> <span 
class="n">CsvProjectTableScanRule</span><span class="o">()</span> <span 
class="o">{</span>
     <span class="kd">super</span><span class="o">(</span>
         <span class="n">operand</span><span class="o">(</span><span 
class="n">Project</span><span class="o">.</span><span 
class="na">class</span><span class="o">,</span>
             <span class="n">operand</span><span class="o">(</span><span 
class="n">CsvTableScan</span><span class="o">.</span><span 
class="na">class</span><span class="o">,</span> <span 
class="n">none</span><span class="o">())),</span>
-        <span class="s">&quot;CsvProjectTableScanRule&quot;</span><span 
class="o">);</span>
+        <span class="s">"CsvProjectTableScanRule"</span><span 
class="o">);</span>
   <span class="o">}</span>
 
   <span class="nd">@Override</span>
-  <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">onMatch</span><span class="o">(</span><span 
class="n">RelOptRuleCall</span> <span class="n">call</span><span 
class="o">)</span> <span class="o">{</span>
+  <span class="kd">public</span> <span class="kt">void</span> <span 
class="n">onMatch</span><span class="o">(</span><span 
class="n">RelOptRuleCall</span> <span class="n">call</span><span 
class="o">)</span> <span class="o">{</span>
     <span class="kd">final</span> <span class="n">Project</span> <span 
class="n">project</span> <span class="o">=</span> <span 
class="n">call</span><span class="o">.</span><span class="na">rel</span><span 
class="o">(</span><span class="mi">0</span><span class="o">);</span>
     <span class="kd">final</span> <span class="n">CsvTableScan</span> <span 
class="n">scan</span> <span class="o">=</span> <span class="n">call</span><span 
class="o">.</span><span class="na">rel</span><span class="o">(</span><span 
class="mi">1</span><span class="o">);</span>
     <span class="kt">int</span><span class="o">[]</span> <span 
class="n">fields</span> <span class="o">=</span> <span 
class="n">getProjectFields</span><span class="o">(</span><span 
class="n">project</span><span class="o">.</span><span 
class="na">getProjects</span><span class="o">());</span>
@@ -1291,14 +1291,14 @@ but we have created a distinctive sub-ty
       <span class="k">return</span><span class="o">;</span>
     <span class="o">}</span>
     <span class="n">call</span><span class="o">.</span><span 
class="na">transformTo</span><span class="o">(</span>
-        <span class="k">new</span> <span class="nf">CsvTableScan</span><span 
class="o">(</span>
+        <span class="k">new</span> <span class="n">CsvTableScan</span><span 
class="o">(</span>
             <span class="n">scan</span><span class="o">.</span><span 
class="na">getCluster</span><span class="o">(),</span>
             <span class="n">scan</span><span class="o">.</span><span 
class="na">getTable</span><span class="o">(),</span>
             <span class="n">scan</span><span class="o">.</span><span 
class="na">csvTable</span><span class="o">,</span>
             <span class="n">fields</span><span class="o">));</span>
   <span class="o">}</span>
 
-  <span class="kd">private</span> <span class="kt">int</span><span 
class="o">[]</span> <span class="nf">getProjectFields</span><span 
class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span 
class="n">RexNode</span><span class="o">&gt;</span> <span 
class="n">exps</span><span class="o">)</span> <span class="o">{</span>
+  <span class="kd">private</span> <span class="kt">int</span><span 
class="o">[]</span> <span class="n">getProjectFields</span><span 
class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span 
class="n">RexNode</span><span class="o">&gt;</span> <span 
class="n">exps</span><span class="o">)</span> <span class="o">{</span>
     <span class="kd">final</span> <span class="kt">int</span><span 
class="o">[]</span> <span class="n">fields</span> <span class="o">=</span> 
<span class="k">new</span> <span class="kt">int</span><span 
class="o">[</span><span class="n">exps</span><span class="o">.</span><span 
class="na">size</span><span class="o">()];</span>
     <span class="k">for</span> <span class="o">(</span><span 
class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span 
class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span 
class="o">&lt;</span> <span class="n">exps</span><span class="o">.</span><span 
class="na">size</span><span class="o">();</span> <span class="n">i</span><span 
class="o">++)</span> <span class="o">{</span>
       <span class="kd">final</span> <span class="n">RexNode</span> <span 
class="n">exp</span> <span class="o">=</span> <span class="n">exps</span><span 
class="o">.</span><span class="na">get</span><span class="o">(</span><span 
class="n">i</span><span class="o">);</span>
@@ -1310,7 +1310,7 @@ but we have created a distinctive sub-ty
     <span class="o">}</span>
     <span class="k">return</span> <span class="n">fields</span><span 
class="o">;</span>
   <span class="o">}</span>
-<span class="o">}</span></code></pre></div>
+<span class="o">}</span></code></pre></figure>
 
 <p>The constructor declares the pattern of relational expressions that will 
cause
 the rule to fire.</p>
@@ -1360,23 +1360,23 @@ operator statistics it is based upon. Bu
 
 <p>For example, this schema reads from a MySQL “foodmart” database:</p>
 
-<div class="highlight"><pre><code class="language-json" data-lang="json"><span 
class="p">{</span>
-  <span class="err">version:</span> <span class="err">&#39;1.0&#39;,</span>
-  <span class="err">defaultSchema:</span> <span 
class="err">&#39;FOODMART&#39;,</span>
-  <span class="err">schemas:</span> <span class="err">[</span>
-    <span class="err">{</span>
-      <span class="err">name:</span> <span 
class="err">&#39;FOODMART&#39;,</span>
-      <span class="err">type:</span> <span class="err">&#39;custom&#39;,</span>
-      <span class="err">factory:</span> <span 
class="err">&#39;org.apache.calcite.adapter.jdbc.JdbcSchema$Factory&#39;,</span>
-      <span class="err">operand:</span> <span class="err">{</span>
-        <span class="err">jdbcDriver:</span> <span 
class="err">&#39;com.mysql.jdbc.Driver&#39;,</span>
-        <span class="err">jdbcUrl:</span> <span 
class="err">&#39;jdbc:mysql://localhost/foodmart&#39;,</span>
-        <span class="err">jdbcUser:</span> <span 
class="err">&#39;foodmart&#39;,</span>
-        <span class="err">jdbcPassword:</span> <span 
class="err">&#39;foodmart&#39;</span>
-      <span class="p">}</span>
-    <span class="err">}</span>
-  <span class="err">]</span>
-<span class="err">}</span></code></pre></div>
+<figure class="highlight"><pre><code class="language-json" 
data-lang="json"><span class="p">{</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span 
class="err">'1.0',</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span 
class="err">'FOODMART',</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span 
class="err">[</span><span class="w">
+    </span><span class="err">{</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span 
class="err">'FOODMART',</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span 
class="err">'custom',</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span 
class="err">'org.apache.calcite.adapter.jdbc.JdbcSchema$Factory',</span><span 
class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span 
class="err">{</span><span class="w">
+        </span><span class="err">jdbcDriver:</span><span class="w"> 
</span><span class="err">'com.mysql.jdbc.Driver',</span><span class="w">
+        </span><span class="err">jdbcUrl:</span><span class="w"> </span><span 
class="err">'jdbc:mysql://localhost/foodmart',</span><span class="w">
+        </span><span class="err">jdbcUser:</span><span class="w"> </span><span 
class="err">'foodmart',</span><span class="w">
+        </span><span class="err">jdbcPassword:</span><span class="w"> 
</span><span class="err">'foodmart'</span><span class="w">
+      </span><span class="p">}</span><span class="w">
+    </span><span class="err">}</span><span class="w">
+  </span><span class="err">]</span><span class="w">
+</span><span class="err">}</span></code></pre></figure>
 
 <p>(The FoodMart database will be familiar to those of you who have used
 the Mondrian OLAP engine, because it is Mondrian’s main test data
@@ -1403,53 +1403,53 @@ those in-memory tables, effectively a ca
 <p>For example, the following model reads tables from a MySQL
 “foodmart” database:</p>
 
-<div class="highlight"><pre><code class="language-json" data-lang="json"><span 
class="p">{</span>
-  <span class="err">version:</span> <span class="err">&#39;1.0&#39;,</span>
-  <span class="err">defaultSchema:</span> <span 
class="err">&#39;FOODMART_CLONE&#39;,</span>
-  <span class="err">schemas:</span> <span class="err">[</span>
-    <span class="err">{</span>
-      <span class="err">name:</span> <span 
class="err">&#39;FOODMART_CLONE&#39;,</span>
-      <span class="err">type:</span> <span class="err">&#39;custom&#39;,</span>
-      <span class="err">factory:</span> <span 
class="err">&#39;org.apache.calcite.adapter.clone.CloneSchema$Factory&#39;,</span>
-      <span class="err">operand:</span> <span class="err">{</span>
-        <span class="err">jdbcDriver:</span> <span 
class="err">&#39;com.mysql.jdbc.Driver&#39;,</span>
-        <span class="err">jdbcUrl:</span> <span 
class="err">&#39;jdbc:mysql://localhost/foodmart&#39;,</span>
-        <span class="err">jdbcUser:</span> <span 
class="err">&#39;foodmart&#39;,</span>
-        <span class="err">jdbcPassword:</span> <span 
class="err">&#39;foodmart&#39;</span>
-      <span class="p">}</span>
-    <span class="err">}</span>
-  <span class="err">]</span>
-<span class="err">}</span></code></pre></div>
+<figure class="highlight"><pre><code class="language-json" 
data-lang="json"><span class="p">{</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span 
class="err">'1.0',</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span 
class="err">'FOODMART_CLONE',</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span 
class="err">[</span><span class="w">
+    </span><span class="err">{</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span 
class="err">'FOODMART_CLONE',</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span 
class="err">'custom',</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span 
class="err">'org.apache.calcite.adapter.clone.CloneSchema$Factory',</span><span 
class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span 
class="err">{</span><span class="w">
+        </span><span class="err">jdbcDriver:</span><span class="w"> 
</span><span class="err">'com.mysql.jdbc.Driver',</span><span class="w">
+        </span><span class="err">jdbcUrl:</span><span class="w"> </span><span 
class="err">'jdbc:mysql://localhost/foodmart',</span><span class="w">
+        </span><span class="err">jdbcUser:</span><span class="w"> </span><span 
class="err">'foodmart',</span><span class="w">
+        </span><span class="err">jdbcPassword:</span><span class="w"> 
</span><span class="err">'foodmart'</span><span class="w">
+      </span><span class="p">}</span><span class="w">
+    </span><span class="err">}</span><span class="w">
+  </span><span class="err">]</span><span class="w">
+</span><span class="err">}</span></code></pre></figure>
 
 <p>Another technique is to build a clone schema on top of an existing
 schema. You use the <code>source</code> property to reference a schema
 defined earlier in the model, like this:</p>
 
-<div class="highlight"><pre><code class="language-json" data-lang="json"><span 
class="p">{</span>
-  <span class="err">version:</span> <span class="err">&#39;1.0&#39;,</span>
-  <span class="err">defaultSchema:</span> <span 
class="err">&#39;FOODMART_CLONE&#39;,</span>
-  <span class="err">schemas:</span> <span class="err">[</span>
-    <span class="err">{</span>
-      <span class="err">name:</span> <span 
class="err">&#39;FOODMART&#39;,</span>
-      <span class="err">type:</span> <span class="err">&#39;custom&#39;,</span>
-      <span class="err">factory:</span> <span 
class="err">&#39;org.apache.calcite.adapter.jdbc.JdbcSchema$Factory&#39;,</span>
-      <span class="err">operand:</span> <span class="err">{</span>
-        <span class="err">jdbcDriver:</span> <span 
class="err">&#39;com.mysql.jdbc.Driver&#39;,</span>
-        <span class="err">jdbcUrl:</span> <span 
class="err">&#39;jdbc:mysql://localhost/foodmart&#39;,</span>
-        <span class="err">jdbcUser:</span> <span 
class="err">&#39;foodmart&#39;,</span>
-        <span class="err">jdbcPassword:</span> <span 
class="err">&#39;foodmart&#39;</span>
-      <span class="p">}</span>
-    <span class="err">},</span>
-    <span class="p">{</span>
-      <span class="err">name:</span> <span 
class="err">&#39;FOODMART_CLONE&#39;,</span>
-      <span class="err">type:</span> <span class="err">&#39;custom&#39;,</span>
-      <span class="err">factory:</span> <span 
class="err">&#39;org.apache.calcite.adapter.clone.CloneSchema$Factory&#39;,</span>
-      <span class="err">operand:</span> <span class="err">{</span>
-        <span class="err">source:</span> <span 
class="err">&#39;FOODMART&#39;</span>
-      <span class="p">}</span>
-    <span class="err">}</span>
-  <span class="err">]</span>
-<span class="err">}</span></code></pre></div>
+<figure class="highlight"><pre><code class="language-json" 
data-lang="json"><span class="p">{</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span 
class="err">'1.0',</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span 
class="err">'FOODMART_CLONE',</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span 
class="err">[</span><span class="w">
+    </span><span class="err">{</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span 
class="err">'FOODMART',</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span 
class="err">'custom',</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span 
class="err">'org.apache.calcite.adapter.jdbc.JdbcSchema$Factory',</span><span 
class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span 
class="err">{</span><span class="w">
+        </span><span class="err">jdbcDriver:</span><span class="w"> 
</span><span class="err">'com.mysql.jdbc.Driver',</span><span class="w">
+        </span><span class="err">jdbcUrl:</span><span class="w"> </span><span 
class="err">'jdbc:mysql://localhost/foodmart',</span><span class="w">
+        </span><span class="err">jdbcUser:</span><span class="w"> </span><span 
class="err">'foodmart',</span><span class="w">
+        </span><span class="err">jdbcPassword:</span><span class="w"> 
</span><span class="err">'foodmart'</span><span class="w">
+      </span><span class="p">}</span><span class="w">
+    </span><span class="err">},</span><span class="w">
+    </span><span class="p">{</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span 
class="err">'FOODMART_CLONE',</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span 
class="err">'custom',</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span 
class="err">'org.apache.calcite.adapter.clone.CloneSchema$Factory',</span><span 
class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span 
class="err">{</span><span class="w">
+        </span><span class="err">source:</span><span class="w"> </span><span 
class="err">'FOODMART'</span><span class="w">
+      </span><span class="p">}</span><span class="w">
+    </span><span class="err">}</span><span class="w">
+  </span><span class="err">]</span><span class="w">
+</span><span class="err">}</span></code></pre></figure>
 
 <p>You can use this approach to create a clone schema on any type of
 schema, not just JDBC.</p>
@@ -1549,74 +1549,50 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/index.html">Background</a></li>
       
@@ -1627,116 +1603,78 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class="current"><a href="/docs/tutorial.html">Tutorial</a></li>
       
@@ -1747,20 +1685,14 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/algebra.html">Algebra</a></li>
       
@@ -1779,14 +1711,10 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
       <li class=""><a href="/docs/adapter.html">Adapters</a></li>
       
@@ -1797,104 +1725,70 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/stream.html">Streaming</a></li>
       
@@ -1905,80 +1799,54 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/lattice.html">Lattices</a></li>
       
@@ -1997,38 +1865,26 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/avatica_overview.html">Overview</a></li>
       
@@ -2039,50 +1895,34 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/avatica_roadmap.html">Roadmap</a></li>
       
@@ -2093,32 +1933,22 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/avatica_json_reference.html">JSON 
Reference</a></li>
       
@@ -2129,44 +1959,30 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/avatica_protobuf_reference.html">Protobuf 
Reference</a></li>
       
@@ -2185,98 +2001,66 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/reference.html">SQL language</a></li>
       
@@ -2287,86 +2071,58 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/model.html">JSON models</a></li>
       
@@ -2377,68 +2133,46 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/howto.html">HOWTO</a></li>
       
@@ -2457,62 +2191,42 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/history.html">History</a></li>
       
@@ -2523,92 +2237,62 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
       <li class=""><a href="/docs/powered_by.html">Powered By Calcite</a></li>
       
@@ -2619,143 +2303,161 @@ relational operators?</p>
   
 
   
-    
-  
 
   
     
     
-      
-    
     
   
     
     
-      
-    
     
   
     
     
-      
-    
     
-      <li class=""><a href="/docs/api.html">API</a></li>
-      
-
-
-  
-  
-  
-
   
     
-  
-
-  
     
     
-      
+  
+    
     
     
   
     
     
-      
-    
     
   
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
+    
+  
+    
     
     
   
+
+
+  
+  
+  
+
+  
+
+  
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
+    
+  
+    
     
     
   
     
     
-      
     
+  
     
-      <li class=""><a href="/docs/testapi.html">Test API</a></li>
-      
+    
+    
+  
 
 
 </ul>

Modified: calcite/site/downloads/index.html
URL: 
http://svn.apache.org/viewvc/calcite/site/downloads/index.html?rev=1739659&r1=1739658&r2=1739659&view=diff
==============================================================================
--- calcite/site/downloads/index.html (original)
+++ calcite/site/downloads/index.html Sun Apr 17 21:26:04 2016
@@ -4,7 +4,7 @@
   <meta charset="UTF-8">
   <title>Downloads</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v2.4.0">
+  <meta name="generator" content="Jekyll v3.0.3">
   <link rel="stylesheet" 
href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -194,18 +194,18 @@ succeed.</p>
 
 <h1 id="maven-artifacts">Maven artifacts</h1>
 
-<p>Add the following to the dependencies section of your <code>pom.xml</code> 
file:</p>
+<p>Add the following to the dependencies section of your <code 
class="highlighter-rouge">pom.xml</code> file:</p>
 
-<div class="highlight"><pre><code class="language-xml" data-lang="xml"><span 
class="nt">&lt;dependencies&gt;</span>
+<figure class="highlight"><pre><code class="language-xml" 
data-lang="xml"><span class="nt">&lt;dependencies&gt;</span>
   <span class="nt">&lt;dependency&gt;</span>
     <span class="nt">&lt;groupId&gt;</span>org.apache.calcite<span 
class="nt">&lt;/groupId&gt;</span>
     <span class="nt">&lt;artifactId&gt;</span>calcite-core<span 
class="nt">&lt;/artifactId&gt;</span>
     <span class="nt">&lt;version&gt;</span>1.7.0<span 
class="nt">&lt;/version&gt;</span>
   <span class="nt">&lt;/dependency&gt;</span>
-<span class="nt">&lt;/dependencies&gt;</span></code></pre></div>
+<span class="nt">&lt;/dependencies&gt;</span></code></pre></figure>
 
-<p>Also include <code>&lt;dependency&gt;</code> elements for any extension 
modules you
-need: <code>calcite-mongodb</code>, <code>calcite-spark</code>, 
<code>calcite-splunk</code>, and so
+<p>Also include <code class="highlighter-rouge">&lt;dependency&gt;</code> 
elements for any extension modules you
+need: <code class="highlighter-rouge">calcite-mongodb</code>, <code 
class="highlighter-rouge">calcite-spark</code>, <code 
class="highlighter-rouge">calcite-splunk</code>, and so
 forth.</p>
 
       </article>



Reply via email to