This is an automated email from the ASF dual-hosted git repository.

asf-ci-deploy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite-site.git


The following commit(s) were added to refs/heads/main by this push:
     new 422172b91 Website deployed from 
calcite@1263e1926de21b0e0c1786e534b096d9b83666d1
422172b91 is described below

commit 422172b91bce4f1836441b8b1282dbaa414ca709
Author: libenchao <[email protected]>
AuthorDate: Fri Nov 10 11:29:00 2023 +0000

    Website deployed from calcite@1263e1926de21b0e0c1786e534b096d9b83666d1
---
 docs/algebra.html        |   8 +-
 docs/history.html        |   4 +-
 docs/innodb_adapter.html |   6 +-
 docs/reference.html      | 232 +++++++++++++++++++++++++++++++++++++++--------
 4 files changed, 202 insertions(+), 48 deletions(-)

diff --git a/docs/algebra.html b/docs/algebra.html
index 1bfc13255..a6dfe83e4 100644
--- a/docs/algebra.html
+++ b/docs/algebra.html
@@ -339,10 +339,6 @@ A SQL recursive query, e.g. this one that generates the 
sequence 1, 2, 3, …10:
       LogicalFilter(condition=[&lt;($0, 10)])
         LogicalTableScan(table=[[aux]])</code></pre></figure>
 
-<p>Note that there is no support for recursive queries in the SQL layer yet
-(<a href="https://issues.apache.org/jira/browse/CALCITE-129";>CALCITE-129</a>);
-the <code class="language-plaintext highlighter-rouge">WITH RECURSIVE</code> 
query above is only for illustrative purposes.</p>
-
 <h3 id="api-summary">API summary</h3>
 
 <h4 id="relational-operators">Relational operators</h4>
@@ -490,6 +486,10 @@ return the <code class="language-plaintext 
highlighter-rouge">RelBuilder</code>.
       <td style="text-align: left"><code class="language-plaintext 
highlighter-rouge">repeatUnion(tableName, all [, n])</code></td>
       <td style="text-align: left">Creates a <a 
href="/javadocAggregate/org/apache/calcite/rel/core/RepeatUnion.html">RepeatUnion</a>
 associated to a <a 
href="/javadocAggregate/org/apache/calcite/schema/TransientTable.html">TransientTable</a>
 of the two most recent relational expressions, with <code 
class="language-plaintext highlighter-rouge">n</code> maximum number of 
iterations (default -1, i.e. no limit).</td>
     </tr>
+    <tr>
+      <td style="text-align: left"><code class="language-plaintext 
highlighter-rouge">sample(bernoulli, rate [, repeatableSeed])</code></td>
+      <td style="text-align: left">Creates a <a 
href="/javadocAggregate/org/apache/calcite/rel/core/Sample.html">sample</a> of 
at given sampling rate.</td>
+    </tr>
     <tr>
       <td style="text-align: left"><code class="language-plaintext 
highlighter-rouge">snapshot(period)</code></td>
       <td style="text-align: left">Creates a <a 
href="/javadocAggregate/org/apache/calcite/rel/core/Snapshot.html">Snapshot</a> 
of the given snapshot period.</td>
diff --git a/docs/history.html b/docs/history.html
index 27d35e813..731ed5b45 100644
--- a/docs/history.html
+++ b/docs/history.html
@@ -100,7 +100,7 @@ z.
 
 Compatibility: This release is tested on Linux, macOS, Microsoft Windows;
 using JDK/OpenJDK versions 8 to 19;
-Guava versions 16.0.1 to 31.1-jre;
+Guava versions 21.0 to 32.1.3-jre;
 other software versions as specified in gradle.properties.
 
 #### New features
@@ -1096,7 +1096,7 @@ Zhengqiang Duan.</p>
 
 <p id="breaking-1-32-0">Compatibility: This release is tested on Linux, macOS, 
Microsoft Windows;
 using JDK/OpenJDK versions 8 to 18;
-Guava versions 19.0 to 31.1-jre;
+Guava versions 16.0.1 to 31.1-jre;
 other software versions as specified in gradle.properties.</p>
 
 <h4 id="new-features-1-32-0">New features</h4>
diff --git a/docs/innodb_adapter.html b/docs/innodb_adapter.html
index c3d9d2ff8..82b35baaa 100644
--- a/docs/innodb_adapter.html
+++ b/docs/innodb_adapter.html
@@ -114,9 +114,9 @@ possible.</p>
 
 </span><span class="err">--------------------</span><span class="w"> 
</span><span class="err">File</span><span class="w"> </span><span 
class="err">System</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">.ibd</span><span class="w"> </span><span 
class="err">files</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">InnoDB</span><span class="w"> 
</span><span class="err">Data</span><span class="w"> </span><span cla [...]
-       </span><span class="err">+------------+</span><span class="w">      
</span><span class="err">+-----+</span></code></pre></figure>
+        </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">.ibd</span><span class="w"> </span><span 
class="err">files</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">InnoDB</span><span class="w"> 
</span><span class="err">Data</span><span class="w"> </span><s [...]
+        </span><span class="err">+------------+</span><span class="w">      
</span><span class="err">+-----+</span></code></pre></figure>
 
 <p>What’s more, with DDL statements, the adapter is “index aware”. It
 leverages rules to choose the appropriate index to scan, for example,
