blob: 571b8b45aeb41c6251cf7f841ae686571b6c6bb7 [file] [log] [blame]
<!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>SqlCastFunction (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="SqlCastFunction (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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/fun/SqlCaseOperator.html" title="class in org.apache.calcite.sql.fun"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/calcite/sql/fun/SqlCoalesceFunction.html" title="class in org.apache.calcite.sql.fun"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/sql/fun/SqlCastFunction.html" target="_top">Frames</a></li>
<li><a href="SqlCastFunction.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.calcite.sql.SqlOperator">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>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.calcite.sql.fun</div>
<h2 title="Class SqlCastFunction" class="title">Class SqlCastFunction</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/calcite/sql/SqlOperator.html" title="class in org.apache.calcite.sql">org.apache.calcite.sql.SqlOperator</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/calcite/sql/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.fun.SqlCastFunction</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">SqlCastFunction</span>
extends <a href="../../../../../org/apache/calcite/sql/SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a></pre>
<div class="block">SqlCastFunction. Note that the std functions are really singleton objects,
because they always get fetched via the StdOperatorTable. So you can't store
any local info in the class and hence the return type data is maintained in
operand[1] through the validation phase.
<p>Can be used for both <a href="../../../../../org/apache/calcite/sql/SqlCall.html" title="class in org.apache.calcite.sql"><code>SqlCall</code></a> and
<a href="../../../../../org/apache/calcite/rex/RexCall.html" title="class in org.apache.calcite.rex"><code>RexCall</code></a>.
Note that the <code>SqlCall</code> has two operands (expression and type),
while the <code>RexCall</code> has one operand (expression) and the type is
obtained from <a href="../../../../../org/apache/calcite/rex/RexNode.html#getType--"><code>RexNode.getType()</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>SqlCastOperator</code></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.calcite.sql.SqlOperator">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.calcite.sql.<a href="../../../../../org/apache/calcite/sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></h3>
<code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html#kind">kind</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#MDX_PRECEDENCE">MDX_PRECEDENCE</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#NL">NL</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/fun/SqlCastFunction.html#SqlCastFunction--">SqlCastFunction</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/fun/SqlCastFunction.html#checkOperandTypes-org.apache.calcite.sql.SqlCallBinding-boolean-">checkOperandTypes</a></span>(<a href="../../../../../org/apache/calcite/sql/SqlCallBinding.html" title="class in org.apache.calcite.sql">SqlCallBinding</a>&nbsp;callBinding,
boolean&nbsp;throwOnFailure)</code>
<div class="block">Makes sure that the number and types of arguments are allowable.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/sql/validate/SqlMonotonicity.html" title="enum in org.apache.calcite.sql.validate">SqlMonotonicity</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/fun/SqlCastFunction.html#getMonotonicity-org.apache.calcite.sql.SqlOperatorBinding-">getMonotonicity</a></span>(<a href="../../../../../org/apache/calcite/sql/SqlOperatorBinding.html" title="class in org.apache.calcite.sql">SqlOperatorBinding</a>&nbsp;call)</code>
<div class="block">Returns whether a call to this operator is monotonic.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/sql/SqlOperandCountRange.html" title="interface in org.apache.calcite.sql">SqlOperandCountRange</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/fun/SqlCastFunction.html#getOperandCountRange--">getOperandCountRange</a></span>()</code>
<div class="block">Returns a constraint on the number of operands expected by this operator.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/fun/SqlCastFunction.html#getSignatureTemplate-int-">getSignatureTemplate</a></span>(int&nbsp;operandsCount)</code>
<div class="block">Returns a template describing how the operator signature is to be built.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/sql/SqlSyntax.html" title="enum in org.apache.calcite.sql">SqlSyntax</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/fun/SqlCastFunction.html#getSyntax--">getSyntax</a></span>()</code>
<div class="block">Returns the syntactic type of this operator, never null.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/fun/SqlCastFunction.html#inferReturnType-org.apache.calcite.sql.SqlOperatorBinding-">inferReturnType</a></span>(<a href="../../../../../org/apache/calcite/sql/SqlOperatorBinding.html" title="class in org.apache.calcite.sql">SqlOperatorBinding</a>&nbsp;opBinding)</code>
<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="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/fun/SqlCastFunction.html#unparse-org.apache.calcite.sql.SqlWriter-org.apache.calcite.sql.SqlCall-int-int-">unparse</a></span>(<a href="../../../../../org/apache/calcite/sql/SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="../../../../../org/apache/calcite/sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</code>
<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 name="methods.inherited.from.class.org.apache.calcite.sql.SqlFunction">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.calcite.sql.<a href="../../../../../org/apache/calcite/sql/SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a></h3>
<code><a href="../../../../../org/apache/calcite/sql/SqlFunction.html#deriveType-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-org.apache.calcite.sql.SqlCall-">deriveType</a>, <a href="../../../../../org/apache/calcite/sql/SqlFunction.html#getFunctionType--">getFunctionType</a>, <a href="../../../../../org/apache/calcite/sql/SqlFunction.html#getNameAsId--">getNameAsId</a>, <a href="../../../../../org/apache/calcite/sql/SqlFunction.html#getParamNames--">getParamNames</a>, <a href="../../../../../org/apache/calcite/sql/SqlFunction.html#getParamTypes--">getParamTypes</a>, <a href="../../../../../org/apache/calcite/sql/SqlFunction.html#getSqlIdentifier--">getSqlIdentifier</a>, <a href="../../../../../org/apache/calcite/sql/SqlFunction.html#isQuantifierAllowed--">isQuantifierAllowed</a>, <a href="../../../../../org/apache/calcite/sql/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="../../../../../org/apache/calcite/sql/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 name="methods.inherited.from.class.org.apache.calcite.sql.SqlOperator">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.calcite.sql.<a href="../../../../../org/apache/calcite/sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></h3>
<code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html#acceptCall-org.apache.calcite.sql.util.SqlVisitor-org.apache.calcite.sql.SqlCall-">acceptCall</a>, <a href="../../../../../org/apache/calcite/sql/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="../../../../../org/apache/calcite/sql/SqlOperator.html#adjustType-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.SqlCall-org.apache.calcite.rel.type.RelDataType-">adjustType</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#allowsFraming--">allowsFraming</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#argumentMustBeScalar-int-">argumentMustBeScalar</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#checkOperandCount-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.type.SqlOperandTypeChecker-org.apache.calcite.sql.SqlCall-">checkOperandCount</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#constructArgNameList-org.apache.calcite.sql.SqlCall-">constructArgNameList</a>, <a href="../../../../../org/apache/calcite/sql/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="../../../../../org/apache/calcite/sql/SqlOperator.html#constructOperandList-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.SqlCall-java.util.List-">constructOperandList</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#createCall-org.apache.calcite.sql.SqlLiteral-org.apache.calcite.sql.parser.SqlParserPos-org.apache.calcite.sql.SqlNode...-">createCall</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#createCall-org.apache.calcite.sql.SqlNodeList-">createCall</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#createCall-org.apache.calcite.sql.parser.SqlParserPos-java.util.List-">createCall</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#createCall-org.apache.calcite.sql.parser.SqlParserPos-org.apache.calcite.sql.SqlNode...-">createCall</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getAllowedSignatures--">getAllowedSignatures</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getAllowedSignatures-java.lang.String-">getAllowedSignatures</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getKind--">getKind</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getLeftPrec--">getLeftPrec</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getMonotonicity-org.apache.calcite.sql.SqlCall-org.apache.calcite.sql.validate.SqlValidatorScope-">getMonotonicity</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getName--">getName</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getOperandTypeChecker--">getOperandTypeChecker</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getOperandTypeInference--">getOperandTypeInference</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getReturnTypeInference--">getReturnTypeInference</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getRightPrec--">getRightPrec</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getStrongPolicyInference--">getStrongPolicyInference</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#inferReturnType-org.apache.calcite.rel.type.RelDataTypeFactory-java.util.List-">inferReturnType</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#isAggregator--">isAggregator</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#isDeterministic--">isDeterministic</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#isDynamicFunction--">isDynamicFunction</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#isGroup--">isGroup</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#isGroupAuxiliary--">isGroupAuxiliary</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#isName-java.lang.String-boolean-">isName</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#isSymmetrical--">isSymmetrical</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#leftPrec-int-boolean-">leftPrec</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#preValidateCall-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-org.apache.calcite.sql.SqlCall-">preValidateCall</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#requiresDecimalExpansion--">requiresDecimalExpansion</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#requiresOrder--">requiresOrder</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#requiresOver--">requiresOver</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#rewriteCall-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.SqlCall-">rewriteCall</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#rightPrec-int-boolean-">rightPrec</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#toString--">toString</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#unparseListClause-org.apache.calcite.sql.SqlWriter-org.apache.calcite.sql.SqlNode-">unparseListClause</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#unparseListClause-org.apache.calcite.sql.SqlWriter-org.apache.calcite.sql.SqlNode-org.apache.calcite.sql.SqlKind-">unparseListClause</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#validateOperands-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-org.apache.calcite.sql.SqlCall-">validateOperands</a>, <a href="../../../../../org/apache/calcite/sql/SqlOperator.html#validRexOperands-int-org.apache.calcite.util.Litmus-">validRexOperands</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SqlCastFunction--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SqlCastFunction</h4>
<pre>public&nbsp;SqlCastFunction()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="inferReturnType-org.apache.calcite.sql.SqlOperatorBinding-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inferReturnType</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inferReturnType(<a href="../../../../../org/apache/calcite/sql/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="../../../../../org/apache/calcite/sql/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="../../../../../org/apache/calcite/sql/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="../../../../../org/apache/calcite/sql/SqlOperator.html#inferReturnType-org.apache.calcite.sql.SqlOperatorBinding-">inferReturnType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/calcite/sql/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="../../../../../org/apache/calcite/sql/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 name="getSignatureTemplate-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSignatureTemplate</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSignatureTemplate(int&nbsp;operandsCount)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getSignatureTemplate-int-">SqlOperator</a></code></span></div>
<div class="block">Returns a template describing how the operator signature is to be built.
E.g for the binary + operator the template looks like "{1} {0} {2}" {0}
is the operator, subsequent numbers are operands.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getSignatureTemplate-int-">getSignatureTemplate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>operandsCount</code> - is used with functions that can take a variable
number of operands</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>signature template, or null to indicate that a default template
will suffice</dd>
</dl>
</li>
</ul>
<a name="getOperandCountRange--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOperandCountRange</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/sql/SqlOperandCountRange.html" title="interface in org.apache.calcite.sql">SqlOperandCountRange</a>&nbsp;getOperandCountRange()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getOperandCountRange--">SqlOperator</a></code></span></div>
<div class="block">Returns a constraint on the number of operands expected by this operator.
Subclasses may override this method; when they don't, the range is
derived from the <a href="../../../../../org/apache/calcite/sql/type/SqlOperandTypeChecker.html" title="interface in org.apache.calcite.sql.type"><code>SqlOperandTypeChecker</code></a> associated with this
operator.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getOperandCountRange--">getOperandCountRange</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>acceptable range</dd>
</dl>
</li>
</ul>
<a name="checkOperandTypes-org.apache.calcite.sql.SqlCallBinding-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkOperandTypes</h4>
<pre>public&nbsp;boolean&nbsp;checkOperandTypes(<a href="../../../../../org/apache/calcite/sql/SqlCallBinding.html" title="class in org.apache.calcite.sql">SqlCallBinding</a>&nbsp;callBinding,
boolean&nbsp;throwOnFailure)</pre>
<div class="block">Makes sure that the number and types of arguments are allowable.
Operators (such as "ROW" and "AS") which do not check their arguments can
override this method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html#checkOperandTypes-org.apache.calcite.sql.SqlCallBinding-boolean-">checkOperandTypes</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callBinding</code> - description of call</dd>
<dd><code>throwOnFailure</code> - whether to throw an exception if check fails
(otherwise returns false in that case)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether check succeeded</dd>
</dl>
</li>
</ul>
<a name="getSyntax--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSyntax</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/sql/SqlSyntax.html" title="enum in org.apache.calcite.sql">SqlSyntax</a>&nbsp;getSyntax()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getSyntax--">SqlOperator</a></code></span></div>
<div class="block">Returns the syntactic type of this operator, never null.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/calcite/sql/SqlFunction.html#getSyntax--">getSyntax</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/calcite/sql/SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a></code></dd>
</dl>
</li>
</ul>
<a name="unparse-org.apache.calcite.sql.SqlWriter-org.apache.calcite.sql.SqlCall-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unparse</h4>
<pre>public&nbsp;void&nbsp;unparse(<a href="../../../../../org/apache/calcite/sql/SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="../../../../../org/apache/calcite/sql/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="../../../../../org/apache/calcite/sql/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="../../../../../org/apache/calcite/sql/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="../../../../../org/apache/calcite/sql/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="../../../../../org/apache/calcite/sql/SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a></code></dd>
</dl>
</li>
</ul>
<a name="getMonotonicity-org.apache.calcite.sql.SqlOperatorBinding-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getMonotonicity</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/sql/validate/SqlMonotonicity.html" title="enum in org.apache.calcite.sql.validate">SqlMonotonicity</a>&nbsp;getMonotonicity(<a href="../../../../../org/apache/calcite/sql/SqlOperatorBinding.html" title="class in org.apache.calcite.sql">SqlOperatorBinding</a>&nbsp;call)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getMonotonicity-org.apache.calcite.sql.SqlOperatorBinding-">SqlOperator</a></code></span></div>
<div class="block">Returns whether a call to this operator is monotonic.
<p>Default implementation returns <a href="../../../../../org/apache/calcite/sql/validate/SqlMonotonicity.html#NOT_MONOTONIC"><code>SqlMonotonicity.NOT_MONOTONIC</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html#getMonotonicity-org.apache.calcite.sql.SqlOperatorBinding-">getMonotonicity</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/calcite/sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - Call to this operator with particular arguments and information
about the monotonicity of the arguments</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= 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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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/fun/SqlCaseOperator.html" title="class in org.apache.calcite.sql.fun"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/calcite/sql/fun/SqlCoalesceFunction.html" title="class in org.apache.calcite.sql.fun"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/sql/fun/SqlCastFunction.html" target="_top">Frames</a></li>
<li><a href="SqlCastFunction.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.calcite.sql.SqlOperator">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>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</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>