<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.calcite.sql.fun (Apache Calcite calcite API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="org.apache.calcite.sql.fun (Apache Calcite calcite API)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/calcite/sql/dialect/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../org/apache/calcite/sql/parser/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/sql/fun/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.calcite.sql.fun</h1>
<div class="docSummary">
<div class="block">Defines the set of standard SQL row-level functions and
 operators.</div>
</div>
<p>See:&nbsp;<a href="#package.description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/OracleSqlOperatorTable.html" title="class in org.apache.calcite.sql.fun">OracleSqlOperatorTable</a></td>
<td class="colLast">Deprecated
<div class="block"><span class="deprecationComment">Use
 <a href="../../../../../org/apache/calcite/sql/fun/SqlLibraryOperatorTableFactory.html#getOperatorTable-org.apache.calcite.sql.fun.SqlLibrary...-"><code>SqlLibraryOperatorTableFactory.getOperatorTable(SqlLibrary...)</code></a>
 instead, passing <a href="../../../../../org/apache/calcite/sql/fun/SqlLibrary.html#ORACLE"><code>SqlLibrary.ORACLE</code></a> as argument.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlAbstractGroupFunction.html" title="class in org.apache.calcite.sql.fun">SqlAbstractGroupFunction</a></td>
<td class="colLast">
<div class="block">Base class for grouping functions <code>GROUP_ID</code>, <code>GROUPING_ID</code>,
 <code>GROUPING</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlAbstractTimeFunction.html" title="class in org.apache.calcite.sql.fun">SqlAbstractTimeFunction</a></td>
<td class="colLast">
<div class="block">Base class for time functions such as "LOCALTIME", "LOCALTIME(n)".</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlAnyValueAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlAnyValueAggFunction</a></td>
<td class="colLast">
<div class="block">Definition of the <code>ANY_VALUE</code> aggregate functions,
 returning any one of the values which go into it.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlArrayQueryConstructor.html" title="class in org.apache.calcite.sql.fun">SqlArrayQueryConstructor</a></td>
<td class="colLast">
<div class="block">Definition of the SQL:2003 standard ARRAY query constructor, <code>
 ARRAY (&lt;query&gt;)</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlArrayValueConstructor.html" title="class in org.apache.calcite.sql.fun">SqlArrayValueConstructor</a></td>
<td class="colLast">
<div class="block">Definition of the SQL:2003 standard ARRAY constructor, <code>ARRAY
 [&lt;expr&gt;, ...]</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlAvgAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlAvgAggFunction</a></td>
<td class="colLast">
<div class="block"><code>Avg</code> is an aggregator which returns the average of the values
 which go into it.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlBaseContextVariable.html" title="class in org.apache.calcite.sql.fun">SqlBaseContextVariable</a></td>
<td class="colLast">
<div class="block">Base class for functions such as "USER", "CURRENT_ROLE", and "CURRENT_PATH".</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlBetweenOperator.html" title="class in org.apache.calcite.sql.fun">SqlBetweenOperator</a></td>
<td class="colLast">
<div class="block">Defines the BETWEEN operator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlBitOpAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlBitOpAggFunction</a></td>
<td class="colLast">
<div class="block">Definition of the <code>BIT_AND</code> and <code>BIT_OR</code> aggregate functions,
 returning the bitwise AND/OR of all non-null input values, or null if none.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlCase.html" title="class in org.apache.calcite.sql.fun">SqlCase</a></td>
<td class="colLast">
<div class="block">A <code>SqlCase</code> is a node of a parse tree which represents a case
 statement.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlCaseOperator.html" title="class in org.apache.calcite.sql.fun">SqlCaseOperator</a></td>
<td class="colLast">
<div class="block">An operator describing a <code>CASE</code>, <code>NULLIF</code> or <code>
 COALESCE</code> expression.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlCastFunction.html" title="class in org.apache.calcite.sql.fun">SqlCastFunction</a></td>
<td class="colLast">
<div class="block">SqlCastFunction.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlCoalesceFunction.html" title="class in org.apache.calcite.sql.fun">SqlCoalesceFunction</a></td>
<td class="colLast">
<div class="block">The <code>COALESCE</code> function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlCollectionTableOperator.html" title="class in org.apache.calcite.sql.fun">SqlCollectionTableOperator</a></td>
<td class="colLast">
<div class="block">SqlCollectionTableOperator is the "table function derived table" operator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlColumnListConstructor.html" title="class in org.apache.calcite.sql.fun">SqlColumnListConstructor</a></td>
<td class="colLast">
<div class="block">SqlColumnListConstructor defines the non-standard constructor used to pass a
 COLUMN_LIST parameter to a UDX.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlConvertFunction.html" title="class in org.apache.calcite.sql.fun">SqlConvertFunction</a></td>
<td class="colLast">
<div class="block">Common base for the <code>CONVERT</code> and <code>TRANSLATE</code>
 functions.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlCountAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlCountAggFunction</a></td>
<td class="colLast">
<div class="block">Definition of the SQL <code>COUNT</code> aggregation function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlCovarAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlCovarAggFunction</a></td>
<td class="colLast">
<div class="block"><code>Covar</code> is an aggregator which returns the Covariance of the
 values which go into it.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlCurrentDateFunction.html" title="class in org.apache.calcite.sql.fun">SqlCurrentDateFunction</a></td>
<td class="colLast">
<div class="block">The <code>CURRENT_DATE</code> function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlCursorConstructor.html" title="class in org.apache.calcite.sql.fun">SqlCursorConstructor</a></td>
<td class="colLast">
<div class="block">SqlCursorConstructor defines the non-standard CURSOR(&lt;query&gt;)
 constructor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlDatePartFunction.html" title="class in org.apache.calcite.sql.fun">SqlDatePartFunction</a></td>
<td class="colLast">
<div class="block">SqlDatePartFunction represents the SQL:1999 standard <code>YEAR</code>,
 <code>QUARTER</code>, <code>MONTH</code> and <code>DAY</code> functions.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlDatetimePlusOperator.html" title="class in org.apache.calcite.sql.fun">SqlDatetimePlusOperator</a></td>
<td class="colLast">
<div class="block">Operator that adds an INTERVAL to a DATETIME.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlDatetimeSubtractionOperator.html" title="class in org.apache.calcite.sql.fun">SqlDatetimeSubtractionOperator</a></td>
<td class="colLast">
<div class="block">A special operator for the subtraction of two DATETIMEs.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlDotOperator.html" title="class in org.apache.calcite.sql.fun">SqlDotOperator</a></td>
<td class="colLast">
<div class="block">The dot operator <code>.</code>, used to access a field of a
 record.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlExtractFunction.html" title="class in org.apache.calcite.sql.fun">SqlExtractFunction</a></td>
<td class="colLast">
<div class="block">The SQL <code>EXTRACT</code> operator.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlFirstLastValueAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlFirstLastValueAggFunction</a></td>
<td class="colLast">
<div class="block"><code>FIRST_VALUE</code> and <code>LAST_VALUE</code> aggregate functions
 return the first or the last value in a list of values that are input to the
 function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlFloorFunction.html" title="class in org.apache.calcite.sql.fun">SqlFloorFunction</a></td>
<td class="colLast">
<div class="block">Definition of the "FLOOR" and "CEIL" built-in SQL functions.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlHistogramAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlHistogramAggFunction</a></td>
<td class="colLast">
<div class="block"><code>HISTOGRAM</code> is the base operator that supports the Histogram
 MIN/MAX aggregate functions.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlInOperator.html" title="class in org.apache.calcite.sql.fun">SqlInOperator</a></td>
<td class="colLast">
<div class="block">Definition of the SQL <code>IN</code> operator, which tests for a value's
 membership in a sub-query or a list of values.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonArrayAggAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonArrayAggAggFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_OBJECTAGG</code> aggregate function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonArrayFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonArrayFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_ARRAY</code> function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonDepthFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonDepthFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_DEPTH</code> function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonExistsFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonExistsFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_EXISTS</code> function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonKeysFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonKeysFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_KEYS</code> function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonLengthFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonLengthFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_LENGTH</code> function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonObjectAggAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonObjectAggAggFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_OBJECTAGG</code> aggregate function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonObjectFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonObjectFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_OBJECT</code> function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonPrettyFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonPrettyFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_TYPE</code> function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonQueryFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonQueryFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_QUERY</code> function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonRemoveFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonRemoveFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_REMOVE</code> function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonStorageSizeFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonStorageSizeFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_STORAGE_SIZE</code> function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonTypeFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonTypeFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_TYPE</code> function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonValueExpressionOperator.html" title="class in org.apache.calcite.sql.fun">SqlJsonValueExpressionOperator</a></td>
<td class="colLast">
<div class="block">The JSON value expression operator that indicates that the value expression
 should be parsed as JSON.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlJsonValueFunction.html" title="class in org.apache.calcite.sql.fun">SqlJsonValueFunction</a></td>
<td class="colLast">
<div class="block">The <code>JSON_VALUE</code> function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlLeadLagAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlLeadLagAggFunction</a></td>
<td class="colLast">
<div class="block"><code>LEAD</code> and <code>LAG</code> aggregate functions
 return the value of given expression evaluated at given offset.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlLibraryOperators.html" title="class in org.apache.calcite.sql.fun">SqlLibraryOperators</a></td>
<td class="colLast">
<div class="block">Defines functions and operators that are not part of standard SQL but
 belong to one or more other dialects of SQL.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlLibraryOperatorTableFactory.html" title="class in org.apache.calcite.sql.fun">SqlLibraryOperatorTableFactory</a></td>
<td class="colLast">
<div class="block">Factory that creates operator tables that consist of functions and operators
 for particular named libraries.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlLikeOperator.html" title="class in org.apache.calcite.sql.fun">SqlLikeOperator</a></td>
<td class="colLast">
<div class="block">An operator describing the <code>LIKE</code> and <code>SIMILAR</code>
 operators.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlLiteralChainOperator.html" title="class in org.apache.calcite.sql.fun">SqlLiteralChainOperator</a></td>
<td class="colLast">
<div class="block">Internal operator, by which the parser represents a continued string literal.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlMapQueryConstructor.html" title="class in org.apache.calcite.sql.fun">SqlMapQueryConstructor</a></td>
<td class="colLast">
<div class="block">Definition of the MAP query constructor, <code>
 MAP (&lt;query&gt;)</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlMapValueConstructor.html" title="class in org.apache.calcite.sql.fun">SqlMapValueConstructor</a></td>
<td class="colLast">
<div class="block">Definition of the MAP constructor,
 <code>MAP [&lt;key&gt;, &lt;value&gt;, ...]</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlMinMaxAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlMinMaxAggFunction</a></td>
<td class="colLast">
<div class="block">Definition of the <code>MIN</code> and <code>MAX</code> aggregate functions,
 returning the returns the smallest/largest of the values which go into it.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlMonotonicBinaryOperator.html" title="class in org.apache.calcite.sql.fun">SqlMonotonicBinaryOperator</a></td>
<td class="colLast">
<div class="block">Base class for binary operators such as addition, subtraction, and
 multiplication which are monotonic for the patterns <code>m op c</code> and
 <code>c op m</code> where m is any monotonic expression and c is a constant.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlMonotonicUnaryFunction.html" title="class in org.apache.calcite.sql.fun">SqlMonotonicUnaryFunction</a></td>
<td class="colLast">
<div class="block">Base class for unary operators such as FLOOR/CEIL which are monotonic for
 monotonic inputs.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlMultisetMemberOfOperator.html" title="class in org.apache.calcite.sql.fun">SqlMultisetMemberOfOperator</a></td>
<td class="colLast">
<div class="block">Multiset MEMBER OF.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlMultisetQueryConstructor.html" title="class in org.apache.calcite.sql.fun">SqlMultisetQueryConstructor</a></td>
<td class="colLast">
<div class="block">Definition of the SQL:2003 standard MULTISET query constructor, <code>
 MULTISET (&lt;query&gt;)</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlMultisetSetOperator.html" title="class in org.apache.calcite.sql.fun">SqlMultisetSetOperator</a></td>
<td class="colLast">
<div class="block">An operator which performs set operations on multisets, such as "MULTISET
 UNION ALL".</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlMultisetValueConstructor.html" title="class in org.apache.calcite.sql.fun">SqlMultisetValueConstructor</a></td>
<td class="colLast">
<div class="block">Definition of the SQL:2003 standard MULTISET constructor, <code>MULTISET
 [&lt;expr&gt;, ...]</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlNewOperator.html" title="class in org.apache.calcite.sql.fun">SqlNewOperator</a></td>
<td class="colLast">
<div class="block">SqlNewOperator represents an SQL <code>new specification</code> such as
 <code>NEW UDT(1, 2)</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlNthValueAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlNthValueAggFunction</a></td>
<td class="colLast">
<div class="block"><code>NTH_VALUE</code> windowed aggregate function
 returns the value of an expression evaluated at the <code>n</code>th row of the
 window frame.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlNtileAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlNtileAggFunction</a></td>
<td class="colLast">
<div class="block"><code>NTILE</code> aggregate function
 return the value of given expression evaluated at given offset.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlNullifFunction.html" title="class in org.apache.calcite.sql.fun">SqlNullifFunction</a></td>
<td class="colLast">
<div class="block">The <code>NULLIF</code> function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlOverlapsOperator.html" title="class in org.apache.calcite.sql.fun">SqlOverlapsOperator</a></td>
<td class="colLast">
<div class="block">SqlOverlapsOperator represents the SQL:1999 standard <code>OVERLAPS</code>
 function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlOverlayFunction.html" title="class in org.apache.calcite.sql.fun">SqlOverlayFunction</a></td>
<td class="colLast">
<div class="block">The <code>OVERLAY</code> function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlPositionFunction.html" title="class in org.apache.calcite.sql.fun">SqlPositionFunction</a></td>
<td class="colLast">
<div class="block">The <code>POSITION</code> function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlPosixRegexOperator.html" title="class in org.apache.calcite.sql.fun">SqlPosixRegexOperator</a></td>
<td class="colLast">
<div class="block">An operator describing the <code>~</code> operator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlQuantifyOperator.html" title="class in org.apache.calcite.sql.fun">SqlQuantifyOperator</a></td>
<td class="colLast">
<div class="block">Definition of the SQL <code>ALL</code> and <code>SOME</code>operators.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlRandFunction.html" title="class in org.apache.calcite.sql.fun">SqlRandFunction</a></td>
<td class="colLast">
<div class="block">The <code>RAND</code> function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlRandIntegerFunction.html" title="class in org.apache.calcite.sql.fun">SqlRandIntegerFunction</a></td>
<td class="colLast">
<div class="block">The <code>RAND_INTEGER</code> function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlRegexpReplaceFunction.html" title="class in org.apache.calcite.sql.fun">SqlRegexpReplaceFunction</a></td>
<td class="colLast">
<div class="block">The REGEXP_REPLACE(source_string, pattern, replacement [, pos, occurrence, match_type])
 searches for a regular expression pattern and replaces every occurrence of the pattern
 with the specified string.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlRegrCountAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlRegrCountAggFunction</a></td>
<td class="colLast">
<div class="block">Definition of the SQL <code>REGR_COUNT</code> aggregation function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlRowOperator.html" title="class in org.apache.calcite.sql.fun">SqlRowOperator</a></td>
<td class="colLast">
<div class="block">SqlRowOperator represents the special ROW constructor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlSequenceValueOperator.html" title="class in org.apache.calcite.sql.fun">SqlSequenceValueOperator</a></td>
<td class="colLast">
<div class="block">Operator that returns the current or next value of a sequence.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlSingleValueAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlSingleValueAggFunction</a></td>
<td class="colLast">
<div class="block"><code>SINGLE_VALUE</code> aggregate function returns the input value if there
 is only one value in the input; Otherwise it triggers a run-time error.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlStdOperatorTable.html" title="class in org.apache.calcite.sql.fun">SqlStdOperatorTable</a></td>
<td class="colLast">
<div class="block">Implementation of <a href="../../../../../org/apache/calcite/sql/SqlOperatorTable.html" title="interface in org.apache.calcite.sql"><code>SqlOperatorTable</code></a> containing
 the standard operators and functions.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlStringContextVariable.html" title="class in org.apache.calcite.sql.fun">SqlStringContextVariable</a></td>
<td class="colLast">
<div class="block">Base class for string functions such as "USER", "CURRENT_ROLE", and
 "CURRENT_PATH".</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlSubstringFunction.html" title="class in org.apache.calcite.sql.fun">SqlSubstringFunction</a></td>
<td class="colLast">
<div class="block">Definition of the "SUBSTRING" builtin SQL function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlSumAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlSumAggFunction</a></td>
<td class="colLast">
<div class="block"><code>Sum</code> is an aggregator which returns the sum of the values which
 go into it.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlSumEmptyIsZeroAggFunction.html" title="class in org.apache.calcite.sql.fun">SqlSumEmptyIsZeroAggFunction</a></td>
<td class="colLast">
<div class="block"><code>Sum0</code> is an aggregator which returns the sum of the values which
 go into it like <code>Sum</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlThrowOperator.html" title="class in org.apache.calcite.sql.fun">SqlThrowOperator</a></td>
<td class="colLast">
<div class="block">An internal operator that throws an exception.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlTimestampAddFunction.html" title="class in org.apache.calcite.sql.fun">SqlTimestampAddFunction</a></td>
<td class="colLast">
<div class="block">The <code>TIMESTAMPADD</code> function, which adds an interval to a
 datetime (TIMESTAMP, TIME or DATE).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlTranslate3Function.html" title="class in org.apache.calcite.sql.fun">SqlTranslate3Function</a></td>
<td class="colLast">
<div class="block">Definition of the "TRANSLATE" built-in SQL function that takes 3 arguments.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlTrimFunction.html" title="class in org.apache.calcite.sql.fun">SqlTrimFunction</a></td>
<td class="colLast">
<div class="block">Definition of the "TRIM" builtin SQL function.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Enum</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlAvgAggFunction.Subtype.html" title="enum in org.apache.calcite.sql.fun">SqlAvgAggFunction.Subtype</a></td>
<td class="colLast">Deprecated</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlBetweenOperator.Flag.html" title="enum in org.apache.calcite.sql.fun">SqlBetweenOperator.Flag</a></td>
<td class="colLast">
<div class="block">Defines the "SYMMETRIC" and "ASYMMETRIC" keywords.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlCovarAggFunction.Subtype.html" title="enum in org.apache.calcite.sql.fun">SqlCovarAggFunction.Subtype</a></td>
<td class="colLast">Deprecated</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a></td>
<td class="colLast">
<div class="block">A library is a collection of SQL functions and operators.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/SqlTrimFunction.Flag.html" title="enum in org.apache.calcite.sql.fun">SqlTrimFunction.Flag</a></td>
<td class="colLast">
<div class="block">Defines the enumerated values "LEADING", "TRAILING", "BOTH".</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Annotation Types Summary table, listing annotation types, and an explanation">
<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Annotation Type</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/calcite/sql/fun/LibraryOperator.html" title="annotation in org.apache.calcite.sql.fun">LibraryOperator</a></td>
<td class="colLast">
<div class="block">An annotation that is read by <a href="../../../../../org/apache/calcite/sql/fun/SqlLibraryOperatorTableFactory.html" title="class in org.apache.calcite.sql.fun"><code>SqlLibraryOperatorTableFactory</code></a> to
 add functions and operators to a library.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package.description">
<!--   -->
</a>
<h2 title="Package org.apache.calcite.sql.fun Description">Package org.apache.calcite.sql.fun Description</h2>
<div class="block">Defines the set of standard SQL row-level functions and
 operators.

 <p>The standard set of row-level functions and operators are declared in
 class <a href="../../../../../org/apache/calcite/sql/fun/SqlStdOperatorTable.html" title="class in org.apache.calcite.sql.fun"><code>SqlStdOperatorTable</code></a>. Anonymous inner
 classes within that table are allowed only for specifying an operator's test
 function; if other custom code is needed for an operator, it should be
 implemented in a top-level class within this package instead.  Operators
 which are not row-level (e.g. select and join) should be defined in package
 <code>org.apache.calcite.sql</code> instead.</p></div>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/calcite/sql/dialect/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../org/apache/calcite/sql/parser/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/sql/fun/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>