diff --git a/docs/reference.html b/docs/reference.html
index 4b4885ca4..ef53c5f43 100644
--- a/docs/reference.html
+++ b/docs/reference.html
@@ -201,7 +201,7 @@ form.</p>
 
 <span class="n">query</span><span class="p">:</span>
       <span class="k">values</span>
-  <span class="o">|</span>   <span class="k">WITH</span> <span 
class="n">withItem</span> <span class="p">[</span> <span class="p">,</span> 
<span class="n">withItem</span> <span class="p">]</span><span 
class="o">*</span> <span class="n">query</span>
+  <span class="o">|</span>   <span class="k">WITH</span> <span 
class="p">[</span> <span class="k">RECURSIVE</span> <span class="p">]</span> 
<span class="n">withItem</span> <span class="p">[</span> <span 
class="p">,</span> <span class="n">withItem</span> <span 
class="p">]</span><span class="o">*</span> <span class="n">query</span>
   <span class="o">|</span>   <span class="p">{</span>
           <span class="k">select</span>
       <span class="o">|</span>   <span class="n">selectWithoutFrom</span>
@@ -211,7 +211,7 @@ form.</p>
       <span class="o">|</span>   <span class="n">query</span> <span 
class="k">INTERSECT</span> <span class="p">[</span> <span class="k">ALL</span> 
<span class="o">|</span> <span class="k">DISTINCT</span> <span 
class="p">]</span> <span class="n">query</span>
       <span class="p">}</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="k">LIMIT</span> <span 
class="p">{</span> <span class="p">[</span> <span class="k">start</span><span 
class="p">,</span> <span class="p">]</span> <span class="k">count</span> <span 
class="o">|</span> <span class="k">ALL</span> <span class="p">}</span> <span 
class="p">]</span>
+      <span class="p">[</span> <span class="k">LIMIT</span> <span 
class="p">[</span> <span class="k">start</span><span class="p">,</span> <span 
class="p">]</span> <span class="p">{</span> <span class="k">count</span> <span 
class="o">|</span> <span class="k">ALL</span> <span class="p">}</span> <span 
class="p">]</span>
       <span class="p">[</span> <span class="k">OFFSET</span> <span 
class="k">start</span> <span class="p">{</span> <span class="k">ROW</span> 
<span class="o">|</span> <span class="k">ROWS</span> <span class="p">}</span> 
<span class="p">]</span>
       <span class="p">[</span> <span class="k">FETCH</span> <span 
class="p">{</span> <span class="k">FIRST</span> <span class="o">|</span> <span 
class="k">NEXT</span> <span class="p">}</span> <span class="p">[</span> <span 
class="k">count</span> <span class="p">]</span> <span class="p">{</span> <span 
class="k">ROW</span> <span class="o">|</span> <span class="k">ROWS</span> <span 
class="p">}</span> <span class="k">ONLY</span> <span class="p">]</span>
 
@@ -530,6 +530,7 @@ CONSTRAINT_NAME,
 CONSTRAINT_SCHEMA,
 CONSTRUCTOR,
 <strong>CONTAINS</strong>,
+CONTAINS_SUBSTR,
 CONTINUE,
 <strong>CONVERT</strong>,
 <strong>CORR</strong>,
@@ -716,6 +717,7 @@ JSON,
 <strong>JSON_OBJECT</strong>,
 <strong>JSON_OBJECTAGG</strong>,
 <strong>JSON_QUERY</strong>,
+<strong>JSON_SCOPE</strong>,
 <strong>JSON_VALUE</strong>,
 K,
 KEY,
@@ -844,8 +846,8 @@ PATH,
 <strong>PATTERN</strong>,
 <strong>PER</strong>,
 <strong>PERCENT</strong>,
-PERCENTILE_CONT,
-PERCENTILE_DISC,
+<strong>PERCENTILE_CONT</strong>,
+<strong>PERCENTILE_DISC</strong>,
 <strong>PERCENT_RANK</strong>,
 <strong>PERIOD</strong>,
 <strong>PERMUTE</strong>,
@@ -1200,22 +1202,27 @@ name will have been converted to upper case also.</p>
     <tr>
       <td style="text-align: left">DECIMAL(p, s)</td>
       <td style="text-align: left">Fixed point</td>
-      <td style="text-align: left">Example: 123.45 is a DECIMAL(5, 2) 
value.</td>
+      <td style="text-align: left">Example: 123.45 and DECIMAL ‘123.45’ are 
identical values, and have type DECIMAL(5, 2)</td>
     </tr>
     <tr>
