blob: 9eb332e887305c8529fd070fd607f441138d70a6 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlJdbcFunctionCall (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SqlJdbcFunctionCall (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":9,"i7":9,"i8":9,"i9":10,"i10":10,"i11":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SqlJdbcFunctionCall.html">Use</a></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>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.sql</a></div>
<h2 title="Class SqlJdbcFunctionCall" class="title">Class SqlJdbcFunctionCall</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="SqlOperator.html" title="class in org.apache.calcite.sql">org.apache.calcite.sql.SqlOperator</a></li>
<li>
<ul class="inheritance">
<li><a href="SqlFunction.html" title="class in org.apache.calcite.sql">org.apache.calcite.sql.SqlFunction</a></li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql.SqlJdbcFunctionCall</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">SqlJdbcFunctionCall</span>
extends <a href="SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a></pre>
<div class="block">A <code>SqlJdbcFunctionCall</code> is a node of a parse tree which represents
a JDBC function call. A JDBC call is of the form <code>{fn NAME(arg0, arg1,
...)}</code>.
<p>See <a href="http://java.sun.com/products/jdbc/driverdevs.html">Sun's
documentation for writers of JDBC drivers</a>.*
<table>
<caption>Supported JDBC functions</caption>
<tr>
<th>Function Name</th>
<th>Function Returns</th>
</tr>
<tr>
<td colspan="2"><br>
<h3>NUMERIC FUNCTIONS</h3>
</td>
</tr>
<tr>
<td>ABS(number)</td>
<td>Absolute value of number</td>
</tr>
<tr>
<td>ACOS(float)</td>
<td>Arccosine, in radians, of float</td>
</tr>
<tr>
<td>ASIN(float)</td>
<td>Arcsine, in radians, of float</td>
</tr>
<tr>
<td>ATAN(float)</td>
<td>Arctangent, in radians, of float</td>
</tr>
<tr>
<td>ATAN2(float1, float2)</td>
<td>Arctangent, in radians, of float2 / float1</td>
</tr>
<tr>
<td>CEILING(number)</td>
<td>Smallest integer &gt;= number</td>
</tr>
<tr>
<td>COS(float)</td>
<td>Cosine of float radians</td>
</tr>
<tr>
<td>COT(float)</td>
<td>Cotangent of float radians</td>
</tr>
<tr>
<td>DEGREES(number)</td>
<td>Degrees in number radians</td>
</tr>
<tr>
<td>EXP(float)</td>
<td>Exponential function of float</td>
</tr>
<tr>
<td>FLOOR(number)</td>
<td>Largest integer &lt;= number</td>
</tr>
<tr>
<td>LOG(float)</td>
<td>Base e logarithm of float</td>
</tr>
<tr>
<td>LOG10(float)</td>
<td>Base 10 logarithm of float</td>
</tr>
<tr>
<td>MOD(integer1, integer2)</td>
<td>Rh3ainder for integer1 / integer2</td>
</tr>
<tr>
<td>PI()</td>
<td>The constant pi</td>
</tr>
<tr>
<td>POWER(number, power)</td>
<td>number raised to (integer) power</td>
</tr>
<tr>
<td>RADIANS(number)</td>
<td>Radians in number degrees</td>
</tr>
<tr>
<td>RAND(integer)</td>
<td>Random floating point for seed integer</td>
</tr>
<tr>
<td>ROUND(number, places)</td>
<td>number rounded to places places</td>
</tr>
<tr>
<td>SIGN(number)</td>
<td>-1 to indicate number is &lt; 0; 0 to indicate number is = 0; 1 to
indicate number is &gt; 0</td>
</tr>
<tr>
<td>SIN(float)</td>
<td>Sine of float radians</td>
</tr>
<tr>
<td>SQRT(float)</td>
<td>Square root of float</td>
</tr>
<tr>
<td>TAN(float)</td>
<td>Tangent of float radians</td>
</tr>
<tr>
<td>TRUNCATE(number, places)</td>
<td>number truncated to places places</td>
</tr>
<tr>
<td colspan="2"><br>
<h3>STRING FUNCTIONS</h3>
</td>
</tr>
<tr>
<td>ASCII(string)</td>
<td>Integer representing the ASCII code value of the leftmost character in
string</td>
</tr>
<tr>
<td>CHAR(code)</td>
<td>Character with ASCII code value code, where code is between 0 and
255</td>
</tr>
<tr>
<td>CONCAT(string1, string2)</td>
<td>Character string formed by appending string2 to string1; if a string is
null, the result is DBMS-dependent</td>
</tr>
<tr>
<td>DIFFERENCE(string1, string2)</td>
<td>Integer indicating the difference between the values returned by the
function SOUNDEX for string1 and string2</td>
</tr>
<tr>
<td>INSERT(string1, start, length, string2)</td>
<td>A character string formed by deleting length characters from string1
beginning at start, and inserting string2 into string1 at start</td>
</tr>
<tr>
<td>LCASE(string)</td>
<td>Converts all uppercase characters in string to lowercase</td>
</tr>
<tr>
<td>LEFT(string, count)</td>
<td>The count leftmost characters from string</td>
</tr>
<tr>
<td>LENGTH(string)</td>
<td>Number of characters in string, excluding trailing blanks</td>
</tr>
<tr>
<td>LOCATE(string1, string2[, start])</td>
<td>Position in string2 of the first occurrence of string1, searching from
the beginning of string2; if start is specified, the search begins from
position start. 0 is returned if string2 does not contain string1. Position 1
is the first character in string2.</td>
</tr>
<tr>
<td>LTRIM(string)</td>
<td>Characters of string with leading blank spaces rh3oved</td>
</tr>
<tr>
<td>REPEAT(string, count)</td>
<td>A character string formed by repeating string count times</td>
</tr>
<tr>
<td>REPLACE(string1, string2, string3)</td>
<td>Replaces all occurrences of string2 in string1 with string3</td>
</tr>
<tr>
<td>RIGHT(string, count)</td>
<td>The count rightmost characters in string</td>
</tr>
<tr>
<td>RTRIM(string)</td>
<td>The characters of string with no trailing blanks</td>
</tr>
<tr>
<td>REVERSE(string)</td>
<td>The string with the order of the characters reversed</td>
</tr>
<tr>
<td>SOUNDEX(string)</td>
<td>A character string, which is data source-dependent, representing the
sound of the words in string; this could be a four-digit SOUNDEX code, a
phonetic representation of each word, etc.</td>
</tr>
<tr>
<td>SPACE(count)</td>
<td>A character string consisting of count spaces</td>
</tr>
<tr>
<td>SUBSTRING(string, start, length)</td>
<td>A character string formed by extracting length characters from string
beginning at start</td>
</tr>
<tr>
<td>UCASE(string)</td>
<td>Converts all lowercase characters in string to uppercase</td>
</tr>
<tr>
<td colspan="2"><br>
<h3>TIME and DATE FUNCTIONS</h3>
</td>
</tr>
<tr>
<td>CURDATE()</td>
<td>The current date as a date value</td>
</tr>
<tr>
<td>CURTIME()</td>
<td>The current local time as a time value</td>
</tr>
<tr>
<td>DAYNAME(date)</td>
<td>A character string representing the day component of date; the name for
the day is specific to the data source</td>
</tr>
<tr>
<td>DAYOFMONTH(date)</td>
<td>An integer from 1 to 31 representing the day of the month in date</td>
</tr>
<tr>
<td>DAYOFWEEK(date)</td>
<td>An integer from 1 to 7 representing the day of the week in date; 1
represents Sunday</td>
</tr>
<tr>
<td>DAYOFYEAR(date)</td>
<td>An integer from 1 to 366 representing the day of the year in date</td>
</tr>
<tr>
<td>HOUR(time)</td>
<td>An integer from 0 to 23 representing the hour component of time</td>
</tr>
<tr>
<td>MINUTE(time)</td>
<td>An integer from 0 to 59 representing the minute component of time</td>
</tr>
<tr>
<td>MONTH(date)</td>
<td>An integer from 1 to 12 representing the month component of date</td>
</tr>
<tr>
<td>MONTHNAME(date)</td>
<td>A character string representing the month component of date; the name for
the month is specific to the data source</td>
</tr>
<tr>
<td>NOW()</td>
<td>A timestamp value representing the current date and time</td>
</tr>
<tr>
<td>QUARTER(date)</td>
<td>An integer from 1 to 4 representing the quarter in date; 1 represents
January 1 through March 31</td>
</tr>
<tr>
<td>SECOND(time)</td>
<td>An integer from 0 to 59 representing the second component of time</td>
</tr>
<tr>
<td>TIMESTAMPADD(interval,count, timestamp)</td>
<td>A timestamp calculated by adding count number of interval(s) to
timestamp; interval may be one of the following: SQL_TSI_FRAC_SECOND,
SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK,
SQL_TSI_MONTH, SQL_TSI_QUARTER, or SQL_TSI_YEAR</td>
</tr>
<tr>
<td>TIMESTAMPDIFF(interval,timestamp1, timestamp2)</td>
<td>An integer representing the number of interval(s) by which timestamp2 is
greater than timestamp1; interval may be one of the following:
SQL_TSI_FRAC_SECOND, SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR,
SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, or
SQL_TSI_YEAR</td>
</tr>
<tr>
<td>WEEK(date)</td>
<td>An integer from 1 to 53 representing the week of the year in date</td>
</tr>
<tr>
<td>YEAR(date)</td>
<td>An integer representing the year component of date</td>
</tr>
<tr>
<td colspan="2"><br>
<h3>SYSTEM FUNCTIONS</h3>
</td>
</tr>
<tr>
<td>DATABASE()</td>
<td>Name of the database</td>
</tr>
<tr>
<td>IFNULL(expression, value)</td>
<td>value if expression is null; expression if expression is not null</td>
</tr>
<tr>
<td>USER()</td>
<td>User name in the DBMS
<tr>
<td colspan="2"><br>
<h3>CONVERSION FUNCTIONS</h3>
</td>
</tr>
<tr>
<td>CONVERT(value, SQLtype)</td>
<td>value converted to SQLtype where SQLtype may be one of the following SQL
types: BIGINT, BINARY, BIT, CHAR, DATE, DECIMAL, DOUBLE, FLOAT, INTEGER,
LONGVARBINARY, LONGVARCHAR, REAL, SMALLINT, TIME, TIMESTAMP, TINYINT,
VARBINARY, or VARCHAR</td>
</tr>
</table></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlJdbcFunctionCall.JdbcToInternalLookupTable.html" title="class in org.apache.calcite.sql">SqlJdbcFunctionCall.JdbcToInternalLookupTable</a></span></code></th>
<td class="colLast">
<div class="block">Lookup table between JDBC functions and internal representation</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlJdbcFunctionCall.MakeCall.html" title="interface in org.apache.calcite.sql">SqlJdbcFunctionCall.MakeCall</a></span></code></th>
<td class="colLast">
<div class="block">Converts a call to a JDBC function to a call to a regular function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlJdbcFunctionCall.PermutingMakeCall.html" title="class in org.apache.calcite.sql">SqlJdbcFunctionCall.PermutingMakeCall</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="SqlJdbcFunctionCall.MakeCall.html" title="interface in org.apache.calcite.sql"><code>SqlJdbcFunctionCall.MakeCall</code></a> that can re-order or ignore operands.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlJdbcFunctionCall.SimpleMakeCall.html" title="class in org.apache.calcite.sql">SqlJdbcFunctionCall.SimpleMakeCall</a></span></code></th>
<td class="colLast">
<div class="block">Converter that calls a built-in function with the same arguments.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#jdbcName">jdbcName</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupCall">lookupCall</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="SqlJdbcFunctionCall.MakeCall.html" title="interface in org.apache.calcite.sql">SqlJdbcFunctionCall.MakeCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupMakeCallObj">lookupMakeCallObj</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#NUMERIC_FUNCTIONS">NUMERIC_FUNCTIONS</a></span></code></th>
<td class="colLast">
<div class="block">List of all numeric function names defined by JDBC.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STRING_FUNCTIONS">STRING_FUNCTIONS</a></span></code></th>
<td class="colLast">
<div class="block">List of all string function names defined by JDBC.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SYSTEM_FUNCTIONS">SYSTEM_FUNCTIONS</a></span></code></th>
<td class="colLast">
<div class="block">List of all system function names defined by JDBC.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#thisOperands">thisOperands</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TIME_DATE_FUNCTIONS">TIME_DATE_FUNCTIONS</a></span></code></th>
<td class="colLast">
<div class="block">List of all time/date function names defined by JDBC.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.calcite.sql.SqlOperator">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.calcite.sql.<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></h3>
<code><a href="SqlOperator.html#kind">kind</a>, <a href="SqlOperator.html#MDX_PRECEDENCE">MDX_PRECEDENCE</a>, <a href="SqlOperator.html#NL">NL</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">SqlJdbcFunctionCall</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>private static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#constructFuncList(java.lang.String...)">constructFuncList</a></span>&#8203;(java.lang.String...&nbsp;functionNames)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createCall(org.apache.calcite.sql.SqlLiteral,org.apache.calcite.sql.parser.SqlParserPos,org.apache.calcite.sql.SqlNode...)">createCall</a></span>&#8203;(<a href="SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&nbsp;functionQualifier,
<a href="parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>...&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates a call to this operand with an array of operands.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deriveType(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">deriveType</a></span>&#8203;(<a href="validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</code></th>
<td class="colLast">
<div class="block">Derives the type of a call to this operator.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAllowedSignatures(java.lang.String)">getAllowedSignatures</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Returns a string describing the expected operand types of a call, e.g.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLookupCall()">getLookupCall</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumericFunctions()">getNumericFunctions</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStringFunctions()">getStringFunctions</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSystemFunctions()">getSystemFunctions</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTimeDateFunctions()">getTimeDateFunctions</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inferReturnType(org.apache.calcite.sql.SqlOperatorBinding)">inferReturnType</a></span>&#8203;(<a href="SqlOperatorBinding.html" title="class in org.apache.calcite.sql">SqlOperatorBinding</a>&nbsp;opBinding)</code></th>
<td class="colLast">
<div class="block">Infers the return type of an invocation of this operator; only called
after the number and types of operands have already been validated.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rewriteCall(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.SqlCall)">rewriteCall</a></span>&#8203;(<a href="validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</code></th>
<td class="colLast">
<div class="block">Rewrites a call to this operator.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparse(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlCall,int,int)">unparse</a></span>&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</code></th>
<td class="colLast">
<div class="block">Writes a SQL representation of a call to this operator to a writer,
including parentheses if the operators on either side are of greater
precedence.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.calcite.sql.SqlFunction">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.calcite.sql.<a href="SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a></h3>
<code><a href="SqlFunction.html#getFunctionType()">getFunctionType</a>, <a href="SqlFunction.html#getNameAsId()">getNameAsId</a>, <a href="SqlFunction.html#getParamNames()">getParamNames</a>, <a href="SqlFunction.html#getParamTypes()">getParamTypes</a>, <a href="SqlFunction.html#getSqlIdentifier()">getSqlIdentifier</a>, <a href="SqlFunction.html#getSyntax()">getSyntax</a>, <a href="SqlFunction.html#isQuantifierAllowed()">isQuantifierAllowed</a>, <a href="SqlFunction.html#validateCall(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope)">validateCall</a>, <a href="SqlFunction.html#validateQuantifier(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.SqlCall)">validateQuantifier</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.calcite.sql.SqlOperator">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.calcite.sql.<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></h3>
<code><a href="SqlOperator.html#acceptCall(org.apache.calcite.sql.util.SqlVisitor,org.apache.calcite.sql.SqlCall)">acceptCall</a>, <a href="SqlOperator.html#acceptCall(org.apache.calcite.sql.util.SqlVisitor,org.apache.calcite.sql.SqlCall,boolean,org.apache.calcite.sql.util.SqlBasicVisitor.ArgHandler)">acceptCall</a>, <a href="SqlOperator.html#adjustType(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.type.RelDataType)">adjustType</a>, <a href="SqlOperator.html#allowsFraming()">allowsFraming</a>, <a href="SqlOperator.html#argumentMustBeScalar(int)">argumentMustBeScalar</a>, <a href="SqlOperator.html#checkOperandCount(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.type.SqlOperandTypeChecker,org.apache.calcite.sql.SqlCall)">checkOperandCount</a>, <a href="SqlOperator.html#checkOperandTypes(org.apache.calcite.sql.SqlCallBinding,boolean)">checkOperandTypes</a>, <a href="SqlOperator.html#constructArgNameList(org.apache.calcite.sql.SqlCall)">constructArgNameList</a>, <a href="SqlOperator.html#constructArgTypeList(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall,java.util.List,boolean)">constructArgTypeList</a>, <a href="SqlOperator.html#constructOperandList(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.SqlCall,java.util.List)">constructOperandList</a>, <a href="SqlOperator.html#createCall(org.apache.calcite.sql.parser.SqlParserPos,java.util.List)">createCall</a>, <a href="SqlOperator.html#createCall(org.apache.calcite.sql.parser.SqlParserPos,org.apache.calcite.sql.SqlNode...)">createCall</a>, <a href="SqlOperator.html#createCall(org.apache.calcite.sql.SqlNodeList)">createCall</a>, <a href="SqlOperator.html#equals(java.lang.Object)">equals</a>, <a href="SqlOperator.html#getAllowedSignatures()">getAllowedSignatures</a>, <a href="SqlOperator.html#getKind()">getKind</a>, <a href="SqlOperator.html#getLeftPrec()">getLeftPrec</a>, <a href="SqlOperator.html#getMonotonicity(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">getMonotonicity</a>, <a href="SqlOperator.html#getMonotonicity(org.apache.calcite.sql.SqlOperatorBinding)">getMonotonicity</a>, <a href="SqlOperator.html#getName()">getName</a>, <a href="SqlOperator.html#getOperandCountRange()">getOperandCountRange</a>, <a href="SqlOperator.html#getOperandTypeChecker()">getOperandTypeChecker</a>, <a href="SqlOperator.html#getOperandTypeInference()">getOperandTypeInference</a>, <a href="SqlOperator.html#getReturnTypeInference()">getReturnTypeInference</a>, <a href="SqlOperator.html#getRightPrec()">getRightPrec</a>, <a href="SqlOperator.html#getSignatureTemplate(int)">getSignatureTemplate</a>, <a href="SqlOperator.html#hashCode()">hashCode</a>, <a href="SqlOperator.html#inferReturnType(org.apache.calcite.rel.type.RelDataTypeFactory,java.util.List)">inferReturnType</a>, <a href="SqlOperator.html#isAggregator()">isAggregator</a>, <a href="SqlOperator.html#isDeterministic()">isDeterministic</a>, <a href="SqlOperator.html#isDynamicFunction()">isDynamicFunction</a>, <a href="SqlOperator.html#isGroup()">isGroup</a>, <a href="SqlOperator.html#isGroupAuxiliary()">isGroupAuxiliary</a>, <a href="SqlOperator.html#isName(java.lang.String,boolean)">isName</a>, <a href="SqlOperator.html#leftPrec(int,boolean)">leftPrec</a>, <a href="SqlOperator.html#needsSpace()">needsSpace</a>, <a href="SqlOperator.html#preValidateCall(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">preValidateCall</a>, <a href="SqlOperator.html#requiresDecimalExpansion()">requiresDecimalExpansion</a>, <a href="SqlOperator.html#requiresOrder()">requiresOrder</a>, <a href="SqlOperator.html#requiresOver()">requiresOver</a>, <a href="SqlOperator.html#rightPrec(int,boolean)">rightPrec</a>, <a href="SqlOperator.html#toString()">toString</a>, <a href="SqlOperator.html#unparseListClause(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode)">unparseListClause</a>, <a href="SqlOperator.html#unparseListClause(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlKind)">unparseListClause</a>, <a href="SqlOperator.html#validateOperands(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">validateOperands</a>, <a href="SqlOperator.html#validRexOperands(int,org.apache.calcite.util.Litmus)">validRexOperands</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="NUMERIC_FUNCTIONS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NUMERIC_FUNCTIONS</h4>
<pre>private static final&nbsp;java.lang.String NUMERIC_FUNCTIONS</pre>
<div class="block">List of all numeric function names defined by JDBC.</div>
</li>
</ul>
<a id="STRING_FUNCTIONS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STRING_FUNCTIONS</h4>
<pre>private static final&nbsp;java.lang.String STRING_FUNCTIONS</pre>
<div class="block">List of all string function names defined by JDBC.</div>
</li>
</ul>
<a id="TIME_DATE_FUNCTIONS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TIME_DATE_FUNCTIONS</h4>
<pre>private static final&nbsp;java.lang.String TIME_DATE_FUNCTIONS</pre>
<div class="block">List of all time/date function names defined by JDBC.</div>
</li>
</ul>
<a id="SYSTEM_FUNCTIONS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SYSTEM_FUNCTIONS</h4>
<pre>private static final&nbsp;java.lang.String SYSTEM_FUNCTIONS</pre>
<div class="block">List of all system function names defined by JDBC.</div>
</li>
</ul>
<a id="jdbcName">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>jdbcName</h4>
<pre>private final&nbsp;java.lang.String jdbcName</pre>
</li>
</ul>
<a id="lookupMakeCallObj">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupMakeCallObj</h4>
<pre>private final&nbsp;<a href="SqlJdbcFunctionCall.MakeCall.html" title="interface in org.apache.calcite.sql">SqlJdbcFunctionCall.MakeCall</a> lookupMakeCallObj</pre>
</li>
</ul>
<a id="lookupCall">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupCall</h4>
<pre>private&nbsp;<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a> lookupCall</pre>
</li>
</ul>
<a id="thisOperands">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>thisOperands</h4>
<pre>private&nbsp;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>[] thisOperands</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SqlJdbcFunctionCall</h4>
<pre>public&nbsp;SqlJdbcFunctionCall&#8203;(java.lang.String&nbsp;name)</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="constructFuncList(java.lang.String...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>constructFuncList</h4>
<pre class="methodSignature">private static&nbsp;java.lang.String&nbsp;constructFuncList&#8203;(java.lang.String...&nbsp;functionNames)</pre>
</li>
</ul>
<a id="createCall(org.apache.calcite.sql.SqlLiteral,org.apache.calcite.sql.parser.SqlParserPos,org.apache.calcite.sql.SqlNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createCall</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;createCall&#8203;(<a href="SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&nbsp;functionQualifier,
<a href="parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>...&nbsp;operands)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="SqlOperator.html#createCall(org.apache.calcite.sql.SqlLiteral,org.apache.calcite.sql.parser.SqlParserPos,org.apache.calcite.sql.SqlNode...)">SqlOperator</a></code></span></div>
<div class="block">Creates a call to this operand with an array of operands.
<p>The position of the resulting call is the union of the <code>
pos</code> and the positions of all of the operands.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="SqlOperator.html#createCall(org.apache.calcite.sql.SqlLiteral,org.apache.calcite.sql.parser.SqlParserPos,org.apache.calcite.sql.SqlNode...)">createCall</a></code>&nbsp;in class&nbsp;<code><a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>functionQualifier</code> - function qualifier (e.g. "DISTINCT"), may be</dd>
<dd><code>pos</code> - parser position of the identifier of the call</dd>
<dd><code>operands</code> - array of operands</dd>
</dl>
</li>
</ul>
<a id="rewriteCall(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteCall</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;rewriteCall&#8203;(<a href="validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="SqlOperator.html#rewriteCall(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.SqlCall)">SqlOperator</a></code></span></div>
<div class="block">Rewrites a call to this operator. Some operators are implemented as
trivial rewrites (e.g. NULLIF becomes CASE). However, we don't do this at
createCall time because we want to preserve the original SQL syntax as
much as possible; instead, we do this before the call is validated (so
the trivial operator doesn't need its own implementation of type
derivation methods). The default implementation is to just return the
original call without any rewrite.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="SqlOperator.html#rewriteCall(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.SqlCall)">rewriteCall</a></code>&nbsp;in class&nbsp;<code><a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>validator</code> - Validator</dd>
<dd><code>call</code> - Call to be rewritten</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>rewritten call</dd>
</dl>
</li>
</ul>
<a id="getLookupCall()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLookupCall</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;getLookupCall()</pre>
</li>
</ul>
<a id="getAllowedSignatures(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllowedSignatures</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getAllowedSignatures&#8203;(java.lang.String&nbsp;name)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="SqlOperator.html#getAllowedSignatures(java.lang.String)">SqlOperator</a></code></span></div>
<div class="block">Returns a string describing the expected operand types of a call, e.g.
"SUBSTRING(VARCHAR, INTEGER, INTEGER)" where the name (SUBSTRING in this
example) can be replaced by a specified name.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="SqlOperator.html#getAllowedSignatures(java.lang.String)">getAllowedSignatures</a></code>&nbsp;in class&nbsp;<code><a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></code></dd>
</dl>
</li>
</ul>
<a id="deriveType(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deriveType</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;deriveType&#8203;(<a href="validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="SqlOperator.html#deriveType(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">SqlOperator</a></code></span></div>
<div class="block">Derives the type of a call to this operator.
<p>This method is an intrinsic part of the validation process so, unlike
<a href="SqlOperator.html#inferReturnType(org.apache.calcite.sql.SqlOperatorBinding)"><code>SqlOperator.inferReturnType(org.apache.calcite.sql.SqlOperatorBinding)</code></a>, specific operators would not typically override
this method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="SqlFunction.html#deriveType(org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">deriveType</a></code>&nbsp;in class&nbsp;<code><a href="SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>validator</code> - Validator</dd>
<dd><code>scope</code> - Scope of validation</dd>
<dd><code>call</code> - Call to this operator</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Type of call</dd>
</dl>
</li>
</ul>
<a id="inferReturnType(org.apache.calcite.sql.SqlOperatorBinding)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inferReturnType</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inferReturnType&#8203;(<a href="SqlOperatorBinding.html" title="class in org.apache.calcite.sql">SqlOperatorBinding</a>&nbsp;opBinding)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="SqlOperator.html#inferReturnType(org.apache.calcite.sql.SqlOperatorBinding)">SqlOperator</a></code></span></div>
<div class="block">Infers the return type of an invocation of this operator; only called
after the number and types of operands have already been validated.
Subclasses must either override this method or supply an instance of
<a href="type/SqlReturnTypeInference.html" title="interface in org.apache.calcite.sql.type"><code>SqlReturnTypeInference</code></a> to the constructor.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="SqlOperator.html#inferReturnType(org.apache.calcite.sql.SqlOperatorBinding)">inferReturnType</a></code>&nbsp;in class&nbsp;<code><a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>opBinding</code> - description of invocation (not necessarily a
<a href="SqlCall.html" title="class in org.apache.calcite.sql"><code>SqlCall</code></a>)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>inferred return type</dd>
</dl>
</li>
</ul>
<a id="unparse(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlCall,int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unparse</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;unparse&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="SqlOperator.html#unparse(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlCall,int,int)">SqlOperator</a></code></span></div>
<div class="block">Writes a SQL representation of a call to this operator to a writer,
including parentheses if the operators on either side are of greater
precedence.
<p>The default implementation of this method delegates to
<a href="SqlSyntax.html#unparse(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlOperator,org.apache.calcite.sql.SqlCall,int,int)"><code>SqlSyntax.unparse(org.apache.calcite.sql.SqlWriter, org.apache.calcite.sql.SqlOperator, org.apache.calcite.sql.SqlCall, int, int)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="SqlFunction.html#unparse(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlCall,int,int)">unparse</a></code>&nbsp;in class&nbsp;<code><a href="SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a></code></dd>
</dl>
</li>
</ul>
<a id="getNumericFunctions()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumericFunctions</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;getNumericFunctions()</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>DatabaseMetaData.getNumericFunctions()</code></dd>
</dl>
</li>
</ul>
<a id="getStringFunctions()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStringFunctions</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;getStringFunctions()</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>DatabaseMetaData.getStringFunctions()</code></dd>
</dl>
</li>
</ul>
<a id="getTimeDateFunctions()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTimeDateFunctions</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;getTimeDateFunctions()</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>DatabaseMetaData.getTimeDateFunctions()</code></dd>
</dl>
</li>
</ul>
<a id="getSystemFunctions()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getSystemFunctions</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;getSystemFunctions()</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>DatabaseMetaData.getSystemFunctions()</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SqlJdbcFunctionCall.html">Use</a></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>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>