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>