-      <td style="text-align: left">NUMERIC</td>
+      <td style="text-align: left">NUMERIC(p, s)</td>
       <td style="text-align: left">Fixed point</td>
-      <td style="text-align: left"> </td>
+      <td style="text-align: left">A synonym for DECIMAL</td>
     </tr>
     <tr>
-      <td style="text-align: left">REAL, FLOAT</td>
+      <td style="text-align: left">REAL</td>
       <td style="text-align: left">4 byte floating point</td>
-      <td style="text-align: left">6 decimal digits precision</td>
+      <td style="text-align: left">6 decimal digits precision; examples: 
CAST(1.2 AS REAL), CAST(‘Infinity’ AS REAL)</td>
     </tr>
     <tr>
       <td style="text-align: left">DOUBLE</td>
       <td style="text-align: left">8 byte floating point</td>
-      <td style="text-align: left">15 decimal digits precision</td>
+      <td style="text-align: left">15 decimal digits precision; examples: 
1.4E2, CAST(‘-Infinity’ AS DOUBLE), CAST(‘NaN’ AS DOUBLE)</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">FLOAT</td>
+      <td style="text-align: left">8 byte floating point</td>
+      <td style="text-align: left">A synonym for DOUBLE</td>
     </tr>
     <tr>
       <td style="text-align: left">CHAR(n), CHARACTER(n)</td>
@@ -1320,12 +1327,12 @@ we also allow their plurals, YEARS, QUARTERS, MONTHS, 
WEEKS, DAYS, HOURS, MINUTE
     <tr>
       <td style="text-align: left">ROW</td>
       <td style="text-align: left">Row with 1 or more columns</td>
-      <td style="text-align: left">Example: Row(f0 int null, f1 varchar)</td>
+      <td style="text-align: left">Example: row(f0 int null, f1 varchar)</td>
     </tr>
     <tr>
       <td style="text-align: left">MAP</td>
       <td style="text-align: left">Collection of keys mapped to values</td>
-      <td style="text-align: left"> </td>
+      <td style="text-align: left">Example: (int, varchar) map</td>
     </tr>
     <tr>
       <td style="text-align: left">MULTISET</td>
@@ -2209,7 +2216,7 @@ However, Calcite supports both implicit and explicit 
conversion of values from o
   <tbody>
     <tr>
       <td style="text-align: left">CAST(value AS type)</td>
-      <td style="text-align: left">Converts a value to a given type</td>
+      <td style="text-align: left">Converts a value to a given type. Casts 
between integer types truncate towards 0</td>
     </tr>
     <tr>
       <td style="text-align: left">CONVERT(string, charSet1, charSet2)</td>
@@ -5431,6 +5438,11 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">ARRAY_EXCEPT(array1, array2)</td>
       <td style="text-align: left">Returns an array of the elements in 
<em>array1</em> but not in <em>array2</em>, without duplicates</td>
     </tr>
+    <tr>
+      <td style="text-align: left">s</td>
+      <td style="text-align: left">ARRAY_INSERT(array, pos, element)</td>
+      <td style="text-align: left">Places <em>element</em> into index 
<em>pos</em> of <em>array</em>. Array index start at 1, or start from the end 
if index is negative. Index above array size appends the array, or prepends the 
array if index is negative, with <code class="language-plaintext 
highlighter-rouge">NULL</code> elements.</td>
+    </tr>
     <tr>
       <td style="text-align: left">s</td>
       <td style="text-align: left">ARRAY_INTERSECT(array1, array2)</td>
@@ -5497,7 +5509,8 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
     <tr>
       <td style="text-align: left">b</td>
       <td style="text-align: left">ARRAY_TO_STRING(array, delimiter [, 
nullText ])</td>
-      <td style="text-align: left">Returns a concatenation of the elements in 
<em>array</em> as a STRING and take <em>delimiter</em> as the delimiter. If the 
<em>nullText</em> parameter is used, the function replaces any <code 
class="language-plaintext highlighter-rouge">NULL</code> values in the array 
with the value of <em>nullText</em>. If the <em>nullText</em> parameter is not 
used, the function omits the <code class="language-plaintext 
highlighter-rouge">NULL</code> value and its pre [...]
+      <td style="text-align: left">Returns a concatenation of the elements in 
<em>array</em> as a STRING and take <em>delimiter</em> as the delimiter. If the 
<em>nullText</em> parameter is used, the function replaces any <code 
class="language-plaintext highlighter-rouge">NULL</code> values in the array 
with the value of <em>nullText</em>. If the <em>nullText</em> parameter is not 
used, the function omits the <code class="language-plaintext 
highlighter-rouge">NULL</code> value and its pre [...]
+</td>
     </tr>
     <tr>
       <td style="text-align: left">s</td>
@@ -5543,6 +5556,11 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">Returns the bit length of <em>string</em>
 </td>
     </tr>
