blob: fd9578ad8504b2cdc5a830840aa521d3be799968 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SqlOperator (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="SqlOperator (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":42,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":6,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":9,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":9,"i47":10,"i48":10,"i49":42,"i50":42,"i51":10,"i52":10,"i53":10};
var tabs = {65535:["t0","所有方法"],1:["t1","静态方法"],2:["t2","实例方法"],4:["t3","抽象方法"],8:["t4","具体方法"],32:["t6","已过时的方法"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../overview-summary.html">概览</a></li>
<li><a href="package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-all.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</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/SqlOperandCountRange.html" title="org.apache.calcite.sql中的接口"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../org/apache/calcite/sql/SqlOperatorBinding.html" title="org.apache.calcite.sql中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/sql/SqlOperator.html" target="_top">框架</a></li>
<li><a href="SqlOperator.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">所有类</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>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li><a href="#field.summary">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li><a href="#field.detail">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</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</div>
<h2 title="类 SqlOperator" class="title">类 SqlOperator</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="java.lang中的类或接口">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql.SqlOperator</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>直接已知子类:</dt>
<dd><a href="../../../../org/apache/calcite/sql/SqlBinaryOperator.html" title="org.apache.calcite.sql中的类">SqlBinaryOperator</a>, <a href="../../../../org/apache/calcite/sql/fun/SqlCaseOperator.html" title="org.apache.calcite.sql.fun中的类">SqlCaseOperator</a>, <a href="../../../../org/apache/calcite/sql/SqlDescriptorOperator.html" title="org.apache.calcite.sql中的类">SqlDescriptorOperator</a>, <a href="../../../../org/apache/calcite/sql/SqlFunction.html" title="org.apache.calcite.sql中的类">SqlFunction</a>, <a href="../../../../org/apache/calcite/sql/SqlJoin.SqlJoinOperator.html" title="org.apache.calcite.sql中的类">SqlJoin.SqlJoinOperator</a>, <a href="../../../../org/apache/calcite/sql/SqlMatchRecognize.SqlMatchRecognizeOperator.html" title="org.apache.calcite.sql中的类">SqlMatchRecognize.SqlMatchRecognizeOperator</a>, <a href="../../../../org/apache/calcite/sql/SqlPostfixOperator.html" title="org.apache.calcite.sql中的类">SqlPostfixOperator</a>, <a href="../../../../org/apache/calcite/sql/SqlPrefixOperator.html" title="org.apache.calcite.sql中的类">SqlPrefixOperator</a>, <a href="../../../../org/apache/calcite/sql/SqlSelectOperator.html" title="org.apache.calcite.sql中的类">SqlSelectOperator</a>, <a href="../../../../org/apache/calcite/sql/SqlSnapshot.SqlSnapshotOperator.html" title="org.apache.calcite.sql中的类">SqlSnapshot.SqlSnapshotOperator</a>, <a href="../../../../org/apache/calcite/sql/SqlSpecialOperator.html" title="org.apache.calcite.sql中的类">SqlSpecialOperator</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">SqlOperator</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a></pre>
<div class="block">A <code>SqlOperator</code> is a type of node in a SQL parse tree (it is NOT a
node in a SQL parse tree). It includes functions, operators such as '=', and
syntactic constructs such as 'case' statements. Operators may represent
query-level expressions (e.g. <a href="../../../../org/apache/calcite/sql/SqlSelectOperator.html" title="org.apache.calcite.sql中的类"><code>SqlSelectOperator</code></a> or row-level
expressions (e.g. <a href="../../../../org/apache/calcite/sql/fun/SqlBetweenOperator.html" title="org.apache.calcite.sql.fun中的类"><code>SqlBetweenOperator</code></a>.
<p>Operators have <em>formal operands</em>, meaning ordered (and optionally
named) placeholders for the values they operate on. For example, the division
operator takes two operands; the first is the numerator and the second is the
denominator. In the context of subclass <a href="../../../../org/apache/calcite/sql/SqlFunction.html" title="org.apache.calcite.sql中的类"><code>SqlFunction</code></a>, formal operands
are referred to as <em>parameters</em>.
<p>When an operator is instantiated via a <a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类"><code>SqlCall</code></a>, it is supplied
with <em>actual operands</em>. For example, in the expression <code>3 /
5</code>, the literal expression <code>3</code> is the actual operand
corresponding to the numerator, and <code>5</code> is the actual operand
corresponding to the denominator. In the context of SqlFunction, actual
operands are referred to as <em>arguments</em>
<p>In many cases, the formal/actual distinction is clear from context, in
which case we drop these qualifiers.</div>
</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>字段概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="字段概要表, 列表字段和解释">
<caption><span>字段</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">字段和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#kind">kind</a></span></code>
<div class="block">See <a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举"><code>SqlKind</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#MDX_PRECEDENCE">MDX_PRECEDENCE</a></span></code>
<div class="block">Maximum precedence.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#NL">NL</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符</th>
<th class="colLast" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#SqlOperator-java.lang.String-org.apache.calcite.sql.SqlKind-int-boolean-org.apache.calcite.sql.type.SqlReturnTypeInference-org.apache.calcite.sql.type.SqlOperandTypeInference-org.apache.calcite.sql.type.SqlOperandTypeChecker-">SqlOperator</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;name,
<a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a>&nbsp;kind,
int&nbsp;prec,
boolean&nbsp;leftAssoc,
<a href="../../../../org/apache/calcite/sql/type/SqlReturnTypeInference.html" title="org.apache.calcite.sql.type中的接口">SqlReturnTypeInference</a>&nbsp;returnTypeInference,
<a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeInference.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeInference</a>&nbsp;operandTypeInference,
<a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeChecker.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeChecker</a>&nbsp;operandTypeChecker)</code>
<div class="block">Creates an operator specifying left/right associativity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#SqlOperator-java.lang.String-org.apache.calcite.sql.SqlKind-int-int-org.apache.calcite.sql.type.SqlReturnTypeInference-org.apache.calcite.sql.type.SqlOperandTypeInference-org.apache.calcite.sql.type.SqlOperandTypeChecker-">SqlOperator</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;name,
<a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a>&nbsp;kind,
int&nbsp;leftPrecedence,
int&nbsp;rightPrecedence,
<a href="../../../../org/apache/calcite/sql/type/SqlReturnTypeInference.html" title="org.apache.calcite.sql.type中的接口">SqlReturnTypeInference</a>&nbsp;returnTypeInference,
<a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeInference.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeInference</a>&nbsp;operandTypeInference,
<a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeChecker.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeChecker</a>&nbsp;operandTypeChecker)</code>
<div class="block">Creates an operator.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span id="t0" class="activeTableTab"><span>所有方法</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">静态方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">实例方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">具体方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">已过时的方法</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>&lt;R&gt;&nbsp;R</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#acceptCall-org.apache.calcite.sql.util.SqlVisitor-org.apache.calcite.sql.SqlCall-">acceptCall</a></span>(<a href="../../../../org/apache/calcite/sql/util/SqlVisitor.html" title="org.apache.calcite.sql.util中的接口">SqlVisitor</a>&lt;R&gt;&nbsp;visitor,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</code>
<div class="block">Accepts a <a href="../../../../org/apache/calcite/sql/util/SqlVisitor.html" title="org.apache.calcite.sql.util中的接口"><code>SqlVisitor</code></a>, visiting each operand of a call.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></span>(<a href="../../../../org/apache/calcite/sql/util/SqlVisitor.html" title="org.apache.calcite.sql.util中的接口">SqlVisitor</a>&lt;R&gt;&nbsp;visitor,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
boolean&nbsp;onlyExpressions,
<a href="../../../../org/apache/calcite/sql/util/SqlBasicVisitor.ArgHandler.html" title="org.apache.calcite.sql.util中的接口">SqlBasicVisitor.ArgHandler</a>&lt;R&gt;&nbsp;argHandler)</code>
<div class="block">Accepts a <a href="../../../../org/apache/calcite/sql/util/SqlVisitor.html" title="org.apache.calcite.sql.util中的接口"><code>SqlVisitor</code></a>, directing an
<a href="../../../../org/apache/calcite/sql/util/SqlBasicVisitor.ArgHandler.html" title="org.apache.calcite.sql.util中的接口"><code>SqlBasicVisitor.ArgHandler</code></a>
to visit an operand of a call.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><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></span>(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type)</code>
<div class="block">Validates and determines coercibility and resulting collation name of
binary operator if needed.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#allowsFraming--">allowsFraming</a></span>()</code>
<div class="block">Returns whether this is a window function that allows framing (i.e. a
ROWS or RANGE clause in the window specification).</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#argumentMustBeScalar-int-">argumentMustBeScalar</a></span>(int&nbsp;ordinal)</code>
<div class="block">Returns whether the <code>ordinal</code>th argument to this operator must
be scalar (as opposed to a query).</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></span>(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeChecker.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeChecker</a>&nbsp;argType,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#checkOperandTypes-org.apache.calcite.sql.SqlCallBinding-boolean-">checkOperandTypes</a></span>(<a href="../../../../org/apache/calcite/sql/SqlCallBinding.html" title="org.apache.calcite.sql中的类">SqlCallBinding</a>&nbsp;callBinding,
boolean&nbsp;throwOnFailure)</code>
<div class="block">Checks that the operand values in a <a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类"><code>SqlCall</code></a> to this operator are
valid.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#constructArgNameList-org.apache.calcite.sql.SqlCall-">constructArgNameList</a></span>(<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></span>(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;scope,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&gt;&nbsp;args,
boolean&nbsp;convertRowArgToColumnList)</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></span>(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;argNames)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><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></span>(<a href="../../../../org/apache/calcite/sql/SqlLiteral.html" title="org.apache.calcite.sql中的类">SqlLiteral</a>&nbsp;functionQualifier,
<a href="../../../../org/apache/calcite/sql/parser/SqlParserPos.html" title="org.apache.calcite.sql.parser中的类">SqlParserPos</a>&nbsp;pos,
<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>...&nbsp;operands)</code>
<div class="block">Creates a call to this operand with an array of operands.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#createCall-org.apache.calcite.sql.SqlNodeList-">createCall</a></span>(<a href="../../../../org/apache/calcite/sql/SqlNodeList.html" title="org.apache.calcite.sql中的类">SqlNodeList</a>&nbsp;nodeList)</code>
<div class="block">Creates a call to this operand with a list of operands contained in a
<a href="../../../../org/apache/calcite/sql/SqlNodeList.html" title="org.apache.calcite.sql中的类"><code>SqlNodeList</code></a>.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#createCall-org.apache.calcite.sql.parser.SqlParserPos-java.util.List-">createCall</a></span>(<a href="../../../../org/apache/calcite/sql/parser/SqlParserPos.html" title="org.apache.calcite.sql.parser中的类">SqlParserPos</a>&nbsp;pos,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends <a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&gt;&nbsp;operandList)</code>
<div class="block">Creates a call to this operand with a list of operands.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#createCall-org.apache.calcite.sql.parser.SqlParserPos-org.apache.calcite.sql.SqlNode...-">createCall</a></span>(<a href="../../../../org/apache/calcite/sql/parser/SqlParserPos.html" title="org.apache.calcite.sql.parser中的类">SqlParserPos</a>&nbsp;pos,
<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>...&nbsp;operands)</code>
<div class="block">Creates a call to this operand with an array of operands.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#deriveType-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-org.apache.calcite.sql.SqlCall-">deriveType</a></span>(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;scope,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</code>
<div class="block">Derives the type of a call to this operator.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a>&nbsp;obj)</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getAllowedSignatures--">getAllowedSignatures</a></span>()</code>
<div class="block">Returns a string describing the expected operand types of a call, e.g.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getAllowedSignatures-java.lang.String-">getAllowedSignatures</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;opNameToUse)</code>
<div class="block">Returns a string describing the expected operand types of a call, e.g.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getKind--">getKind</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getLeftPrec--">getLeftPrec</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/validate/SqlMonotonicity.html" title="org.apache.calcite.sql.validate中的枚举">SqlMonotonicity</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getMonotonicity-org.apache.calcite.sql.SqlCall-org.apache.calcite.sql.validate.SqlValidatorScope-">getMonotonicity</a></span>(<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;scope)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../../org/apache/calcite/sql/SqlOperator.html#getMonotonicity-org.apache.calcite.sql.SqlOperatorBinding-"><code>getMonotonicity(SqlOperatorBinding)</code></a></span></div>
</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/validate/SqlMonotonicity.html" title="org.apache.calcite.sql.validate中的枚举">SqlMonotonicity</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getMonotonicity-org.apache.calcite.sql.SqlOperatorBinding-">getMonotonicity</a></span>(<a href="../../../../org/apache/calcite/sql/SqlOperatorBinding.html" title="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="i22" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getName--">getName</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/SqlIdentifier.html" title="org.apache.calcite.sql中的类">SqlIdentifier</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getNameAsId--">getNameAsId</a></span>()</code>
<div class="block">Returns the fully-qualified name of this operator.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/SqlOperandCountRange.html" title="org.apache.calcite.sql中的接口">SqlOperandCountRange</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.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="i25" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeChecker.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeChecker</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getOperandTypeChecker--">getOperandTypeChecker</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeInference.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeInference</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getOperandTypeInference--">getOperandTypeInference</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/type/SqlReturnTypeInference.html" title="org.apache.calcite.sql.type中的接口">SqlReturnTypeInference</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getReturnTypeInference--">getReturnTypeInference</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getRightPrec--">getRightPrec</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.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="i30" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../org/apache/calcite/sql/SqlSyntax.html" title="org.apache.calcite.sql中的枚举">SqlSyntax</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#getSyntax--">getSyntax</a></span>()</code>
<div class="block">Returns the syntactic type of this operator, never null.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#inferReturnType-org.apache.calcite.rel.type.RelDataTypeFactory-java.util.List-">inferReturnType</a></span>(<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&gt;&nbsp;operandTypes)</code>
<div class="block">Infers the type of a call to this operator with a given set of operand
types.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#inferReturnType-org.apache.calcite.sql.SqlOperatorBinding-">inferReturnType</a></span>(<a href="../../../../org/apache/calcite/sql/SqlOperatorBinding.html" title="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="i34" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#isAggregator--">isAggregator</a></span>()</code>
<div class="block">Returns whether this operator is an aggregate function.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#isDeterministic--">isDeterministic</a></span>()</code>
<div class="block">Returns whether a call to this operator is guaranteed to always return
the same result given the same operands; true is assumed by default</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#isDynamicFunction--">isDynamicFunction</a></span>()</code>
<div class="block">Returns whether it is unsafe to cache query plans referencing this
operator; false is assumed by default</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#isGroup--">isGroup</a></span>()</code>
<div class="block">Returns whether this is a group function.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#isGroupAuxiliary--">isGroupAuxiliary</a></span>()</code>
<div class="block">Returns whether this is an group auxiliary function.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#isName-java.lang.String-boolean-">isName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;testName,
boolean&nbsp;caseSensitive)</code>&nbsp;</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>protected static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#leftPrec-int-boolean-">leftPrec</a></span>(int&nbsp;prec,
boolean&nbsp;leftAssoc)</code>&nbsp;</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></span>(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;scope,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</code>
<div class="block">Receives notification that validation of a call to this operator is
beginning.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#requiresDecimalExpansion--">requiresDecimalExpansion</a></span>()</code>
<div class="block">Method to check if call requires expansion when it has decimal operands.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#requiresOrder--">requiresOrder</a></span>()</code>
<div class="block">Returns whether this is a window function that requires ordering.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#requiresOver--">requiresOver</a></span>()</code>
<div class="block">Returns whether this is a window function that requires an OVER clause.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#rewriteCall-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.SqlCall-">rewriteCall</a></span>(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</code>
<div class="block">Rewrites a call to this operator.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>protected static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#rightPrec-int-boolean-">rightPrec</a></span>(int&nbsp;prec,
boolean&nbsp;leftAssoc)</code>&nbsp;</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.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="org.apache.calcite.sql中的接口">SqlWriter</a>&nbsp;writer,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="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>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#unparseListClause-org.apache.calcite.sql.SqlWriter-org.apache.calcite.sql.SqlNode-">unparseListClause</a></span>(<a href="../../../../org/apache/calcite/sql/SqlWriter.html" title="org.apache.calcite.sql中的接口">SqlWriter</a>&nbsp;writer,
<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&nbsp;clause)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></span>(<a href="../../../../org/apache/calcite/sql/SqlWriter.html" title="org.apache.calcite.sql中的接口">SqlWriter</a>&nbsp;writer,
<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&nbsp;clause,
<a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a>&nbsp;sepKind)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.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></span>(<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;scope,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;operandScope)</code>
<div class="block">Validates a call to this operator.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><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></span>(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;scope,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</code>
<div class="block">Validates the operands of a call, inferring the return type in the
process.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql/SqlOperator.html#validRexOperands-int-org.apache.calcite.util.Litmus-">validRexOperands</a></span>(int&nbsp;count,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</code>
<div class="block">Returns whether the given operands are valid.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="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="java.lang中的类或接口">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="java.lang中的类或接口">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="java.lang中的类或接口">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="java.lang中的类或接口">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="java.lang中的类或接口">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="java.lang中的类或接口">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="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="java.lang中的类或接口">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>字段详细资料</h3>
<a name="NL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NL</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a> NL</pre>
</li>
</ul>
<a name="MDX_PRECEDENCE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MDX_PRECEDENCE</h4>
<pre>public static final&nbsp;int MDX_PRECEDENCE</pre>
<div class="block">Maximum precedence.</div>
<dl>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.calcite.sql.SqlOperator.MDX_PRECEDENCE">常量字段值</a></dd>
</dl>
</li>
</ul>
<a name="kind">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>kind</h4>
<pre>public final&nbsp;<a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a> kind</pre>
<div class="block">See <a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举"><code>SqlKind</code></a>. It's possible to have a name that doesn't match the
kind</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="SqlOperator-java.lang.String-org.apache.calcite.sql.SqlKind-int-int-org.apache.calcite.sql.type.SqlReturnTypeInference-org.apache.calcite.sql.type.SqlOperandTypeInference-org.apache.calcite.sql.type.SqlOperandTypeChecker-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SqlOperator</h4>
<pre>protected&nbsp;SqlOperator(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;name,
<a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a>&nbsp;kind,
int&nbsp;leftPrecedence,
int&nbsp;rightPrecedence,
<a href="../../../../org/apache/calcite/sql/type/SqlReturnTypeInference.html" title="org.apache.calcite.sql.type中的接口">SqlReturnTypeInference</a>&nbsp;returnTypeInference,
<a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeInference.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeInference</a>&nbsp;operandTypeInference,
<a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeChecker.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeChecker</a>&nbsp;operandTypeChecker)</pre>
<div class="block">Creates an operator.</div>
</li>
</ul>
<a name="SqlOperator-java.lang.String-org.apache.calcite.sql.SqlKind-int-boolean-org.apache.calcite.sql.type.SqlReturnTypeInference-org.apache.calcite.sql.type.SqlOperandTypeInference-org.apache.calcite.sql.type.SqlOperandTypeChecker-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SqlOperator</h4>
<pre>protected&nbsp;SqlOperator(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;name,
<a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a>&nbsp;kind,
int&nbsp;prec,
boolean&nbsp;leftAssoc,
<a href="../../../../org/apache/calcite/sql/type/SqlReturnTypeInference.html" title="org.apache.calcite.sql.type中的接口">SqlReturnTypeInference</a>&nbsp;returnTypeInference,
<a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeInference.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeInference</a>&nbsp;operandTypeInference,
<a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeChecker.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeChecker</a>&nbsp;operandTypeChecker)</pre>
<div class="block">Creates an operator specifying left/right associativity.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="leftPrec-int-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>leftPrec</h4>
<pre>protected static&nbsp;int&nbsp;leftPrec(int&nbsp;prec,
boolean&nbsp;leftAssoc)</pre>
</li>
</ul>
<a name="rightPrec-int-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rightPrec</h4>
<pre>protected static&nbsp;int&nbsp;rightPrec(int&nbsp;prec,
boolean&nbsp;leftAssoc)</pre>
</li>
</ul>
<a name="getOperandTypeChecker--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOperandTypeChecker</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeChecker.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeChecker</a>&nbsp;getOperandTypeChecker()</pre>
</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="org.apache.calcite.sql中的接口">SqlOperandCountRange</a>&nbsp;getOperandCountRange()</pre>
<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="org.apache.calcite.sql.type中的接口"><code>SqlOperandTypeChecker</code></a> associated with this
operator.</div>
<dl>
<dt><span class="returnLabel">返回:</span></dt>
<dd>acceptable range</dd>
</dl>
</li>
</ul>
<a name="getName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;getName()</pre>
</li>
</ul>
<a name="getNameAsId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNameAsId</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql/SqlIdentifier.html" title="org.apache.calcite.sql中的类">SqlIdentifier</a>&nbsp;getNameAsId()</pre>
<div class="block">Returns the fully-qualified name of this operator.</div>
</li>
</ul>
<a name="getKind--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getKind</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a>&nbsp;getKind()</pre>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">覆盖:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="java.lang中的类或接口">toString</a></code>&nbsp;在类中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="getLeftPrec--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLeftPrec</h4>
<pre>public&nbsp;int&nbsp;getLeftPrec()</pre>
</li>
</ul>
<a name="getRightPrec--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRightPrec</h4>
<pre>public&nbsp;int&nbsp;getRightPrec()</pre>
</li>
</ul>
<a name="getSyntax--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSyntax</h4>
<pre>public abstract&nbsp;<a href="../../../../org/apache/calcite/sql/SqlSyntax.html" title="org.apache.calcite.sql中的枚举">SqlSyntax</a>&nbsp;getSyntax()</pre>
<div class="block">Returns the syntactic type of this operator, never null.</div>
</li>
</ul>
<a name="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>public&nbsp;<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;createCall(<a href="../../../../org/apache/calcite/sql/SqlLiteral.html" title="org.apache.calcite.sql中的类">SqlLiteral</a>&nbsp;functionQualifier,
<a href="../../../../org/apache/calcite/sql/parser/SqlParserPos.html" title="org.apache.calcite.sql.parser中的类">SqlParserPos</a>&nbsp;pos,
<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>...&nbsp;operands)</pre>
<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="paramLabel">参数:</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 name="createCall-org.apache.calcite.sql.parser.SqlParserPos-org.apache.calcite.sql.SqlNode...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createCall</h4>
<pre>public final&nbsp;<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;createCall(<a href="../../../../org/apache/calcite/sql/parser/SqlParserPos.html" title="org.apache.calcite.sql.parser中的类">SqlParserPos</a>&nbsp;pos,
<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>...&nbsp;operands)</pre>
<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="paramLabel">参数:</span></dt>
<dd><code>pos</code> - Parser position</dd>
<dd><code>operands</code> - List of arguments</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>call to this operator</dd>
</dl>
</li>
</ul>
<a name="createCall-org.apache.calcite.sql.SqlNodeList-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createCall</h4>
<pre>public final&nbsp;<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;createCall(<a href="../../../../org/apache/calcite/sql/SqlNodeList.html" title="org.apache.calcite.sql中的类">SqlNodeList</a>&nbsp;nodeList)</pre>
<div class="block">Creates a call to this operand with a list of operands contained in a
<a href="../../../../org/apache/calcite/sql/SqlNodeList.html" title="org.apache.calcite.sql中的类"><code>SqlNodeList</code></a>.
<p>The position of the resulting call inferred from the SqlNodeList.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>nodeList</code> - List of arguments</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>call to this operator</dd>
</dl>
</li>
</ul>
<a name="createCall-org.apache.calcite.sql.parser.SqlParserPos-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createCall</h4>
<pre>public final&nbsp;<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;createCall(<a href="../../../../org/apache/calcite/sql/parser/SqlParserPos.html" title="org.apache.calcite.sql.parser中的类">SqlParserPos</a>&nbsp;pos,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends <a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&gt;&nbsp;operandList)</pre>
<div class="block">Creates a call to this operand with a list 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>
</li>
</ul>
<a name="rewriteCall-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.SqlCall-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteCall</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&nbsp;rewriteCall(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</pre>
<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="paramLabel">参数:</span></dt>
<dd><code>validator</code> - Validator</dd>
<dd><code>call</code> - Call to be rewritten</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>rewritten call</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="org.apache.calcite.sql中的接口">SqlWriter</a>&nbsp;writer,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</pre>
<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>
</li>
</ul>
<a name="unparseListClause-org.apache.calcite.sql.SqlWriter-org.apache.calcite.sql.SqlNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unparseListClause</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
protected&nbsp;void&nbsp;unparseListClause(<a href="../../../../org/apache/calcite/sql/SqlWriter.html" title="org.apache.calcite.sql中的接口">SqlWriter</a>&nbsp;writer,
<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&nbsp;clause)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="unparseListClause-org.apache.calcite.sql.SqlWriter-org.apache.calcite.sql.SqlNode-org.apache.calcite.sql.SqlKind-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unparseListClause</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
protected&nbsp;void&nbsp;unparseListClause(<a href="../../../../org/apache/calcite/sql/SqlWriter.html" title="org.apache.calcite.sql中的接口">SqlWriter</a>&nbsp;writer,
<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&nbsp;clause,
<a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a>&nbsp;sepKind)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;equals(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a>&nbsp;obj)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">覆盖:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="java.lang中的类或接口">equals</a></code>&nbsp;在类中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="isName-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isName</h4>
<pre>public&nbsp;boolean&nbsp;isName(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;testName,
boolean&nbsp;caseSensitive)</pre>
</li>
</ul>
<a name="hashCode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre>public&nbsp;int&nbsp;hashCode()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">覆盖:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="java.lang中的类或接口">hashCode</a></code>&nbsp;在类中&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="validateCall-org.apache.calcite.sql.SqlCall-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-org.apache.calcite.sql.validate.SqlValidatorScope-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateCall</h4>
<pre>public&nbsp;void&nbsp;validateCall(<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;scope,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;operandScope)</pre>
<div class="block">Validates a call to this operator.
<p>This method should not perform type-derivation or perform validation
related related to types. That is done later, by
<a href="../../../../org/apache/calcite/sql/SqlOperator.html#deriveType-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-org.apache.calcite.sql.SqlCall-"><code>deriveType(SqlValidator, SqlValidatorScope, SqlCall)</code></a>. This method
should focus on structural validation.
<p>A typical implementation of this method first validates the operands,
then performs some operator-specific logic. The default implementation
just validates the operands.
<p>This method is the default implementation of <a href="../../../../org/apache/calcite/sql/SqlCall.html#validate-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-"><code>SqlCall.validate(org.apache.calcite.sql.validate.SqlValidator, org.apache.calcite.sql.validate.SqlValidatorScope)</code></a>;
but note that some sub-classes of <a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类"><code>SqlCall</code></a> never call this method.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>call</code> - the call to this operator</dd>
<dd><code>validator</code> - the active validator</dd>
<dd><code>scope</code> - validator scope</dd>
<dd><code>operandScope</code> - validator scope in which to validate operands to this
call; usually equal to scope, but not always because
some operators introduce new scopes</dd>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../org/apache/calcite/sql/SqlNode.html#validateExpr-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-"><code>SqlNode.validateExpr(SqlValidator, SqlValidatorScope)</code></a>,
<a href="../../../../org/apache/calcite/sql/SqlOperator.html#deriveType-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-org.apache.calcite.sql.SqlCall-"><code>deriveType(SqlValidator, SqlValidatorScope, SqlCall)</code></a></dd>
</dl>
</li>
</ul>
<a name="validateOperands-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>validateOperands</h4>
<pre>public final&nbsp;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;validateOperands(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;scope,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</pre>
<div class="block">Validates the operands of a call, inferring the return type in the
process.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>validator</code> - active validator</dd>
<dd><code>scope</code> - validation scope</dd>
<dd><code>call</code> - call to be validated</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>inferred type</dd>
</dl>
</li>
</ul>
<a name="preValidateCall-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>preValidateCall</h4>
<pre>protected&nbsp;void&nbsp;preValidateCall(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;scope,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</pre>
<div class="block">Receives notification that validation of a call to this operator is
beginning. Subclasses can supply custom behavior; default implementation
does nothing.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>validator</code> - invoking validator</dd>
<dd><code>scope</code> - validation scope</dd>
<dd><code>call</code> - the call being validated</dd>
</dl>
</li>
</ul>
<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="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;inferReturnType(<a href="../../../../org/apache/calcite/sql/SqlOperatorBinding.html" title="org.apache.calcite.sql中的类">SqlOperatorBinding</a>&nbsp;opBinding)</pre>
<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="org.apache.calcite.sql.type中的接口"><code>SqlReturnTypeInference</code></a> to the constructor.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>opBinding</code> - description of invocation (not necessarily a
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类"><code>SqlCall</code></a>)</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>inferred return type</dd>
</dl>
</li>
</ul>
<a name="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>public&nbsp;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;deriveType(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;scope,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</pre>
<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="../../../../org/apache/calcite/sql/SqlOperator.html#inferReturnType-org.apache.calcite.sql.SqlOperatorBinding-"><code>inferReturnType(org.apache.calcite.sql.SqlOperatorBinding)</code></a>, specific operators would not typically override
this method.</div>
<dl>
<dt><span class="paramLabel">参数:</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">返回:</span></dt>
<dd>Type of call</dd>
</dl>
</li>
</ul>
<a name="constructArgNameList-org.apache.calcite.sql.SqlCall-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>constructArgNameList</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;constructArgNameList(<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</pre>
</li>
</ul>
<a name="constructOperandList-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.SqlCall-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>constructOperandList</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&gt;&nbsp;constructOperandList(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;argNames)</pre>
</li>
</ul>
<a name="constructArgTypeList-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-org.apache.calcite.sql.SqlCall-java.util.List-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>constructArgTypeList</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&gt;&nbsp;constructArgTypeList(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;scope,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&gt;&nbsp;args,
boolean&nbsp;convertRowArgToColumnList)</pre>
</li>
</ul>
<a name="adjustType-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.SqlCall-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>adjustType</h4>
<pre>protected&nbsp;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;adjustType(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type)</pre>
<div class="block">Validates and determines coercibility and resulting collation name of
binary operator if needed.</div>
</li>
</ul>
<a name="inferReturnType-org.apache.calcite.rel.type.RelDataTypeFactory-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inferReturnType</h4>
<pre>public final&nbsp;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;inferReturnType(<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&gt;&nbsp;operandTypes)</pre>
<div class="block">Infers the type of a call to this operator with a given set of operand
types. Shorthand for <a href="../../../../org/apache/calcite/sql/SqlOperator.html#inferReturnType-org.apache.calcite.sql.SqlOperatorBinding-"><code>inferReturnType(SqlOperatorBinding)</code></a>.</div>
</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="org.apache.calcite.sql中的类">SqlCallBinding</a>&nbsp;callBinding,
boolean&nbsp;throwOnFailure)</pre>
<div class="block">Checks that the operand values in a <a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类"><code>SqlCall</code></a> to this operator are
valid. Subclasses must either override this method or supply an instance
of <a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeChecker.html" title="org.apache.calcite.sql.type中的接口"><code>SqlOperandTypeChecker</code></a> to the constructor.</div>
<dl>
<dt><span class="paramLabel">参数:</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">返回:</span></dt>
<dd>whether check succeeded</dd>
</dl>
</li>
</ul>
<a name="checkOperandCount-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.type.SqlOperandTypeChecker-org.apache.calcite.sql.SqlCall-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkOperandCount</h4>
<pre>protected&nbsp;void&nbsp;checkOperandCount(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="org.apache.calcite.sql.validate中的接口">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeChecker.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeChecker</a>&nbsp;argType,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</pre>
</li>
</ul>
<a name="validRexOperands-int-org.apache.calcite.util.Litmus-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validRexOperands</h4>
<pre>public&nbsp;boolean&nbsp;validRexOperands(int&nbsp;count,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</pre>
<div class="block">Returns whether the given operands are valid. If not valid and
<code>fail</code>, throws an assertion error.
<p>Similar to <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-"><code>checkOperandCount(org.apache.calcite.sql.validate.SqlValidator, org.apache.calcite.sql.type.SqlOperandTypeChecker, org.apache.calcite.sql.SqlCall)</code></a>, but some operators may have
different valid operands in <a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类"><code>SqlNode</code></a> and <code>RexNode</code> formats
(some examples are CAST and AND), and this method throws internal errors,
not user errors.</p></div>
</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="java.lang中的类或接口">String</a>&nbsp;getSignatureTemplate(int&nbsp;operandsCount)</pre>
<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="paramLabel">参数:</span></dt>
<dd><code>operandsCount</code> - is used with functions that can take a variable
number of operands</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>signature template, or null to indicate that a default template
will suffice</dd>
</dl>
</li>
</ul>
<a name="getAllowedSignatures--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllowedSignatures</h4>
<pre>public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;getAllowedSignatures()</pre>
<div class="block">Returns a string describing the expected operand types of a call, e.g.
"SUBSTR(VARCHAR, INTEGER, INTEGER)".</div>
</li>
</ul>
<a name="getAllowedSignatures-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllowedSignatures</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;getAllowedSignatures(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;opNameToUse)</pre>
<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>
</li>
</ul>
<a name="getOperandTypeInference--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOperandTypeInference</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql/type/SqlOperandTypeInference.html" title="org.apache.calcite.sql.type中的接口">SqlOperandTypeInference</a>&nbsp;getOperandTypeInference()</pre>
</li>
</ul>
<a name="isAggregator--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAggregator</h4>
<pre>public&nbsp;boolean&nbsp;isAggregator()</pre>
<div class="block">Returns whether this operator is an aggregate function. By default,
subclass type is used (an instance of SqlAggFunction is assumed to be an
aggregator; anything else is not).
<p>Per SQL:2011, there are <dfn>aggregate functions</dfn> and
<dfn>window functions</dfn>.
Every aggregate function (e.g. SUM) is also a window function.
There are window functions that are not aggregate functions, e.g. RANK,
NTILE, LEAD, FIRST_VALUE.</p>
<p>Collectively, aggregate and window functions are called <dfn>analytic
functions</dfn>. Despite its name, this method returns true for every
analytic function.</p></div>
<dl>
<dt><span class="returnLabel">返回:</span></dt>
<dd>whether this operator is an analytic function (aggregate function
or window function)</dd>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../org/apache/calcite/sql/SqlOperator.html#requiresOrder--"><code>requiresOrder()</code></a></dd>
</dl>
</li>
</ul>
<a name="requiresOver--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requiresOver</h4>
<pre>public&nbsp;boolean&nbsp;requiresOver()</pre>
<div class="block">Returns whether this is a window function that requires an OVER clause.
<p>For example, returns true for <code>RANK</code>, <code>DENSE_RANK</code> and
other ranking functions; returns false for <code>SUM</code>, <code>COUNT</code>,
<code>MIN</code>, <code>MAX</code>, <code>AVG</code> (they can be used as non-window
aggregate functions).
<p>If <code>requiresOver</code> returns true, then <a href="../../../../org/apache/calcite/sql/SqlOperator.html#isAggregator--"><code>isAggregator()</code></a> must
also return true.</div>
<dl>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../org/apache/calcite/sql/SqlOperator.html#allowsFraming--"><code>allowsFraming()</code></a>,
<a href="../../../../org/apache/calcite/sql/SqlOperator.html#requiresOrder--"><code>requiresOrder()</code></a></dd>
</dl>
</li>
</ul>
<a name="requiresOrder--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requiresOrder</h4>
<pre>public&nbsp;boolean&nbsp;requiresOrder()</pre>
<div class="block">Returns whether this is a window function that requires ordering.
<p>Per SQL:2011, 2, 6.10: "If &lt;ntile function&gt;, &lt;lead or lag
function&gt;, RANK or DENSE_RANK is specified, then the window ordering
clause shall be present."</p></div>
<dl>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../org/apache/calcite/sql/SqlOperator.html#isAggregator--"><code>isAggregator()</code></a></dd>
</dl>
</li>
</ul>
<a name="allowsFraming--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowsFraming</h4>
<pre>public&nbsp;boolean&nbsp;allowsFraming()</pre>
<div class="block">Returns whether this is a window function that allows framing (i.e. a
ROWS or RANGE clause in the window specification).</div>
</li>
</ul>
<a name="isGroup--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isGroup</h4>
<pre>public&nbsp;boolean&nbsp;isGroup()</pre>
<div class="block">Returns whether this is a group function.
<p>Group functions can only appear in the GROUP BY clause.
<p>Examples are <code>HOP</code>, <code>TUMBLE</code>, <code>SESSION</code>.
<p>Group functions have auxiliary functions, e.g. <code>HOP_START</code>, but
these are not group functions.</div>
</li>
</ul>
<a name="isGroupAuxiliary--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isGroupAuxiliary</h4>
<pre>public&nbsp;boolean&nbsp;isGroupAuxiliary()</pre>
<div class="block">Returns whether this is an group auxiliary function.
<p>Examples are <code>HOP_START</code> and <code>HOP_END</code> (both auxiliary to
<code>HOP</code>).</div>
<dl>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../org/apache/calcite/sql/SqlOperator.html#isGroup--"><code>isGroup()</code></a></dd>
</dl>
</li>
</ul>
<a name="acceptCall-org.apache.calcite.sql.util.SqlVisitor-org.apache.calcite.sql.SqlCall-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acceptCall</h4>
<pre>public&nbsp;&lt;R&gt;&nbsp;R&nbsp;acceptCall(<a href="../../../../org/apache/calcite/sql/util/SqlVisitor.html" title="org.apache.calcite.sql.util中的接口">SqlVisitor</a>&lt;R&gt;&nbsp;visitor,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call)</pre>
<div class="block">Accepts a <a href="../../../../org/apache/calcite/sql/util/SqlVisitor.html" title="org.apache.calcite.sql.util中的接口"><code>SqlVisitor</code></a>, visiting each operand of a call. Returns
null.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>visitor</code> - Visitor</dd>
<dd><code>call</code> - Call to visit</dd>
</dl>
</li>
</ul>
<a name="acceptCall-org.apache.calcite.sql.util.SqlVisitor-org.apache.calcite.sql.SqlCall-boolean-org.apache.calcite.sql.util.SqlBasicVisitor.ArgHandler-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acceptCall</h4>
<pre>public&nbsp;&lt;R&gt;&nbsp;void&nbsp;acceptCall(<a href="../../../../org/apache/calcite/sql/util/SqlVisitor.html" title="org.apache.calcite.sql.util中的接口">SqlVisitor</a>&lt;R&gt;&nbsp;visitor,
<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
boolean&nbsp;onlyExpressions,
<a href="../../../../org/apache/calcite/sql/util/SqlBasicVisitor.ArgHandler.html" title="org.apache.calcite.sql.util中的接口">SqlBasicVisitor.ArgHandler</a>&lt;R&gt;&nbsp;argHandler)</pre>
<div class="block">Accepts a <a href="../../../../org/apache/calcite/sql/util/SqlVisitor.html" title="org.apache.calcite.sql.util中的接口"><code>SqlVisitor</code></a>, directing an
<a href="../../../../org/apache/calcite/sql/util/SqlBasicVisitor.ArgHandler.html" title="org.apache.calcite.sql.util中的接口"><code>SqlBasicVisitor.ArgHandler</code></a>
to visit an operand of a call.
<p>The argument handler allows fine control about how the operands are
visited, and how the results are combined.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>visitor</code> - Visitor</dd>
<dd><code>call</code> - Call to visit</dd>
<dd><code>onlyExpressions</code> - If true, ignores operands which are not
expressions. For example, in the call to the
<code>AS</code> operator</dd>
<dd><code>argHandler</code> - Called for each operand</dd>
</dl>
</li>
</ul>
<a name="getReturnTypeInference--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReturnTypeInference</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql/type/SqlReturnTypeInference.html" title="org.apache.calcite.sql.type中的接口">SqlReturnTypeInference</a>&nbsp;getReturnTypeInference()</pre>
<dl>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the return type inference strategy for this operator, or null if
return type inference is implemented by a subclass override</dd>
</dl>
</li>
</ul>
<a name="getMonotonicity-org.apache.calcite.sql.SqlCall-org.apache.calcite.sql.validate.SqlValidatorScope-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMonotonicity</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public&nbsp;<a href="../../../../org/apache/calcite/sql/validate/SqlMonotonicity.html" title="org.apache.calcite.sql.validate中的枚举">SqlMonotonicity</a>&nbsp;getMonotonicity(<a href="../../../../org/apache/calcite/sql/SqlCall.html" title="org.apache.calcite.sql中的类">SqlCall</a>&nbsp;call,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorScope</a>&nbsp;scope)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/apache/calcite/sql/SqlOperator.html#getMonotonicity-org.apache.calcite.sql.SqlOperatorBinding-"><code>getMonotonicity(SqlOperatorBinding)</code></a></span></div>
<div class="block">Returns whether 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="paramLabel">参数:</span></dt>
<dd><code>call</code> - Call to this operator</dd>
<dd><code>scope</code> - Scope in which the call occurs</dd>
</dl>
</li>
</ul>
<a name="getMonotonicity-org.apache.calcite.sql.SqlOperatorBinding-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMonotonicity</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql/validate/SqlMonotonicity.html" title="org.apache.calcite.sql.validate中的枚举">SqlMonotonicity</a>&nbsp;getMonotonicity(<a href="../../../../org/apache/calcite/sql/SqlOperatorBinding.html" title="org.apache.calcite.sql中的类">SqlOperatorBinding</a>&nbsp;call)</pre>
<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="paramLabel">参数:</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>
<a name="isDeterministic--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDeterministic</h4>
<pre>public&nbsp;boolean&nbsp;isDeterministic()</pre>
<div class="block">Returns whether a call to this operator is guaranteed to always return
the same result given the same operands; true is assumed by default</div>
</li>
</ul>
<a name="isDynamicFunction--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDynamicFunction</h4>
<pre>public&nbsp;boolean&nbsp;isDynamicFunction()</pre>
<div class="block">Returns whether it is unsafe to cache query plans referencing this
operator; false is assumed by default</div>
</li>
</ul>
<a name="requiresDecimalExpansion--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requiresDecimalExpansion</h4>
<pre>public&nbsp;boolean&nbsp;requiresDecimalExpansion()</pre>
<div class="block">Method to check if call requires expansion when it has decimal operands.
The default implementation is to return true.</div>
</li>
</ul>
<a name="argumentMustBeScalar-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>argumentMustBeScalar</h4>
<pre>public&nbsp;boolean&nbsp;argumentMustBeScalar(int&nbsp;ordinal)</pre>
<div class="block">Returns whether the <code>ordinal</code>th argument to this operator must
be scalar (as opposed to a query).
<p>If true (the default), the validator will attempt to convert the
argument into a scalar sub-query, which must have one column and return at
most one row.
<p>Operators such as <code>SELECT</code> and <code>EXISTS</code> override
this method.</div>
</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="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../overview-summary.html">概览</a></li>
<li><a href="package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-all.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</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/SqlOperandCountRange.html" title="org.apache.calcite.sql中的接口"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../org/apache/calcite/sql/SqlOperatorBinding.html" title="org.apache.calcite.sql中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/sql/SqlOperator.html" target="_top">框架</a></li>
<li><a href="SqlOperator.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">所有类</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>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li><a href="#field.summary">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li><a href="#field.detail">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</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>