You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2017/02/09 02:35:01 UTC
svn commit: r1782288 - in /calcite/site/docs: adapter.html
druid_adapter.html history.html index.html reference.html
Author: jhyde
Date: Thu Feb 9 02:35:01 2017
New Revision: 1782288
URL: http://svn.apache.org/viewvc?rev=1782288&view=rev
Log:
Web site updates for [CALCITE-1622], [CALCITE-1510], [CALCITE-1617], [CALCITE-1606], [CALCITE-1604], [CALCITE-1587]
Modified:
calcite/site/docs/adapter.html
calcite/site/docs/druid_adapter.html
calcite/site/docs/history.html
calcite/site/docs/index.html
calcite/site/docs/reference.html
Modified: calcite/site/docs/adapter.html
URL: http://svn.apache.org/viewvc/calcite/site/docs/adapter.html?rev=1782288&r1=1782287&r2=1782288&view=diff
==============================================================================
--- calcite/site/docs/adapter.html (original)
+++ calcite/site/docs/adapter.html Thu Feb 9 02:35:01 2017
@@ -935,6 +935,14 @@ as implemented by Avatica’s
</thead>
<tbody>
<tr>
+ <td style="text-align: left"><a href="/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#APPROXIMATE_DISTINCT_COUNT">approximateDistinctCount</a></td>
+ <td style="text-align: left">Whether approximate results from <code class="highlighter-rouge">COUNT(DISTINCT ...)</code> aggregate functions are acceptable</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><a href="/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#APPROXIMATE_TOP_N">approximateTopN</a></td>
+ <td style="text-align: left">Whether approximate results from “Top N” queries * (<code class="highlighter-rouge">ORDER BY aggFun() DESC LIMIT n</code>) are acceptable</td>
+ </tr>
+ <tr>
<td style="text-align: left"><a href="/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#CASE_SENSITIVE">caseSensitive</a></td>
<td style="text-align: left">Whether identifiers are matched case-sensitively. If not specified, value from <code class="highlighter-rouge">lex</code> is used.</td>
</tr>
Modified: calcite/site/docs/druid_adapter.html
URL: http://svn.apache.org/viewvc/calcite/site/docs/druid_adapter.html?rev=1782288&r1=1782287&r2=1782288&view=diff
==============================================================================
--- calcite/site/docs/druid_adapter.html (original)
+++ calcite/site/docs/druid_adapter.html Thu Feb 9 02:35:01 2017
@@ -914,7 +914,7 @@ of the Druid adapter.</p>
</span><span class="nt">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.druid.DruidTableFactory"</span><span class="p">,</span><span class="w">
</span><span class="nt">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nt">"dataSource"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wikiticker"</span><span class="p">,</span><span class="w">
- </span><span class="nt">"interval"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z"</span><span class="p">,</span><span class="w">
+ </span><span class="nt">"interval"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1900-01-09T00:00:00.000/2992-01-10T00:00:00.000"</span><span class="p">,</span><span class="w">
</span><span class="nt">"timestampColumn"</span><span class="p">:</span><span class="w"> </span><span class="s2">"time"</span><span class="p">,</span><span class="w">
</span><span class="nt">"dimensions"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
</span><span class="s2">"channel"</span><span class="p">,</span><span class="w">
@@ -1047,7 +1047,7 @@ but with <code class="highlighter-rouge"
</span><span class="nt">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.druid.DruidTableFactory"</span><span class="p">,</span><span class="w">
</span><span class="nt">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nt">"dataSource"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wikiticker"</span><span class="p">,</span><span class="w">
- </span><span class="nt">"interval"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z"</span><span class="w">
+ </span><span class="nt">"interval"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1900-01-09T00:00:00.000/2992-01-10T00:00:00.000"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span><span class="p">]</span><span class="w">
Modified: calcite/site/docs/history.html
URL: http://svn.apache.org/viewvc/calcite/site/docs/history.html?rev=1782288&r1=1782287&r2=1782288&view=diff
==============================================================================
--- calcite/site/docs/history.html (original)
+++ calcite/site/docs/history.html Thu Feb 9 02:35:01 2017
@@ -882,6 +882,15 @@
Downloads are available on the
<a href="/downloads/">downloads page</a>.</p>
+<h2 id="v1-12-0"><a href="https://github.com/apache/calcite/releases/tag/calcite-1.12.0">1.12.0</a> / under development</h2>
+
+<p>Compatibility: This release is tested
+on Linux, macOS, Microsoft Windows;
+using Oracle JDK 1.7, 1.8, 9;
+Guava versions 14.0 to 21.0;
+Druid version 0.9.1.1;
+other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+
<h2 id="v1-11-0"><a href="https://github.com/apache/calcite/releases/tag/calcite-1.11.0">1.11.0</a> / 2017-01-09</h2>
<p>Nearly three months after the previous release, there is a long list
Modified: calcite/site/docs/index.html
URL: http://svn.apache.org/viewvc/calcite/site/docs/index.html?rev=1782288&r1=1782287&r2=1782288&view=diff
==============================================================================
--- calcite/site/docs/index.html (original)
+++ calcite/site/docs/index.html Thu Feb 9 02:35:01 2017
@@ -902,8 +902,10 @@ point it at some data.</p>
<span class="n">Connection</span> <span class="n">connection</span> <span class="o">=</span> <span class="n">DriverManager</span><span class="o">.</span><span class="na">getConnection</span><span class="o">(</span><span class="s">"jdbc:calcite:"</span><span class="o">,</span> <span class="n">info</span><span class="o">);</span>
<span class="n">CalciteConnection</span> <span class="n">calciteConnection</span> <span class="o">=</span>
<span class="n">connection</span><span class="o">.</span><span class="na">unwrap</span><span class="o">(</span><span class="n">CalciteConnection</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
-<span class="n">ReflectiveSchema</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">calciteConnection</span><span class="o">,</span>
- <span class="n">calciteConnection</span><span class="o">.</span><span class="na">getRootSchema</span><span class="o">(),</span> <span class="s">"hr"</span><span class="o">,</span> <span class="k">new</span> <span class="n">HrSchema</span><span class="o">());</span>
+<span class="n">SchemaPlus</span> <span class="n">rootSchema</span> <span class="o">=</span> <span class="n">calciteConnection</span><span class="o">.</span><span class="na">getRootSchema</span><span class="o">();</span>
+<span class="n">Schema</span> <span class="n">schema</span> <span class="o">=</span> <span class="n">ReflectiveSchema</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">calciteConnection</span><span class="o">,</span>
+ <span class="n">rootSchema</span><span class="o">,</span> <span class="s">"hr"</span><span class="o">,</span> <span class="k">new</span> <span class="n">HrSchema</span><span class="o">());</span>
+<span class="n">rootSchema</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="s">"hr"</span><span class="o">,</span> <span class="n">schema</span><span class="o">);</span>
<span class="n">Statement</span> <span class="n">statement</span> <span class="o">=</span> <span class="n">calciteConnection</span><span class="o">.</span><span class="na">createStatement</span><span class="o">();</span>
<span class="n">ResultSet</span> <span class="n">resultSet</span> <span class="o">=</span> <span class="n">statement</span><span class="o">.</span><span class="na">executeQuery</span><span class="o">(</span>
<span class="s">"select d.deptno, min(e.empid)\n"</span>
@@ -928,8 +930,8 @@ using operators such as <code class="hig
library. But Calcite can also process data in other data formats, such
as JDBC. In the first example, replace</p>
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="n">ReflectiveSchema</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">calciteConnection</span><span class="o">,</span>
- <span class="n">calciteConnection</span><span class="o">.</span><span class="na">getRootSchema</span><span class="o">(),</span> <span class="s">"hr"</span><span class="o">,</span> <span class="k">new</span> <span class="n">HrSchema</span><span class="o">());</span></code></pre></figure>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="n">Schema</span> <span class="n">schema</span> <span class="o">=</span> <span class="n">ReflectiveSchema</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">calciteConnection</span><span class="o">,</span>
+ <span class="n">rootSchema</span><span class="o">,</span> <span class="s">"hr"</span><span class="o">,</span> <span class="k">new</span> <span class="n">HrSchema</span><span class="o">());</span></code></pre></figure>
<p>with</p>
@@ -938,8 +940,8 @@ as JDBC. In the first example, replace</
<span class="n">dataSource</span><span class="o">.</span><span class="na">setUrl</span><span class="o">(</span><span class="s">"jdbc:mysql://localhost"</span><span class="o">);</span>
<span class="n">dataSource</span><span class="o">.</span><span class="na">setUsername</span><span class="o">(</span><span class="s">"username"</span><span class="o">);</span>
<span class="n">dataSource</span><span class="o">.</span><span class="na">setPassword</span><span class="o">(</span><span class="s">"password"</span><span class="o">);</span>
-<span class="n">JdbcSchema</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">calciteConnection</span><span class="o">.</span><span class="na">getRootSchema</span><span class="o">(),</span> <span class="s">"name"</span><span class="o">,</span> <span class="n">dataSource</span><span class="o">,</span>
- <span class="kc">null</span><span class="o">,</span> <span class="s">"hr"</span><span class="o">);</span></code></pre></figure>
+<span class="n">Schema</span> <span class="n">schema</span> <span class="o">=</span> <span class="n">JdbcSchema</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">rootSchema</span><span class="o">,</span> <span class="s">"hr"</span><span class="o">,</span> <span class="n">dataSource</span><span class="o">,</span>
+ <span class="kc">null</span><span class="o">,</span> <span class="s">"name"</span><span class="o">);</span></code></pre></figure>
<p>and Calcite will execute the same query in JDBC. To the application,
the data and API are the same, but behind the scenes the
Modified: calcite/site/docs/reference.html
URL: http://svn.apache.org/viewvc/calcite/site/docs/reference.html?rev=1782288&r1=1782287&r2=1782288&view=diff
==============================================================================
--- calcite/site/docs/reference.html (original)
+++ calcite/site/docs/reference.html Thu Feb 9 02:35:01 2017
@@ -1028,6 +1028,11 @@ form.</p>
<span class="p">]</span>
<span class="s1">')'</span></code></pre></figure>
+<p>In <em>insert</em>, if the INSERT or UPSERT statement does not specify a
+list of target columns, the query must have the same number of
+columns as the target table, except in certain
+<a href="/apidocs/org/apache/calcite/sql/validate/SqlConformance.html#isInsertSubsetColumnsAllowed--">conformance levels</a>.</p>
+
<p>In <em>merge</em>, at least one of the WHEN MATCHED and WHEN NOT MATCHED clauses must
be present.</p>
@@ -2120,11 +2125,11 @@ the user or application to supply a time
</tr>
<tr>
<td style="text-align: left">CEIL(numeric)</td>
- <td style="text-align: left">Rounds <em>numeric</em> up, and returns the smallest number that is greater than or equal to <em>numeric</em></td>
+ <td style="text-align: left">Rounds <em>numeric</em> up, returning the smallest integer that is greater than or equal to <em>numeric</em></td>
</tr>
<tr>
<td style="text-align: left">FLOOR(numeric)</td>
- <td style="text-align: left">Rounds <em>numeric</em> down, and returns the largest number that is less than or equal to <em>numeric</em></td>
+ <td style="text-align: left">Rounds <em>numeric</em> down, returning the largest integer that is less than or equal to <em>numeric</em></td>
</tr>
<tr>
<td style="text-align: left">RAND([seed])</td>
@@ -2134,6 +2139,62 @@ the user or application to supply a time
<td style="text-align: left">RAND_INTEGER([seed, ] numeric)</td>
<td style="text-align: left">Generates a random integer between 0 and <em>numeric</em> - 1 inclusive, optionally initializing the random number generator with <em>seed</em></td>
</tr>
+ <tr>
+ <td style="text-align: left">ACOS(numeric)</td>
+ <td style="text-align: left">Returns the arc cosine of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">ASIN(numeric)</td>
+ <td style="text-align: left">Returns the arc sine of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">ATAN(numeric)</td>
+ <td style="text-align: left">Returns the arc tangent of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">ATAN2(numeric, numeric)</td>
+ <td style="text-align: left">Returns the arc tangent of the <em>numeric</em> coordinates</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">COS(numeric)</td>
+ <td style="text-align: left">Returns the cosine of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">COT(numeric)</td>
+ <td style="text-align: left">Returns the cotangent of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">DEGREES(numeric)</td>
+ <td style="text-align: left">Converts <em>numeric</em> from radians to degrees</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">PI()</td>
+ <td style="text-align: left">Returns a value that is closer than any other value to <em>pi</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">RADIANS(numeric)</td>
+ <td style="text-align: left">Converts <em>numeric</em> from degrees to radians</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">ROUND(numeric1, numeric2)</td>
+ <td style="text-align: left">Rounds <em>numeric1</em> to <em>numeric2</em> places right to the decimal point</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">SIGN(numeric)</td>
+ <td style="text-align: left">Returns the signum of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">SIN(numeric)</td>
+ <td style="text-align: left">Returns the sine of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">TAN(numeric)</td>
+ <td style="text-align: left">Returns the tangent of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">TRUNCATE(numeric1, numeric2)</td>
+ <td style="text-align: left">Truncates <em>numeric1</em> to <em>numeric2</em> places right to the decimal point</td>
+ </tr>
</tbody>
</table>
@@ -2291,6 +2352,46 @@ the user or application to supply a time
<td style="text-align: left">CEIL(datetime TO timeUnit)</td>
<td style="text-align: left">Rounds <em>datetime</em> up to <em>timeUnit</em></td>
</tr>
+ <tr>
+ <td style="text-align: left">YEAR(date)</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(YEAR FROM date)</code>. Returns an integer.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">QUARTER(date)</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">MONTH(date)</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(MONTH FROM date)</code>. Returns an integer between 1 and 12.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">WEEK(date)</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(WEEK FROM date)</code>. Returns an integer between 1 and 53.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">DAYOFYEAR(date)</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(DOY FROM date)</code>. Returns an integer between 1 and 366.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">DAYOFMONTH(date)</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(DAY FROM date)</code>. Returns an integer between 1 and 31.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">DAYOFWEEK(date)</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(DOW FROM date)</code>. Returns an integer between 1 and 7.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">HOUR(date)</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(HOUR FROM date)</code>. Returns an integer between 0 and 23.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">MINUTE(date)</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(MINUTE FROM date)</code>. Returns an integer between 0 and 59.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">SECOND(date)</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(SECOND FROM date)</code>. Returns an integer between 0 and 59.</td>
+ </tr>
</tbody>
</table>
@@ -2471,10 +2572,46 @@ the user or application to supply a time
<td style="text-align: left">Returns the absolute value of <em>numeric</em></td>
</tr>
<tr>
+ <td style="text-align: left">{fn ACOS(numeric)}</td>
+ <td style="text-align: left">Returns the arc cosine of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn ASIN(numeric)}</td>
+ <td style="text-align: left">Returns the arc sine of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn ATAN(numeric)}</td>
+ <td style="text-align: left">Returns the arc tangent of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn ATAN2(numeric, numeric)}</td>
+ <td style="text-align: left">Returns the arc tangent of the <em>numeric</em> coordinates</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn CEILING(numeric)}</td>
+ <td style="text-align: left">Rounds <em>numeric</em> up, and returns the smallest number that is greater than or equal to <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn COS(numeric)}</td>
+ <td style="text-align: left">Returns the cosine of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn COT(numeric)}</td>
+ <td style="text-align: left">Returns the cotangent of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn DEGREES(numeric)}</td>
+ <td style="text-align: left">Converts <em>numeric</em> from radians to degrees</td>
+ </tr>
+ <tr>
<td style="text-align: left">{fn EXP(numeric)}</td>
<td style="text-align: left">Returns <em>e</em> raised to the power of <em>numeric</em></td>
</tr>
<tr>
+ <td style="text-align: left">{fn FLOOR(numeric)}</td>
+ <td style="text-align: left">Rounds <em>numeric</em> down, and returns the largest number that is less than or equal to <em>numeric</em></td>
+ </tr>
+ <tr>
<td style="text-align: left">{fn LOG(numeric)}</td>
<td style="text-align: left">Returns the natural logarithm (base <em>e</em>) of <em>numeric</em></td>
</tr>
@@ -2487,35 +2624,48 @@ the user or application to supply a time
<td style="text-align: left">Returns the remainder (modulus) of <em>numeric1</em> divided by <em>numeric2</em>. The result is negative only if <em>numeric1</em> is negative</td>
</tr>
<tr>
+ <td style="text-align: left">{fn PI()}</td>
+ <td style="text-align: left">Returns a value that is closer than any other value to <em>pi</em></td>
+ </tr>
+ <tr>
<td style="text-align: left">{fn POWER(numeric1, numeric2)}</td>
<td style="text-align: left">Returns <em>numeric1</em> raised to the power of <em>numeric2</em></td>
</tr>
+ <tr>
+ <td style="text-align: left">{fn RADIANS(numeric)}</td>
+ <td style="text-align: left">Converts <em>numeric</em> from degrees to radians</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn RAND(numeric)}</td>
+ <td style="text-align: left">Returns a random double using <em>numeric</em> as the seed value</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn ROUND(numeric1, numeric2)}</td>
+ <td style="text-align: left">Rounds <em>numeric1</em> to <em>numeric2</em> places right to the decimal point</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn SIGN(numeric)}</td>
+ <td style="text-align: left">Returns the signum of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn SIN(numeric)}</td>
+ <td style="text-align: left">Returns the sine of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn SQRT(numeric)}</td>
+ <td style="text-align: left">Returns the square root of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn TAN(numeric)}</td>
+ <td style="text-align: left">Returns the tangent of <em>numeric</em></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn TRUNCATE(numeric1, numeric2)}</td>
+ <td style="text-align: left">Truncates <em>numeric1</em> to <em>numeric2</em> places right to the decimal point</td>
+ </tr>
</tbody>
</table>
-<p>Not implemented:</p>
-
-<ul>
- <li>{fn ACOS(numeric)} - Returns the arc cosine of <em>numeric</em></li>
- <li>{fn ASIN(numeric)} - Returns the arc sine of <em>numeric</em></li>
- <li>{fn ATAN(numeric)} - Returns the arc tangent of <em>numeric</em></li>
- <li>{fn ATAN2(numeric, numeric)}</li>
- <li>{fn CEILING(numeric)} - Rounds <em>numeric</em> up, and returns the smallest number that is greater than or equal to <em>numeric</em></li>
- <li>{fn COS(numeric)} - Returns the cosine of <em>numeric</em></li>
- <li>{fn COT(numeric)}</li>
- <li>{fn DEGREES(numeric)} - Converts <em>numeric</em> from radians to degrees</li>
- <li>{fn FLOOR(numeric)} - Rounds <em>numeric</em> down, and returns the largest number that is less than or equal to <em>numeric</em></li>
- <li>{fn PI()} - Returns a value that is closer than any other value to <em>pi</em></li>
- <li>{fn RADIANS(numeric)} - Converts <em>numeric</em> from degrees to radians</li>
- <li>{fn RAND(numeric)}</li>
- <li>{fn ROUND(numeric, numeric)}</li>
- <li>{fn SIGN(numeric)}</li>
- <li>{fn SIN(numeric)} - Returns the sine of <em>numeric</em></li>
- <li>{fn SQRT(numeric)} - Returns the square root of <em>numeric</em></li>
- <li>{fn TAN(numeric)} - Returns the tangent of <em>numeric</em></li>
- <li>{fn TRUNCATE(numeric, numeric)}</li>
-</ul>
-
<h4 id="string">String</h4>
<table>
@@ -2562,6 +2712,10 @@ the user or application to supply a time
<td style="text-align: left">{fn UCASE(string)}</td>
<td style="text-align: left">Returns a string in which all alphabetic characters in <em>string</em> have been converted to upper case</td>
</tr>
+ <tr>
+ <td style="text-align: left">{fn REPLACE(string, search, replacement)}</td>
+ <td style="text-align: left">Returns a string in which all the occurrences of <em>search</em> in <em>string</em> are replaced with <em>replacement</em>; if <em>replacement</em> is the empty string, the occurrences of <em>search</em> are removed</td>
+ </tr>
</tbody>
</table>
@@ -2573,7 +2727,6 @@ the user or application to supply a time
<li>{fn DIFFERENCE(string, string)}</li>
<li>{fn LEFT(string, integer)}</li>
<li>{fn REPEAT(string, integer)}</li>
- <li>{fn REPLACE(string, string, string)}</li>
<li>{fn RIGHT(string, integer)}</li>
<li>{fn SOUNDEX(string)}</li>
<li>{fn SPACE(integer)}</li>
@@ -2602,10 +2755,46 @@ the user or application to supply a time
<td style="text-align: left">Equivalent to <code class="highlighter-rouge">LOCALTIMESTAMP</code></td>
</tr>
<tr>
+ <td style="text-align: left">{fn YEAR(date)}</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(YEAR FROM date)</code>. Returns an integer.</td>
+ </tr>
+ <tr>
<td style="text-align: left">{fn QUARTER(date)}</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 MONTH(date)}</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(MONTH FROM date)</code>. Returns an integer between 1 and 12.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn WEEK(date)}</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(WEEK FROM date)</code>. Returns an integer between 1 and 53.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn DAYOFYEAR(date)}</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(DOY FROM date)</code>. Returns an integer between 1 and 366.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn DAYOFMONTH(date)}</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(DAY FROM date)</code>. Returns an integer between 1 and 31.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn DAYOFWEEK(date)}</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(DOW FROM date)</code>. Returns an integer between 1 and 7.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn HOUR(date)}</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(HOUR FROM date)</code>. Returns an integer between 0 and 23.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn MINUTE(date)}</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(MINUTE FROM date)</code>. Returns an integer between 0 and 59.</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn SECOND(date)}</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(SECOND FROM date)</code>. Returns an integer between 0 and 59.</td>
+ </tr>
+ <tr>
<td style="text-align: left">{fn TIMESTAMPADD(timeUnit, count, timestamp)}</td>
<td style="text-align: left">Adds an interval of <em>count</em> <em>timeUnit</em>s to a timestamp</td>
</tr>
@@ -2620,27 +2809,33 @@ the user or application to supply a time
<ul>
<li>{fn DAYNAME(date)}</li>
- <li>{fn DAYOFMONTH(date)}</li>
- <li>{fn DAYOFWEEK(date)}</li>
- <li>{fn DAYOFYEAR(date)}</li>
- <li>{fn HOUR(time)}</li>
- <li>{fn MINUTE(time)}</li>
- <li>{fn MONTH(date)}</li>
<li>{fn MONTHNAME(date)}</li>
- <li>{fn SECOND(time)}</li>
- <li>{fn WEEK(date)}</li>
- <li>{fn YEAR(date)}</li>
</ul>
<h4 id="system">System</h4>
-<p>Not implemented:</p>
-
-<ul>
- <li>{fn DATABASE()}</li>
- <li>{fn IFNULL(value, value)}</li>
- <li>{fn USER(value, value)}</li>
-</ul>
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Operator syntax</th>
+ <th style="text-align: left">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">{fn DATABASE()}</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">CURRENT_CATALOG</code></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn IFNULL(value1, value2)}</td>
+ <td style="text-align: left">Returns value2 if value1 is null</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">{fn USER()}</td>
+ <td style="text-align: left">Equivalent to <code class="highlighter-rouge">CURRENT_USER</code></td>
+ </tr>
+ </tbody>
+</table>
<h4 id="conversion">Conversion</h4>