+    <tr>
+      <td style="text-align: left">s</td>
+      <td style="text-align: left">BIT_GET(value, position)</td>
+      <td style="text-align: left">Returns the bit (0 or 1) value at the 
specified <em>position</em> of numeric <em>value</em>. The positions are 
numbered from right to left, starting at zero. The <em>position</em> argument 
cannot be negative</td>
+    </tr>
     <tr>
       <td style="text-align: left">b</td>
       <td style="text-align: left">CEIL(value)</td>
@@ -5559,6 +5577,16 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">Returns the character whose UTF-8 code is 
<em>integer</em>
 </td>
     </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">CODE_POINTS_TO_BYTES(integers)</td>
+      <td style="text-align: left">Converts <em>integers</em>, an array of 
integers between 0 and 255 inclusive, into bytes; throws error if any element 
is out of range</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">CODE_POINTS_TO_STRING(integers)</td>
+      <td style="text-align: left">Converts <em>integers</em>, an array of 
integers between 0 and 0xD7FF or between 0xE000 and 0x10FFFF inclusive, into 
string; throws error if any element is out of range</td>
+    </tr>
     <tr>
       <td style="text-align: left">o</td>
       <td style="text-align: left">CONCAT(string, string)</td>
@@ -5589,6 +5617,11 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">COMPRESS(string)</td>
       <td style="text-align: left">Compresses a string using zlib compression 
and returns the result as a binary string</td>
     </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">CONTAINS_SUBSTR(expression, string [ , 
json_scope =&gt; json_scope_value ])</td>
+      <td style="text-align: left">Returns whether <em>string</em> exists as a 
substring in <em>expression</em>. Optional <em>json_scope</em> argument 
specifies what scope to search if <em>expression</em> is in JSON format. 
Returns NULL if a NULL exists in <em>expression</em> that does not result in a 
match</td>
+    </tr>
     <tr>
       <td style="text-align: left">q</td>
       <td style="text-align: left">CONVERT(type, expression [ , style ])</td>
@@ -5789,6 +5822,16 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">EXTRACTVALUE(xml, xpathExpr))</td>
       <td style="text-align: left">Returns the text of the first text node 
which is a child of the element or elements matched by the XPath 
expression.</td>
     </tr>
+    <tr>
+      <td style="text-align: left">h s</td>
+      <td style="text-align: left">FACTORIAL(integer)</td>
+      <td style="text-align: left">Returns the factorial of <em>integer</em>, 
the range of <em>integer</em> is [0, 20]. Otherwise, returns NULL</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">h s</td>
+      <td style="text-align: left">FIND_IN_SET(matchStr, textStr)</td>
+      <td style="text-align: left">Returns the index (1-based) of the given 
<em>matchStr</em> in the comma-delimited <em>textStr</em>. Returns 0, if the 
given <em>matchStr</em> is not found or if the <em>matchStr</em> contains a 
comma. For example, FIND_IN_SET(‘bc’, ‘a,bc,def’) returns 2</td>
+    </tr>
     <tr>
       <td style="text-align: left">b</td>
       <td style="text-align: left">FLOOR(value)</td>
@@ -5806,6 +5849,16 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">Formats <em>timestamp</em> according to the 
specified format <em>string</em>
 </td>
     </tr>
+    <tr>
+      <td style="text-align: left">h s</td>
+      <td style="text-align: left">FORMAT_NUMBER(value, decimalVal)</td>
+      <td style="text-align: left">Formats the number <em>value</em> like 
‘#,###,###.##’, rounded to decimal places <em>decimalVal</em>. If 
<em>decimalVal</em> is 0, the result has no decimal point or fractional 
part</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">h s</td>
+      <td style="text-align: left">FORMAT_NUMBER(value, format)</td>
+      <td style="text-align: left">Formats the number <em>value</em> to 
MySQL’s FORMAT <em>format</em>, like ‘#,###,###.##0.00’</td>
+    </tr>
     <tr>
       <td style="text-align: left">b</td>
       <td style="text-align: left">FORMAT_TIME(string, time)</td>
@@ -5816,6 +5869,12 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">b</td>
       <td style="text-align: left">FORMAT_TIMESTAMP(string timestamp)</td>
       <td style="text-align: left">Formats <em>timestamp</em> according to the 
specified format <em>string</em>
+</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">s</td>
+      <td style="text-align: left">GETBIT(value, position)</td>
+      <td style="text-align: left">Equivalent to <code 
class="language-plaintext highlighter-rouge">BIT_GET(value, position)</code>
 </td>
     </tr>
     <tr>
@@ -5834,6 +5893,16 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">Equivalent to <code 
class="language-plaintext highlighter-rouge">NVL(value1, value2)</code>
 </td>
     </tr>
