You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by el...@apache.org on 2016/04/17 23:26:05 UTC
svn commit: r1739659 [15/18] - in /calcite/site: ./ avatica/
avatica/community/ avatica/develop/ avatica/docs/ avatica/downloads/
avatica/news/ avatica/news/2016/03/03/separate-project/
avatica/news/2016/03/18/release-1.7.1/ avatica/news/releases/ comm...
Modified: calcite/site/docs/reference.html
URL: http://svn.apache.org/viewvc/calcite/site/docs/reference.html?rev=1739659&r1=1739658&r2=1739659&view=diff
==============================================================================
--- calcite/site/docs/reference.html (original)
+++ calcite/site/docs/reference.html Sun Apr 17 21:26:04 2016
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<title>SQL language</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">
@@ -816,7 +816,7 @@
<p>SQL grammar in <a href="http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form">BNF</a>-like
form.</p>
-<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">statement</span><span class="p">:</span>
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">statement</span><span class="p">:</span>
<span class="n">setStatement</span>
<span class="o">|</span> <span class="n">resetStatement</span>
<span class="o">|</span> <span class="k">explain</span>
@@ -827,7 +827,7 @@ form.</p>
<span class="o">|</span> <span class="n">query</span>
<span class="n">setStatement</span><span class="p">:</span>
- <span class="p">[</span> <span class="k">ALTER</span> <span class="p">(</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="p">)</span> <span class="p">]</span> <span class="k">SET</span> <span class="n">identifier</span> <span class="s1">'='</span> <span class="n">expression</span>
+ <span class="p">[</span> <span class="k">ALTER</span> <span class="p">(</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="p">)</span> <span class="p">]</span> <span class="k">SET</span> <span class="n">identifier</span> <span class="s1">'='</span> <span class="n">expression</span>
<span class="n">resetStatement</span><span class="p">:</span>
<span class="p">[</span> <span class="k">ALTER</span> <span class="p">(</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="p">)</span> <span class="p">]</span> <span class="k">RESET</span> <span class="n">identifier</span>
@@ -841,7 +841,7 @@ form.</p>
<span class="k">insert</span><span class="p">:</span>
<span class="p">(</span> <span class="k">INSERT</span> <span class="o">|</span> <span class="n">UPSERT</span> <span class="p">)</span> <span class="k">INTO</span> <span class="n">tablePrimary</span>
- <span class="p">[</span> <span class="s1">'('</span> <span class="k">column</span> <span class="p">[,</span> <span class="k">column</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
+ <span class="p">[</span> <span class="s1">'('</span> <span class="k">column</span> <span class="p">[,</span> <span class="k">column</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
<span class="n">query</span>
<span class="k">update</span><span class="p">:</span>
@@ -850,14 +850,14 @@ form.</p>
<span class="p">[</span> <span class="k">WHERE</span> <span class="n">booleanExpression</span> <span class="p">]</span>
<span class="n">assign</span><span class="p">:</span>
- <span class="n">identifier</span> <span class="s1">'='</span> <span class="n">expression</span>
+ <span class="n">identifier</span> <span class="s1">'='</span> <span class="n">expression</span>
<span class="n">merge</span><span class="p">:</span>
<span class="n">MERGE</span> <span class="k">INTO</span> <span class="n">tablePrimary</span> <span class="p">[</span> <span class="p">[</span> <span class="k">AS</span> <span class="p">]</span> <span class="k">alias</span> <span class="p">]</span>
<span class="k">USING</span> <span class="n">tablePrimary</span>
<span class="k">ON</span> <span class="n">booleanExpression</span>
<span class="p">[</span> <span class="k">WHEN</span> <span class="n">MATCHED</span> <span class="k">THEN</span> <span class="k">UPDATE</span> <span class="k">SET</span> <span class="n">assign</span> <span class="p">[,</span> <span class="n">assign</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
- <span class="p">[</span> <span class="k">WHEN</span> <span class="k">NOT</span> <span class="n">MATCHED</span> <span class="k">THEN</span> <span class="k">INSERT</span> <span class="k">VALUES</span> <span class="s1">'('</span> <span class="n">value</span> <span class="p">[</span> <span class="p">,</span> <span class="n">value</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
+ <span class="p">[</span> <span class="k">WHEN</span> <span class="k">NOT</span> <span class="n">MATCHED</span> <span class="k">THEN</span> <span class="k">INSERT</span> <span class="k">VALUES</span> <span class="s1">'('</span> <span class="n">value</span> <span class="p">[</span> <span class="p">,</span> <span class="n">value</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
<span class="k">delete</span><span class="p">:</span>
<span class="k">DELETE</span> <span class="k">FROM</span> <span class="n">tablePrimary</span> <span class="p">[</span> <span class="p">[</span> <span class="k">AS</span> <span class="p">]</span> <span class="k">alias</span> <span class="p">]</span>
@@ -878,8 +878,8 @@ form.</p>
<span class="n">withItem</span><span class="p">:</span>
<span class="n">name</span>
- <span class="p">[</span> <span class="s1">'('</span> <span class="k">column</span> <span class="p">[,</span> <span class="k">column</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
- <span class="k">AS</span> <span class="s1">'('</span> <span class="n">query</span> <span class="s1">')'</span>
+ <span class="p">[</span> <span class="s1">'('</span> <span class="k">column</span> <span class="p">[,</span> <span class="k">column</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
+ <span class="k">AS</span> <span class="s1">'('</span> <span class="n">query</span> <span class="s1">')'</span>
<span class="n">orderItem</span><span class="p">:</span>
<span class="n">expression</span> <span class="p">[</span> <span class="k">ASC</span> <span class="o">|</span> <span class="k">DESC</span> <span class="p">]</span> <span class="p">[</span> <span class="n">NULLS</span> <span class="k">FIRST</span> <span class="o">|</span> <span class="n">NULLS</span> <span class="k">LAST</span> <span class="p">]</span>
@@ -903,30 +903,30 @@ form.</p>
<span class="n">joinCondition</span><span class="p">:</span>
<span class="k">ON</span> <span class="n">booleanExpression</span>
- <span class="o">|</span> <span class="k">USING</span> <span class="s1">'('</span> <span class="k">column</span> <span class="p">[,</span> <span class="k">column</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
+ <span class="o">|</span> <span class="k">USING</span> <span class="s1">'('</span> <span class="k">column</span> <span class="p">[,</span> <span class="k">column</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
<span class="n">tableReference</span><span class="p">:</span>
<span class="p">[</span> <span class="k">LATERAL</span> <span class="p">]</span>
<span class="n">tablePrimary</span>
- <span class="p">[</span> <span class="p">[</span> <span class="k">AS</span> <span class="p">]</span> <span class="k">alias</span> <span class="p">[</span> <span class="s1">'('</span> <span class="n">columnAlias</span> <span class="p">[,</span> <span class="n">columnAlias</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span> <span class="p">]</span>
+ <span class="p">[</span> <span class="p">[</span> <span class="k">AS</span> <span class="p">]</span> <span class="k">alias</span> <span class="p">[</span> <span class="s1">'('</span> <span class="n">columnAlias</span> <span class="p">[,</span> <span class="n">columnAlias</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span> <span class="p">]</span>
<span class="n">tablePrimary</span><span class="p">:</span>
<span class="p">[</span> <span class="k">TABLE</span> <span class="p">]</span> <span class="p">[</span> <span class="p">[</span> <span class="n">catalogName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">schemaName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">tableName</span>
- <span class="o">|</span> <span class="s1">'('</span> <span class="n">query</span> <span class="s1">')'</span>
+ <span class="o">|</span> <span class="s1">'('</span> <span class="n">query</span> <span class="s1">')'</span>
<span class="o">|</span> <span class="k">values</span>
- <span class="o">|</span> <span class="k">UNNEST</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="s1">')'</span> <span class="p">[</span> <span class="k">WITH</span> <span class="k">ORDINALITY</span> <span class="p">]</span>
- <span class="o">|</span> <span class="k">TABLE</span> <span class="s1">'('</span> <span class="p">[</span> <span class="k">SPECIFIC</span> <span class="p">]</span> <span class="n">functionName</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="s1">')'</span>
+ <span class="o">|</span> <span class="k">UNNEST</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="s1">')'</span> <span class="p">[</span> <span class="k">WITH</span> <span class="k">ORDINALITY</span> <span class="p">]</span>
+ <span class="o">|</span> <span class="k">TABLE</span> <span class="s1">'('</span> <span class="p">[</span> <span class="k">SPECIFIC</span> <span class="p">]</span> <span class="n">functionName</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="s1">')'</span>
<span class="k">values</span><span class="p">:</span>
<span class="k">VALUES</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span>
<span class="n">groupItem</span><span class="p">:</span>
<span class="n">expression</span>
- <span class="o">|</span> <span class="s1">'('</span> <span class="s1">')'</span>
- <span class="o">|</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
- <span class="o">|</span> <span class="k">CUBE</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
- <span class="o">|</span> <span class="k">ROLLUP</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
- <span class="o">|</span> <span class="k">GROUPING</span> <span class="k">SETS</span> <span class="s1">'('</span> <span class="n">groupItem</span> <span class="p">[,</span> <span class="n">groupItem</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
+ <span class="o">|</span> <span class="s1">'('</span> <span class="s1">')'</span>
+ <span class="o">|</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
+ <span class="o">|</span> <span class="k">CUBE</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
+ <span class="o">|</span> <span class="k">ROLLUP</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
+ <span class="o">|</span> <span class="k">GROUPING</span> <span class="k">SETS</span> <span class="s1">'('</span> <span class="n">groupItem</span> <span class="p">[,</span> <span class="n">groupItem</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
<span class="n">windowRef</span><span class="p">:</span>
<span class="n">windowName</span>
@@ -934,14 +934,14 @@ form.</p>
<span class="n">windowSpec</span><span class="p">:</span>
<span class="p">[</span> <span class="n">windowName</span> <span class="p">]</span>
- <span class="s1">'('</span>
+ <span class="s1">'('</span>
<span class="p">[</span> <span class="k">ORDER</span> <span class="k">BY</span> <span class="n">orderItem</span> <span class="p">[,</span> <span class="n">orderItem</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
<span class="p">[</span> <span class="n">PARTITION</span> <span class="k">BY</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
<span class="p">[</span>
<span class="n">RANGE</span> <span class="n">numericOrIntervalExpression</span> <span class="err">{</span> <span class="n">PRECEDING</span> <span class="o">|</span> <span class="n">FOLLOWING</span> <span class="err">}</span>
<span class="o">|</span> <span class="k">ROWS</span> <span class="n">numericExpression</span> <span class="err">{</span> <span class="n">PRECEDING</span> <span class="o">|</span> <span class="n">FOLLOWING</span> <span class="err">}</span>
<span class="p">]</span>
- <span class="s1">')'</span></code></pre></div>
+ <span class="s1">')'</span></code></pre></figure>
<p>In <em>merge</em>, at least one of the WHEN MATCHED and WHEN NOT MATCHED clauses must
be present.</p>
@@ -1526,11 +1526,11 @@ elements used in a SQL query.</p>
only contain letters, digits, and underscores. They are implicitly
converted to upper case.</p>
-<p>Quoted identifiers, such as <code>"Employee Name"</code>, start and end with
+<p>Quoted identifiers, such as <code class="highlighter-rouge">"Employee Name"</code>, start and end with
double quotes. They may contain virtually any character, including
spaces and other punctuation. If you wish to include a double quote
in an identifier, use another double quote to escape it, like this:
-<code>"An employee called ""Fred""."</code>.</p>
+<code class="highlighter-rouge">"An employee called ""Fred""."</code>.</p>
<p>In Calcite, matching identifiers to the name of the referenced object is
case-sensitive. But remember that unquoted identifiers are implicitly
@@ -1651,8 +1651,8 @@ name will have been converted to upper c
<p>Where:</p>
-<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">timeUnit</span><span class="p">:</span>
- <span class="k">YEAR</span> <span class="o">|</span> <span class="k">MONTH</span> <span class="o">|</span> <span class="k">DAY</span> <span class="o">|</span> <span class="n">HOUR</span> <span class="o">|</span> <span class="k">MINUTE</span> <span class="o">|</span> <span class="k">SECOND</span></code></pre></div>
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">timeUnit</span><span class="p">:</span>
+ <span class="k">YEAR</span> <span class="o">|</span> <span class="k">MONTH</span> <span class="o">|</span> <span class="k">DAY</span> <span class="o">|</span> <span class="n">HOUR</span> <span class="o">|</span> <span class="k">MINUTE</span> <span class="o">|</span> <span class="k">SECOND</span></code></pre></figure>
<p>Note:</p>
@@ -2370,19 +2370,19 @@ the user or application to supply a time
<tbody>
<tr>
<td style="text-align: left">{fn CURDATE()}</td>
- <td style="text-align: left">Equivalent to <code>CURRENT_DATE</code></td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">CURRENT_DATE</code></td>
</tr>
<tr>
<td style="text-align: left">{fn CURTIME()}</td>
- <td style="text-align: left">Equivalent to <code>LOCALTIME</code></td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">LOCALTIME</code></td>
</tr>
<tr>
<td style="text-align: left">{fn NOW()}</td>
- <td style="text-align: left">Equivalent to <code>LOCALTIMESTAMP</code></td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">LOCALTIMESTAMP</code></td>
</tr>
<tr>
<td style="text-align: left">{fn QUARTER(date)}</td>
- <td style="text-align: left">Equivalent to <code>EXTRACT(QUARTER FROM date)</code>. Returns an integer between 1 and 4.</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(QUARTER FROM date)</code>. Returns an integer between 1 and 4.</td>
</tr>
<tr>
<td style="text-align: left">{fn TIMESTAMPADD(timeUnit, count, timestamp)}</td>
@@ -2426,14 +2426,14 @@ the user or application to supply a time
<p>Syntax:</p>
-<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">aggregateCall</span><span class="p">:</span>
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">aggregateCall</span><span class="p">:</span>
<span class="n">agg</span><span class="p">(</span> <span class="p">[</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="n">value</span> <span class="p">[,</span> <span class="n">value</span><span class="p">]</span><span class="o">*</span> <span class="p">)</span> <span class="p">[</span> <span class="n">FILTER</span> <span class="p">(</span> <span class="k">WHERE</span> <span class="n">condition</span> <span class="p">)</span> <span class="p">]</span>
- <span class="o">|</span> <span class="n">agg</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="p">[</span> <span class="n">FILTER</span> <span class="p">(</span> <span class="k">WHERE</span> <span class="n">condition</span> <span class="p">)</span> <span class="p">]</span></code></pre></div>
+ <span class="o">|</span> <span class="n">agg</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="p">[</span> <span class="n">FILTER</span> <span class="p">(</span> <span class="k">WHERE</span> <span class="n">condition</span> <span class="p">)</span> <span class="p">]</span></code></pre></figure>
-<p>If <code>FILTER</code> is present, the aggregate function only considers rows for which
+<p>If <code class="highlighter-rouge">FILTER</code> is present, the aggregate function only considers rows for which
<em>condition</em> evaluates to TRUE.</p>
-<p>If <code>DISTINCT</code> is present, duplicate argument values are eliminated before being
+<p>If <code class="highlighter-rouge">DISTINCT</code> is present, duplicate argument values are eliminated before being
passed to the aggregate function.</p>
<table>
@@ -2633,9 +2633,9 @@ varying from convenient to efficient.</p
<p>To implement a <em>scalar function</em>, there are 3 options:</p>
<ul>
- <li>Create a class with a public static <code>eval</code> method,
+ <li>Create a class with a public static <code class="highlighter-rouge">eval</code> method,
and register the class;</li>
- <li>Create a class with a public non-static <code>eval</code> method,
+ <li>Create a class with a public non-static <code class="highlighter-rouge">eval</code> method,
and a public constructor with no arguments,
and register the class;</li>
<li>Create a class with one or more public static methods,
@@ -2645,14 +2645,14 @@ and register each class/method combinati
<p>To implement an <em>aggregate function</em>, there are 2 options:</p>
<ul>
- <li>Create a class with public static <code>init</code>, <code>add</code> and <code>result</code> methods,
+ <li>Create a class with public static <code class="highlighter-rouge">init</code>, <code class="highlighter-rouge">add</code> and <code class="highlighter-rouge">result</code> methods,
and register the class;</li>
- <li>Create a class with public non-static <code>init</code>, <code>add</code> and <code>result</code> methods,
+ <li>Create a class with public non-static <code class="highlighter-rouge">init</code>, <code class="highlighter-rouge">add</code> and <code class="highlighter-rouge">result</code> methods,
and a public constructor with no arguments,
and register the class.</li>
</ul>
-<p>Optionally, add a public <code>merge</code> method to the class; this allows Calcite to
+<p>Optionally, add a public <code class="highlighter-rouge">merge</code> method to the class; this allows Calcite to
generate code that merges sub-totals.</p>
<p>Optionally, make your class implement the
@@ -2663,12 +2663,12 @@ of aggregation, roll up from summary tab
<p>To implement a <em>table function</em>, there are 3 options:</p>
<ul>
- <li>Create a class with a static <code>eval</code> method that returns
+ <li>Create a class with a static <code class="highlighter-rouge">eval</code> method that returns
<a href="/apidocs/org/apache/calcite/schema/ScannableTable.html">ScannableTable</a>
or
<a href="/apidocs/org/apache/calcite/schema/QueryableTable.html">QueryableTable</a>,
and register the class;</li>
- <li>Create a class with a non-static <code>eval</code> method that returns
+ <li>Create a class with a non-static <code class="highlighter-rouge">eval</code> method that returns
<a href="/apidocs/org/apache/calcite/schema/ScannableTable.html">ScannableTable</a>
or
<a href="/apidocs/org/apache/calcite/schema/QueryableTable.html">QueryableTable</a>,
@@ -2683,10 +2683,10 @@ and register each class/method combinati
<p>To implement a <em>table macro</em>, there are 3 options:</p>
<ul>
- <li>Create a class with a static <code>eval</code> method that returns
+ <li>Create a class with a static <code class="highlighter-rouge">eval</code> method that returns
<a href="/apidocs/org/apache/calcite/schema/TranslatableTable.html">TranslatableTable</a>,
and register the class;</li>
- <li>Create a class with a non-static <code>eval</code> method that returns
+ <li>Create a class with a non-static <code class="highlighter-rouge">eval</code> method that returns
<a href="/apidocs/org/apache/calcite/schema/TranslatableTable.html">TranslatableTable</a>,
and register the class;</li>
<li>Create a class with one or more public static methods that return
@@ -2710,47 +2710,47 @@ and especially if you want to add more p
and to define parameters which are optional (that is, have a default value
that is used if they are not specified).</p>
-<p>Suppose you have a function <code>f</code>, declared as in the following pseudo syntax:</p>
+<p>Suppose you have a function <code class="highlighter-rouge">f</code>, declared as in the following pseudo syntax:</p>
-<p><code>FUNCTION f(
+<p><code class="highlighter-rouge">FUNCTION f(
INTEGER a,
INTEGER b DEFAULT NULL,
INTEGER c,
INTEGER d DEFAULT NULL,
INTEGER e DEFAULT NULL) RETURNS INTEGER</code></p>
-<p>All of the functionâs parameters have names, and parameters <code>b</code>, <code>d</code> and <code>e</code>
-have a default value of <code>NULL</code> and are therefore optional.
-(In Calcite, <code>NULL</code> is the only allowable default value for optional parameters;
+<p>All of the functionâs parameters have names, and parameters <code class="highlighter-rouge">b</code>, <code class="highlighter-rouge">d</code> and <code class="highlighter-rouge">e</code>
+have a default value of <code class="highlighter-rouge">NULL</code> and are therefore optional.
+(In Calcite, <code class="highlighter-rouge">NULL</code> is the only allowable default value for optional parameters;
this may change
<a href="https://issues.apache.org/jira/browse/CALCITE-947">in future</a>.)</p>
<p>When calling a function with optional parameters,
-you can omit optional arguments at the end of the list, or use the <code>DEFAULT</code>
+you can omit optional arguments at the end of the list, or use the <code class="highlighter-rouge">DEFAULT</code>
keyword for any optional arguments.
Here are some examples:</p>
<ul>
- <li><code>f(1, 2, 3, 4, 5)</code> provides a value to each parameter, in order;</li>
- <li><code>f(1, 2, 3, 4)</code> omits <code>e</code>, which gets its default value, <code>NULL</code>;</li>
- <li><code>f(1, DEFAULT, 3)</code> omits <code>d</code> and <code>e</code>,
-and specifies to use the default value of <code>b</code>;</li>
- <li><code>f(1, DEFAULT, 3, DEFAULT, DEFAULT)</code> has the same effect as the previous
+ <li><code class="highlighter-rouge">f(1, 2, 3, 4, 5)</code> provides a value to each parameter, in order;</li>
+ <li><code class="highlighter-rouge">f(1, 2, 3, 4)</code> omits <code class="highlighter-rouge">e</code>, which gets its default value, <code class="highlighter-rouge">NULL</code>;</li>
+ <li><code class="highlighter-rouge">f(1, DEFAULT, 3)</code> omits <code class="highlighter-rouge">d</code> and <code class="highlighter-rouge">e</code>,
+and specifies to use the default value of <code class="highlighter-rouge">b</code>;</li>
+ <li><code class="highlighter-rouge">f(1, DEFAULT, 3, DEFAULT, DEFAULT)</code> has the same effect as the previous
example;</li>
- <li><code>f(1, 2)</code> is not legal, because <code>c</code> is not optional;</li>
- <li><code>f(1, 2, DEFAULT, 4)</code> is not legal, because <code>c</code> is not optional.</li>
+ <li><code class="highlighter-rouge">f(1, 2)</code> is not legal, because <code class="highlighter-rouge">c</code> is not optional;</li>
+ <li><code class="highlighter-rouge">f(1, 2, DEFAULT, 4)</code> is not legal, because <code class="highlighter-rouge">c</code> is not optional.</li>
</ul>
-<p>You can specify arguments by name using the <code>=></code> syntax.
+<p>You can specify arguments by name using the <code class="highlighter-rouge">=></code> syntax.
If one argument is named, they all must be.
Arguments may be in any other, but must not specify any argument more than once,
and you need to provide a value for every parameter which is not optional.
Here are some examples:</p>
<ul>
- <li><code>f(c => 3, d => 1, a => 0)</code> is equivalent to <code>f(0, NULL, 3, 1, NULL)</code>;</li>
- <li><code>f(c => 3, d => 1)</code> is not legal, because you have not specified a value for
-<code>a</code> and <code>a</code> is not optional.</li>
+ <li><code class="highlighter-rouge">f(c => 3, d => 1, a => 0)</code> is equivalent to <code class="highlighter-rouge">f(0, NULL, 3, 1, NULL)</code>;</li>
+ <li><code class="highlighter-rouge">f(c => 3, d => 1)</code> is not legal, because you have not specified a value for
+<code class="highlighter-rouge">a</code> and <code class="highlighter-rouge">a</code> is not optional.</li>
</ul>
@@ -2827,74 +2827,50 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<li class=""><a href="/docs/index.html">Background</a></li>
@@ -2905,116 +2881,78 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<li class=""><a href="/docs/tutorial.html">Tutorial</a></li>
@@ -3025,20 +2963,14 @@ Here are some examples:</p>
-
-
-
-
-
-
<li class=""><a href="/docs/algebra.html">Algebra</a></li>
@@ -3057,14 +2989,10 @@ Here are some examples:</p>
-
-
-
-
<li class=""><a href="/docs/adapter.html">Adapters</a></li>
@@ -3075,104 +3003,70 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<li class=""><a href="/docs/stream.html">Streaming</a></li>
@@ -3183,80 +3077,54 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<li class=""><a href="/docs/lattice.html">Lattices</a></li>
@@ -3275,38 +3143,26 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
-
-
<li class=""><a href="/docs/avatica_overview.html">Overview</a></li>
@@ -3317,50 +3173,34 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<li class=""><a href="/docs/avatica_roadmap.html">Roadmap</a></li>
@@ -3371,32 +3211,22 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
<li class=""><a href="/docs/avatica_json_reference.html">JSON Reference</a></li>
@@ -3407,44 +3237,30 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<li class=""><a href="/docs/avatica_protobuf_reference.html">Protobuf Reference</a></li>
@@ -3463,98 +3279,66 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<li class="current"><a href="/docs/reference.html">SQL language</a></li>
@@ -3565,86 +3349,58 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<li class=""><a href="/docs/model.html">JSON models</a></li>
@@ -3655,68 +3411,46 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<li class=""><a href="/docs/howto.html">HOWTO</a></li>
@@ -3735,62 +3469,42 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<li class=""><a href="/docs/history.html">History</a></li>
@@ -3801,92 +3515,62 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<li class=""><a href="/docs/powered_by.html">Powered By Calcite</a></li>
@@ -3897,143 +3581,161 @@ Here are some examples:</p>
-
-
-
-
-
-
-
-
- <li class=""><a href="/docs/api.html">API</a></li>
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
- <li class=""><a href="/docs/testapi.html">Test API</a></li>
-
+
+
+
</ul>