+    <tr>
+      <td style="text-align: left">p</td>
+      <td style="text-align: left">string1 ILIKE string2 [ ESCAPE string3 
]</td>
+      <td style="text-align: left">Whether <em>string1</em> matches pattern 
<em>string2</em>, ignoring case (similar to <code class="language-plaintext 
highlighter-rouge">LIKE</code>)</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">p</td>
+      <td style="text-align: left">string1 NOT ILIKE string2 [ ESCAPE string3 
]</td>
+      <td style="text-align: left">Whether <em>string1</em> does not match 
pattern <em>string2</em>, ignoring case (similar to <code 
class="language-plaintext highlighter-rouge">NOT LIKE</code>)</td>
+    </tr>
     <tr>
       <td style="text-align: left">b o</td>
       <td style="text-align: left">INSTR(string, substring [, from [, 
occurrence ] ])</td>
@@ -5847,14 +5916,14 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
 </td>
     </tr>
     <tr>
-      <td style="text-align: left">p</td>
-      <td style="text-align: left">string1 ILIKE string2 [ ESCAPE string3 
]</td>
-      <td style="text-align: left">Whether <em>string1</em> matches pattern 
<em>string2</em>, ignoring case (similar to <code class="language-plaintext 
highlighter-rouge">LIKE</code>)</td>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">IS_INF(value)</td>
+      <td style="text-align: left">Returns whether <em>value</em> is 
infinite</td>
     </tr>
     <tr>
-      <td style="text-align: left">p</td>
-      <td style="text-align: left">string1 NOT ILIKE string2 [ ESCAPE string3 
]</td>
-      <td style="text-align: left">Whether <em>string1</em> does not match 
pattern <em>string2</em>, ignoring case (similar to <code 
class="language-plaintext highlighter-rouge">NOT LIKE</code>)</td>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">IS_NAN(value)</td>
+      <td style="text-align: left">Returns whether <em>value</em> is NaN</td>
     </tr>
     <tr>
       <td style="text-align: left">m</td>
@@ -5930,6 +5999,12 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">b</td>
       <td style="text-align: left">LENGTH(string)</td>
       <td style="text-align: left">Equivalent to <code 
class="language-plaintext highlighter-rouge">CHAR_LENGTH(string)</code>
+</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">h s</td>
+      <td style="text-align: left">LEVENSHTEIN(string1, string2)</td>
+      <td style="text-align: left">Returns the Levenshtein distance between 
<em>string1</em> and <em>string2</em>
 </td>
     </tr>
     <tr>
@@ -5978,6 +6053,16 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">LTRIM(string)</td>
       <td style="text-align: left">Returns <em>string</em> with all blanks 
removed from the start</td>
     </tr>
+    <tr>
+      <td style="text-align: left">s</td>
+      <td style="text-align: left">MAP()</td>
+      <td style="text-align: left">Returns an empty map</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">s</td>
+      <td style="text-align: left">MAP(key, value [, key, value]*)</td>
+      <td style="text-align: left">Returns a map with the given 
<em>key</em>/<em>value</em> pairs</td>
+    </tr>
     <tr>
       <td style="text-align: left">s</td>
       <td style="text-align: left">MAP_CONCAT(map [, map]*)</td>
@@ -6060,6 +6145,11 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">Uses format specified by <em>format</em> to 
convert <em>string</em> representation of timestamp to a TIMESTAMP WITH LOCAL 
TIME ZONE value in <em>timeZone</em>
 </td>
     </tr>
+    <tr>
+      <td style="text-align: left">h s</td>
+      <td style="text-align: left">PARSE_URL(urlString, partToExtract [, 
keyToExtract] )</td>
+      <td style="text-align: left">Returns the specified 
<em>partToExtract</em> from the <em>urlString</em>. Valid values for 
<em>partToExtract</em> include HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, 
FILE, and USERINFO. <em>keyToExtract</em> specifies which query to extract</td>
+    </tr>
     <tr>
       <td style="text-align: left">b</td>
       <td style="text-align: left">POW(numeric1, numeric2)</td>
@@ -6067,9 +6157,35 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
 </td>
     </tr>
     <tr>
-      <td style="text-align: left">m o</td>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">REGEXP_CONTAINS(string, regexp)</td>
+      <td style="text-align: left">Returns whether <em>string</em> is a 
partial match for the <em>regexp</em>
+</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">REGEXP_EXTRACT(string, regexp [, position 
[, occurrence]])</td>
+      <td style="text-align: left">Returns the substring in <em>string</em> 
that matches the <em>regexp</em>, starting search at <em>position</em> (default 
1), and until locating the nth <em>occurrence</em> (default 1). Returns NULL if 
there is no match</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">REGEXP_EXTRACT_ALL(string, regexp)</td>
+      <td style="text-align: left">Returns an array of all substrings in 
<em>string</em> that matches the <em>regexp</em>. Returns an empty array if 
there is no match</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">REGEXP_INSTR(string, regexp [, position [, 
occurrence [, occurrence_position]]])</td>
+      <td style="text-align: left">Returns the lowest 1-based position of the 
substring in <em>string</em> that matches the <em>regexp</em>, starting search 
at <em>position</em> (default 1), and until locating the nth 
<em>occurrence</em> (default 1). Setting occurrence_position (default 0) to 1 
returns the end position of substring + 1. Returns 0 if there is no match</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">b m o</td>
       <td style="text-align: left">REGEXP_REPLACE(string, regexp, rep [, pos 
[, occurrence [, matchType]]])</td>
-      <td style="text-align: left">Replaces all substrings of <em>string</em> 
that match <em>regexp</em> with <em>rep</em> at the starting <em>pos</em> in 
expr (if omitted, the default is 1), <em>occurrence</em> means which occurrence 
of a match to search for (if omitted, the default is 1), <em>matchType</em> 
specifies how to perform matching</td>
+      <td style="text-align: left">Replaces all substrings of <em>string</em> 
that match <em>regexp</em> with <em>rep</em> at the starting <em>pos</em> in 
expr (if omitted, the default is 1), <em>occurrence</em> specifies which 
occurrence of a match to search for (if omitted, the default is 1), 
<em>matchType</em> specifies how to perform matching</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">REGEXP_SUBSTR(string, regexp [, position [, 
occurrence]])</td>
+      <td style="text-align: left">Synonym for REGEXP_EXTRACT</td>
     </tr>
     <tr>
       <td style="text-align: left">b m p</td>
@@ -6108,6 +6224,11 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">RTRIM(string)</td>
       <td style="text-align: left">Returns <em>string</em> with all blanks 
removed from the end</td>
     </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">SAFE_ADD(numeric1, numeric2)</td>
+      <td style="text-align: left">Returns <em>numeric1</em> + 
<em>numeric2</em>, or NULL on overflow</td>
+    </tr>
     <tr>
       <td style="text-align: left">b</td>
       <td style="text-align: left">SAFE_CAST(value AS type)</td>
@@ -6138,6 +6259,11 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">SAFE_ORDINAL(index)</td>
       <td style="text-align: left">Similar to <code class="language-plaintext 
highlighter-rouge">OFFSET</code> except <em>index</em> begins at 1 and null is 
returned if <em>index</em> is out of bounds</td>
     </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">SAFE_SUBTRACT(numeric1, numeric2)</td>
+      <td style="text-align: left">Returns <em>numeric1</em> - 
<em>numeric2</em>, or NULL on overflow</td>
+    </tr>
     <tr>
       <td style="text-align: left">*</td>
       <td style="text-align: left">SEC(numeric)</td>
@@ -6175,6 +6301,11 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">SOUNDEX(string)</td>
       <td style="text-align: left">Returns the phonetic representation of 
<em>string</em>; throws if <em>string</em> is encoded with multi-byte encoding 
such as UTF-8</td>
     </tr>
+    <tr>
+      <td style="text-align: left">s</td>
+      <td style="text-align: left">SOUNDEX(string)</td>
+      <td style="text-align: left">Returns the phonetic representation of 
<em>string</em>; return original <em>string</em> if <em>string</em> is encoded 
with multi-byte encoding such as UTF-8</td>
+    </tr>
     <tr>
       <td style="text-align: left">m</td>
       <td style="text-align: left">SPACE(integer)</td>
@@ -6334,6 +6465,11 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">Converts <em>timestamp</em> to a string 
using the format <em>format</em>
 </td>
     </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">TO_CODE_POINTS(string)</td>
+      <td style="text-align: left">Converts <em>string</em> to an array of 
integers that represent code points or extended ASCII character values</td>
+    </tr>
     <tr>
       <td style="text-align: left">o p</td>
       <td style="text-align: left">TO_DATE(string, format)</td>
@@ -6381,6 +6517,16 @@ function, return a Calcite <code 
class="language-plaintext highlighter-rouge">TI
       <td style="text-align: left">UNIX_DATE(date)</td>
       <td style="text-align: left">Returns the number of days since 
1970-01-01</td>
     </tr>
+    <tr>
+      <td style="text-align: left">s</td>
+      <td style="text-align: left">URL_DECODE(string)</td>
+      <td style="text-align: left">Decodes a <em>string</em> in 
‘application/x-www-form-urlencoded’ format using a specific encoding scheme, 
returns original <em>string</em> when decoded error</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">s</td>
+      <td style="text-align: left">URL_ENCODE(string)</td>
+      <td style="text-align: left">Translates a <em>string</em> into 
‘application/x-www-form-urlencoded’ format using a specific encoding scheme</td>
+    </tr>
     <tr>
       <td style="text-align: left">o</td>
       <td style="text-align: left">XMLTRANSFORM(xml, xslt)</td>
@@ -7151,6 +7297,7 @@ to the JDBC connect string (see connect string property
       <span class="n">createSchemaStatement</span>
   <span class="o">|</span>   <span 
class="n">createForeignSchemaStatement</span>
   <span class="o">|</span>   <span class="n">createTableStatement</span>
+  <span class="o">|</span>   <span class="n">createTableLikeStatement</span>
   <span class="o">|</span>   <span class="n">createViewStatement</span>
   <span class="o">|</span>   <span 
class="n">createMaterializedViewStatement</span>
   <span class="o">|</span>   <span class="n">createTypeStatement</span>
@@ -7182,6 +7329,13 @@ to the JDBC connect string (see connect string property
       <span class="p">[</span> <span class="s1">'('</span> <span 
class="n">tableElement</span> <span class="p">[,</span> <span 
class="n">tableElement</span> <span class="p">]</span><span class="o">*</span> 
<span class="s1">')'</span> <span class="p">]</span>
       <span class="p">[</span> <span class="k">AS</span> <span 
class="n">query</span> <span class="p">]</span>
 
+<span class="n">createTableLikeStatement</span><span class="p">:</span>
+      <span class="k">CREATE</span> <span class="k">TABLE</span> <span 
class="p">[</span> <span class="n">IF</span> <span class="k">NOT</span> <span 
class="k">EXISTS</span> <span class="p">]</span> <span class="n">name</span> 
<span class="k">LIKE</span> <span class="n">sourceTable</span>
+      <span class="p">[</span> <span class="n">likeOption</span> <span 
class="p">[,</span> <span class="n">likeOption</span> <span 
class="p">]</span><span class="o">*</span> <span class="p">]</span>
+
+<span class="n">likeOption</span><span class="p">:</span>
+      <span class="p">{</span> <span class="k">INCLUDING</span> <span 
class="o">|</span> <span class="k">EXCLUDING</span> <span class="p">}</span> 
<span class="p">{</span> <span class="k">DEFAULTS</span> <span 
class="o">|</span> <span class="k">GENERATED</span> <span class="o">|</span> 
<span class="k">ALL</span> <span class="p">}</span>
+
 <span class="n">createTypeStatement</span><span class="p">:</span>
       <span class="k">CREATE</span> <span class="p">[</span> <span 
class="k">OR</span> <span class="k">REPLACE</span> <span class="p">]</span> 
<span class="k">TYPE</span> <span class="n">name</span> <span 
class="k">AS</span>
       <span class="p">{</span>
@@ -7277,30 +7431,30 @@ instantiated. Each object can hold different values.</p>
 
 <p>For example, we can declare types <code class="language-plaintext 
highlighter-rouge">address_typ</code> and <code class="language-plaintext 
highlighter-rouge">employee_typ</code>:</p>
 
-<figure class="highlight"><pre><code class="language-sql" 
data-lang="sql"><span class="k">CREATE</span> <span class="k">TYPE</span> <span 
class="n">address_typ</span> <span class="k">AS</span> <span 
class="k">OBJECT</span> <span class="p">(</span>
-   <span class="n">street</span>          <span class="n">VARCHAR2</span><span 
class="p">(</span><span class="mi">30</span><span class="p">),</span>
-   <span class="n">city</span>            <span class="n">VARCHAR2</span><span 
class="p">(</span><span class="mi">20</span><span class="p">),</span>
+<figure class="highlight"><pre><code class="language-sql" 
data-lang="sql"><span class="k">CREATE</span> <span class="k">TYPE</span> <span 
class="n">address_typ</span> <span class="k">AS</span> <span class="p">(</span>
+   <span class="n">street</span>          <span class="nb">VARCHAR</span><span 
class="p">(</span><span class="mi">30</span><span class="p">),</span>
+   <span class="n">city</span>            <span class="nb">VARCHAR</span><span 
class="p">(</span><span class="mi">20</span><span class="p">),</span>
    <span class="k">state</span>           <span class="nb">CHAR</span><span 
class="p">(</span><span class="mi">2</span><span class="p">),</span>
-   <span class="n">postal_code</span>     <span class="n">VARCHAR2</span><span 
class="p">(</span><span class="mi">6</span><span class="p">));</span>
-
-<span class="k">CREATE</span> <span class="k">TYPE</span> <span 
class="n">employee_typ</span> <span class="k">AS</span> <span 
class="k">OBJECT</span> <span class="p">(</span>
-  <span class="n">employee_id</span>       <span class="n">NUMBER</span><span 
class="p">(</span><span class="mi">6</span><span class="p">),</span>
-  <span class="n">first_name</span>        <span 
class="n">VARCHAR2</span><span class="p">(</span><span 
class="mi">20</span><span class="p">),</span>
-  <span class="n">last_name</span>         <span 
class="n">VARCHAR2</span><span class="p">(</span><span 
class="mi">25</span><span class="p">),</span>
-  <span class="n">email</span>             <span 
class="n">VARCHAR2</span><span class="p">(</span><span 
class="mi">25</span><span class="p">),</span>
-  <span class="n">phone_number</span>      <span 
class="n">VARCHAR2</span><span class="p">(</span><span 
class="mi">20</span><span class="p">),</span>
+   <span class="n">postal_code</span>     <span class="nb">VARCHAR</span><span 
class="p">(</span><span class="mi">6</span><span class="p">));</span>
+
+<span class="k">CREATE</span> <span class="k">TYPE</span> <span 
class="n">employee_typ</span> <span class="k">AS</span> <span class="p">(</span>
+  <span class="n">employee_id</span>       <span 
class="nb">DECIMAL</span><span class="p">(</span><span class="mi">6</span><span 
class="p">),</span>
+  <span class="n">first_name</span>        <span 
class="nb">VARCHAR</span><span class="p">(</span><span 
class="mi">20</span><span class="p">),</span>
+  <span class="n">last_name</span>         <span 
class="nb">VARCHAR</span><span class="p">(</span><span 
class="mi">25</span><span class="p">),</span>
+  <span class="n">email</span>             <span 
class="nb">VARCHAR</span><span class="p">(</span><span 
class="mi">25</span><span class="p">),</span>
+  <span class="n">phone_number</span>      <span 
class="nb">VARCHAR</span><span class="p">(</span><span 
class="mi">20</span><span class="p">),</span>
   <span class="n">hire_date</span>         <span class="nb">DATE</span><span 
class="p">,</span>
-  <span class="n">job_id</span>            <span 
class="n">VARCHAR2</span><span class="p">(</span><span 
class="mi">10</span><span class="p">),</span>
-  <span class="n">salary</span>            <span class="n">NUMBER</span><span 
class="p">(</span><span class="mi">8</span><span class="p">,</span><span 
class="mi">2</span><span class="p">),</span>
-  <span class="n">commission_pct</span>    <span class="n">NUMBER</span><span 
class="p">(</span><span class="mi">2</span><span class="p">,</span><span 
class="mi">2</span><span class="p">),</span>
-  <span class="n">manager_id</span>        <span class="n">NUMBER</span><span 
class="p">(</span><span class="mi">6</span><span class="p">),</span>
-  <span class="n">department_id</span>     <span class="n">NUMBER</span><span 
class="p">(</span><span class="mi">4</span><span class="p">),</span>
+  <span class="n">job_id</span>            <span 
class="nb">VARCHAR</span><span class="p">(</span><span 
class="mi">10</span><span class="p">),</span>
+  <span class="n">salary</span>            <span 
class="nb">DECIMAL</span><span class="p">(</span><span class="mi">8</span><span 
class="p">,</span><span class="mi">2</span><span class="p">),</span>
+  <span class="n">commission_pct</span>    <span 
class="nb">DECIMAL</span><span class="p">(</span><span class="mi">2</span><span 
class="p">,</span><span class="mi">2</span><span class="p">),</span>
+  <span class="n">manager_id</span>        <span 
class="nb">DECIMAL</span><span class="p">(</span><span class="mi">6</span><span 
class="p">),</span>
+  <span class="n">department_id</span>     <span 
class="nb">DECIMAL</span><span class="p">(</span><span class="mi">4</span><span 
class="p">),</span>
   <span class="n">address</span>           <span 
class="n">address_typ</span><span class="p">);</span></code></pre></figure>
 
 <p>Using these types, you can instantiate objects as follows:</p>
 
 <figure class="highlight"><pre><code class="language-sql" 
data-lang="sql"><span class="n">employee_typ</span><span 
class="p">(</span><span class="mi">315</span><span class="p">,</span> <span 
class="s1">'Francis'</span><span class="p">,</span> <span 
class="s1">'Logan'</span><span class="p">,</span> <span 
class="s1">'FLOGAN'</span><span class="p">,</span>
-    <span class="s1">'555.777.2222'</span><span class="p">,</span> <span 
class="s1">'01-MAY-04'</span><span class="p">,</span> <span 
class="s1">'SA_MAN'</span><span class="p">,</span> <span 
class="mi">11000</span><span class="p">,</span> <span class="p">.</span><span 
class="mi">15</span><span class="p">,</span> <span class="mi">101</span><span 
class="p">,</span> <span class="mi">110</span><span class="p">,</span>
+    <span class="s1">'555.777.2222'</span><span class="p">,</span> <span 
class="nb">DATE</span> <span class="s1">'2004-05-01'</span><span 
class="p">,</span> <span class="s1">'SA_MAN'</span><span class="p">,</span> 
<span class="mi">11000</span><span class="p">,</span> <span 
class="p">.</span><span class="mi">15</span><span class="p">,</span> <span 
class="mi">101</span><span class="p">,</span> <span class="mi">110</span><span 
class="p">,</span>
      <span class="n">address_typ</span><span class="p">(</span><span 
class="s1">'376 Mission'</span><span class="p">,</span> <span class="s1">'San 
Francisco'</span><span class="p">,</span> <span class="s1">'CA'</span><span 
class="p">,</span> <span class="s1">'94222'</span><span 
class="p">))</span></code></pre></figure>
 
 


Reply via email to