blob: b256381e9f3909b5537962a3221e630968fd5e08 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SqlTypeUtil (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="SqlTypeUtil (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":41,"i30":41,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":41,"i60":9,"i61":9,"i62":9,"i63":9,"i64":9,"i65":9,"i66":9,"i67":9,"i68":9,"i69":9,"i70":9,"i71":9,"i72":9,"i73":9,"i74":9,"i75":9,"i76":9,"i77":9,"i78":9,"i79":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransforms.html" title="class in org.apache.calcite.sql.type"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/calcite/sql/type/TableFunctionReturnTypeInference.html" title="class in org.apache.calcite.sql.type"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/sql/type/SqlTypeUtil.html" target="_top">Frames</a></li>
<li><a href="SqlTypeUtil.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.calcite.sql.type</div>
<h2 title="Class SqlTypeUtil" class="title">Class SqlTypeUtil</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql.type.SqlTypeUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">SqlTypeUtil</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Contains utility methods used during SQL validation or type derivation.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#SqlTypeUtil--">SqlTypeUtil</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#addCharsetAndCollation-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataTypeFactory-">addCharsetAndCollation</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory)</code>
<div class="block">Adds collation and charset to a character type, returns other types
unchanged.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#allNullable-java.util.List-">allNullable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;types)</code>
<div class="block">Returns whether all of array of types are nullable.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#areCharacterSetsMismatched-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">areCharacterSetsMismatched</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t2)</code>
<div class="block">Determines whether two types both have different character sets.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#areSameFamily-java.lang.Iterable-">areSameFamily</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;types)</code>
<div class="block">Returns whether all types in a collection have the same family, as
determined by <a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isSameFamily-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-"><code>isSameFamily(RelDataType, RelDataType)</code></a>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#canAssignFrom-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">canAssignFrom</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;toType,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;fromType)</code>
<div class="block">Tests whether a value can be assigned to a site.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#canCastFrom-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-boolean-">canCastFrom</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;toType,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;fromType,
boolean&nbsp;coerce)</code>
<div class="block">Compares two types and returns true if fromType can be cast to toType.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#comparePrecision-int-int-">comparePrecision</a></span>(int&nbsp;p0,
int&nbsp;p1)</code>
<div class="block">Returns whether a precision is greater or equal than another,
treating <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html#PRECISION_NOT_SPECIFIED"><code>RelDataType.PRECISION_NOT_SPECIFIED</code></a> as infinity.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#containsNullable-java.util.List-">containsNullable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;types)</code>
<div class="block">Returns whether one or more of an array of types is nullable.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#containsNullable-org.apache.calcite.rel.type.RelDataType-">containsNullable</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Determines whether a type or any of its fields (if a structured type) are
nullable.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/sql/SqlDataTypeSpec.html" title="class in org.apache.calcite.sql">SqlDataTypeSpec</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#convertTypeToSpec-org.apache.calcite.rel.type.RelDataType-">convertTypeToSpec</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Converts an instance of RelDataType to an instance of SqlDataTypeSpec.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/sql/SqlDataTypeSpec.html" title="class in org.apache.calcite.sql">SqlDataTypeSpec</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#convertTypeToSpec-org.apache.calcite.rel.type.RelDataType-java.lang.String-int-">convertTypeToSpec</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;charSetName,
int&nbsp;maxPrecision)</code>
<div class="block">Converts an instance of RelDataType to an instance of SqlDataTypeSpec.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#createArrayType-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-boolean-">createArrayType</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
boolean&nbsp;nullable)</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#createEmptyStructType-org.apache.calcite.rel.type.RelDataTypeFactory-">createEmptyStructType</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory)</code>
<div class="block">Records a struct type with no fields.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#createMapType-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-boolean-">createMapType</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;keyType,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;valueType,
boolean&nbsp;nullable)</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#createMultisetType-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-boolean-">createMultisetType</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
boolean&nbsp;nullable)</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#deriveAndCollectTypes-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-java.util.List-">deriveAndCollectTypes</a></span>(<a href="../../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;operands)</code>
<div class="block">Iterates over all operands, derives their types, and collects them into
a list.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#equalAsCollectionSansNullability-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">equalAsCollectionSansNullability</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;factory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2)</code>
<div class="block">Returns whether two collection types are equal, ignoring nullability.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#equalAsMapSansNullability-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">equalAsMapSansNullability</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;factory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2)</code>
<div class="block">Returns whether two map types are equal, ignoring nullability.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#equalAsStructSansNullability-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.sql.validate.SqlNameMatcher-">equalAsStructSansNullability</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;factory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2,
<a href="../../../../../org/apache/calcite/sql/validate/SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher)</code>
<div class="block">Returns whether two struct types are equal, ignoring nullability.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#equalSansNullability-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">equalSansNullability</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;factory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2)</code>
<div class="block">Returns whether two types are equal, ignoring nullability.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#equalSansNullability-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">equalSansNullability</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2)</code>
<div class="block">This is a poorman's
<a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#equalSansNullability-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-"><code>equalSansNullability(RelDataTypeFactory, RelDataType, RelDataType)</code></a>.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#extractLastNFields-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-int-">extractLastNFields</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
int&nbsp;numToKeep)</code>
<div class="block">Keeps only the last N fields and returns the new struct type.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>protected static <a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFamily.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFamily</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#family-org.apache.calcite.rel.type.RelDataType-">family</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#findField-org.apache.calcite.rel.type.RelDataType-java.lang.String-">findField</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fieldName)</code>
<div class="block">Returns the ordinal of a given field in a record type, or -1 if the field
is not found.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#flattenRecordType-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-int:A-">flattenRecordType</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;recordType,
int[]&nbsp;flatteningMap)</code>
<div class="block">Flattens a record type by recursively expanding any fields which are
themselves record types.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#getMaxByteSize-org.apache.calcite.rel.type.RelDataType-">getMaxByteSize</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Computes the maximum number of bytes required to represent a value of a
type having user-defined precision.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#getMaxPrecisionScaleDecimal-org.apache.calcite.rel.type.RelDataTypeFactory-">getMaxPrecisionScaleDecimal</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;factory)</code>
<div class="block">Get decimal with max precision/scale for the current type system.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#getMaxValue-org.apache.calcite.rel.type.RelDataType-">getMaxValue</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Determines the maximum unscaled value of a numeric type</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#getMinValue-org.apache.calcite.rel.type.RelDataType-">getMinValue</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Determines the minimum unscaled value of a numeric type</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#getNumericJavaClassName-org.apache.calcite.rel.type.RelDataType-">getNumericJavaClassName</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</td>
</tr>
<tr id="i30" 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="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#getPrimitiveWrapperJavaClassName-org.apache.calcite.rel.type.RelDataType-">getPrimitiveWrapperJavaClassName</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#hasCharactor-org.apache.calcite.rel.type.RelDataType-">hasCharactor</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#hasScale-org.apache.calcite.rel.type.RelDataType-">hasScale</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Returns whether a type's scale is set.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#inBooleanFamily-org.apache.calcite.rel.type.RelDataType-">inBooleanFamily</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#inCharFamily-org.apache.calcite.rel.type.RelDataType-">inCharFamily</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#inCharFamily-org.apache.calcite.sql.type.SqlTypeName-">inCharFamily</a></span>(<a href="../../../../../org/apache/calcite/sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type">SqlTypeName</a>&nbsp;typeName)</code>&nbsp;</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#inCharOrBinaryFamilies-org.apache.calcite.rel.type.RelDataType-">inCharOrBinaryFamilies</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#inSameFamily-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">inSameFamily</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t2)</code>&nbsp;</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#inSameFamilyOrNull-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">inSameFamilyOrNull</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t2)</code>&nbsp;</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isApproximateNumeric-org.apache.calcite.rel.type.RelDataType-">isApproximateNumeric</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isArray-org.apache.calcite.rel.type.RelDataType-">isArray</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isAtomic-org.apache.calcite.rel.type.RelDataType-">isAtomic</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isBigint-org.apache.calcite.rel.type.RelDataType-">isBigint</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isBinary-org.apache.calcite.rel.type.RelDataType-">isBinary</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isBoolean-org.apache.calcite.rel.type.RelDataType-">isBoolean</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isBoundedVariableWidth-org.apache.calcite.rel.type.RelDataType-">isBoundedVariableWidth</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isCharacter-org.apache.calcite.rel.type.RelDataType-">isCharacter</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isCharTypeComparable-java.util.List-">isCharTypeComparable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes)</code>
<div class="block">Checks whether two types or more are char comparable.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isCharTypeComparable-org.apache.calcite.sql.SqlCallBinding-java.util.List-boolean-">isCharTypeComparable</a></span>(<a href="../../../../../org/apache/calcite/sql/SqlCallBinding.html" title="class in org.apache.calcite.sql">SqlCallBinding</a>&nbsp;binding,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;operands,
boolean&nbsp;throwOnFailure)</code>
<div class="block">Returns whether the operands to a call are char type-comparable.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isCollection-org.apache.calcite.rel.type.RelDataType-">isCollection</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isComparable-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">isComparable</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2)</code>
<div class="block">Returns whether two types are comparable.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isDate-org.apache.calcite.rel.type.RelDataType-">isDate</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isDatetime-org.apache.calcite.rel.type.RelDataType-">isDatetime</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isDecimal-org.apache.calcite.rel.type.RelDataType-">isDecimal</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isDouble-org.apache.calcite.rel.type.RelDataType-">isDouble</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isExactNumeric-org.apache.calcite.rel.type.RelDataType-">isExactNumeric</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isFlat-org.apache.calcite.rel.type.RelDataType-">isFlat</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Returns whether a type is flat.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isInterval-org.apache.calcite.rel.type.RelDataType-">isInterval</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isIntType-org.apache.calcite.rel.type.RelDataType-">isIntType</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isJavaPrimitive-org.apache.calcite.rel.type.RelDataType-">isJavaPrimitive</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isLob-org.apache.calcite.rel.type.RelDataType-">isLob</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isMap-org.apache.calcite.rel.type.RelDataType-">isMap</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isMultiset-org.apache.calcite.rel.type.RelDataType-">isMultiset</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isNull-org.apache.calcite.rel.type.RelDataType-">isNull</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isNumeric-org.apache.calcite.rel.type.RelDataType-">isNumeric</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isOfSameTypeName-java.util.Collection-org.apache.calcite.rel.type.RelDataType-">isOfSameTypeName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/calcite/sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type">SqlTypeName</a>&gt;&nbsp;typeNames,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Returns true if any element in <code>typeNames</code> matches
type.getSqlTypeName().</div>
</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isOfSameTypeName-org.apache.calcite.sql.type.SqlTypeName-org.apache.calcite.rel.type.RelDataType-">isOfSameTypeName</a></span>(<a href="../../../../../org/apache/calcite/sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type">SqlTypeName</a>&nbsp;typeName,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Returns typeName.equals(type.getSqlTypeName()).</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isRow-org.apache.calcite.rel.type.RelDataType-">isRow</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isString-org.apache.calcite.rel.type.RelDataType-">isString</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isTimestamp-org.apache.calcite.rel.type.RelDataType-">isTimestamp</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isUnicode-org.apache.calcite.rel.type.RelDataType-">isUnicode</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Checks whether a type represents Unicode character data.</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#leastRestrictiveForComparison-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">leastRestrictiveForComparison</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2)</code>
<div class="block">Returns the least restrictive type T, such that a value of type T can be
compared with values of type <code>type0</code> and <code>type1</code> using
<code>=</code>.</div>
</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#makeNullableIfOperandsAre-org.apache.calcite.rel.type.RelDataTypeFactory-java.util.List-org.apache.calcite.rel.type.RelDataType-">makeNullableIfOperandsAre</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in 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="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Recreates a given RelDataType with nullability iff any of the param
argTypes are nullable.</div>
</td>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#makeNullableIfOperandsAre-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-org.apache.calcite.sql.SqlCall-org.apache.calcite.rel.type.RelDataType-">makeNullableIfOperandsAre</a></span>(<a href="../../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../../../../../org/apache/calcite/sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Recreates a given RelDataType with nullability iff any of the operands
of a call are nullable.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#maxPrecision-int-int-">maxPrecision</a></span>(int&nbsp;p0,
int&nbsp;p1)</code>
<div class="block">Returns the larger of two precisions, treating
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html#PRECISION_NOT_SPECIFIED"><code>RelDataType.PRECISION_NOT_SPECIFIED</code></a> as infinity.</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#maxValue-org.apache.calcite.rel.type.RelDataType-">maxValue</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code>
<div class="block">Returns the maximum value of an integral type, as a long value</div>
</td>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#needsNullIndicator-org.apache.calcite.rel.type.RelDataType-">needsNullIndicator</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;recordType)</code>&nbsp;</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#projectTypes-org.apache.calcite.rel.type.RelDataType-java.util.List-">projectTypes</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&gt;&nbsp;requiredFields)</code>
<div class="block">Selects data types of the specified fields from an input row type.</div>
</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#promoteToRowType-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-java.lang.String-">promoteToRowType</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fieldName)</code>
<div class="block">Promotes a type to a row type (does nothing if it already is one).</div>
</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#sameNamedType-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">sameNamedType</a></span>(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t2)</code>
<div class="block">Tests whether two types have the same name and structure, possibly with
differing modifiers.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SqlTypeUtil--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SqlTypeUtil</h4>
<pre>public&nbsp;SqlTypeUtil()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="isCharTypeComparable-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCharTypeComparable</h4>
<pre>public static&nbsp;boolean&nbsp;isCharTypeComparable(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes)</pre>
<div class="block">Checks whether two types or more are char comparable.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns true if all operands are of char type and if they are
comparable, i.e. of the same charset and collation of same charset</dd>
</dl>
</li>
</ul>
<a name="isCharTypeComparable-org.apache.calcite.sql.SqlCallBinding-java.util.List-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCharTypeComparable</h4>
<pre>public static&nbsp;boolean&nbsp;isCharTypeComparable(<a href="../../../../../org/apache/calcite/sql/SqlCallBinding.html" title="class in org.apache.calcite.sql">SqlCallBinding</a>&nbsp;binding,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;operands,
boolean&nbsp;throwOnFailure)</pre>
<div class="block">Returns whether the operands to a call are char type-comparable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>binding</code> - Binding of call to operands</dd>
<dd><code>operands</code> - Operands to check for compatibility; usually the
operands of the bound call, but not always</dd>
<dd><code>throwOnFailure</code> - Whether to throw an exception on failure</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether operands are valid</dd>
</dl>
</li>
</ul>
<a name="deriveAndCollectTypes-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deriveAndCollectTypes</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;deriveAndCollectTypes(<a href="../../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;operands)</pre>
<div class="block">Iterates over all operands, derives their types, and collects them into
a list.</div>
</li>
</ul>
<a name="promoteToRowType-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>promoteToRowType</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;promoteToRowType(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fieldName)</pre>
<div class="block">Promotes a type to a row type (does nothing if it already is one).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - type to be promoted</dd>
<dd><code>fieldName</code> - name to give field in row type; null for default of
"ROW_VALUE"</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>row type</dd>
</dl>
</li>
</ul>
<a name="makeNullableIfOperandsAre-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.sql.validate.SqlValidatorScope-org.apache.calcite.sql.SqlCall-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>makeNullableIfOperandsAre</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;makeNullableIfOperandsAre(<a href="../../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../../../../../org/apache/calcite/sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Recreates a given RelDataType with nullability iff any of the operands
of a call are nullable.</div>
</li>
</ul>
<a name="makeNullableIfOperandsAre-org.apache.calcite.rel.type.RelDataTypeFactory-java.util.List-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>makeNullableIfOperandsAre</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;makeNullableIfOperandsAre(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in 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="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Recreates a given RelDataType with nullability iff any of the param
argTypes are nullable.</div>
</li>
</ul>
<a name="allNullable-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allNullable</h4>
<pre>public static&nbsp;boolean&nbsp;allNullable(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;types)</pre>
<div class="block">Returns whether all of array of types are nullable.</div>
</li>
</ul>
<a name="containsNullable-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsNullable</h4>
<pre>public static&nbsp;boolean&nbsp;containsNullable(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;types)</pre>
<div class="block">Returns whether one or more of an array of types is nullable.</div>
</li>
</ul>
<a name="containsNullable-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsNullable</h4>
<pre>public static&nbsp;boolean&nbsp;containsNullable(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Determines whether a type or any of its fields (if a structured type) are
nullable.</div>
</li>
</ul>
<a name="isOfSameTypeName-org.apache.calcite.sql.type.SqlTypeName-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOfSameTypeName</h4>
<pre>public static&nbsp;boolean&nbsp;isOfSameTypeName(<a href="../../../../../org/apache/calcite/sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type">SqlTypeName</a>&nbsp;typeName,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Returns typeName.equals(type.getSqlTypeName()). If
typeName.equals(SqlTypeName.Any) true is always returned.</div>
</li>
</ul>
<a name="isOfSameTypeName-java.util.Collection-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOfSameTypeName</h4>
<pre>public static&nbsp;boolean&nbsp;isOfSameTypeName(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/calcite/sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type">SqlTypeName</a>&gt;&nbsp;typeNames,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Returns true if any element in <code>typeNames</code> matches
type.getSqlTypeName().</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isOfSameTypeName-org.apache.calcite.sql.type.SqlTypeName-org.apache.calcite.rel.type.RelDataType-"><code>isOfSameTypeName(SqlTypeName, RelDataType)</code></a></dd>
</dl>
</li>
</ul>
<a name="isDatetime-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDatetime</h4>
<pre>public static&nbsp;boolean&nbsp;isDatetime(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is DATE, TIME, or TIMESTAMP</dd>
</dl>
</li>
</ul>
<a name="isDate-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDate</h4>
<pre>public static&nbsp;boolean&nbsp;isDate(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is DATE</dd>
</dl>
</li>
</ul>
<a name="isTimestamp-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTimestamp</h4>
<pre>public static&nbsp;boolean&nbsp;isTimestamp(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is TIMESTAMP</dd>
</dl>
</li>
</ul>
<a name="isInterval-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInterval</h4>
<pre>public static&nbsp;boolean&nbsp;isInterval(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is some kind of INTERVAL</dd>
</dl>
</li>
</ul>
<a name="inCharFamily-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inCharFamily</h4>
<pre>public static&nbsp;boolean&nbsp;inCharFamily(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is in SqlTypeFamily.Character</dd>
</dl>
</li>
</ul>
<a name="inCharFamily-org.apache.calcite.sql.type.SqlTypeName-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inCharFamily</h4>
<pre>public static&nbsp;boolean&nbsp;inCharFamily(<a href="../../../../../org/apache/calcite/sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type">SqlTypeName</a>&nbsp;typeName)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is in SqlTypeFamily.Character</dd>
</dl>
</li>
</ul>
<a name="inBooleanFamily-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inBooleanFamily</h4>
<pre>public static&nbsp;boolean&nbsp;inBooleanFamily(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is in SqlTypeFamily.Boolean</dd>
</dl>
</li>
</ul>
<a name="inSameFamily-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inSameFamily</h4>
<pre>public static&nbsp;boolean&nbsp;inSameFamily(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t2)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if two types are in same type family</dd>
</dl>
</li>
</ul>
<a name="inSameFamilyOrNull-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inSameFamilyOrNull</h4>
<pre>public static&nbsp;boolean&nbsp;inSameFamilyOrNull(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t2)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if two types are in same type family, or one or the other is
of type <a href="../../../../../org/apache/calcite/sql/type/SqlTypeName.html#NULL"><code>SqlTypeName.NULL</code></a>.</dd>
</dl>
</li>
</ul>
<a name="inCharOrBinaryFamilies-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inCharOrBinaryFamilies</h4>
<pre>public static&nbsp;boolean&nbsp;inCharOrBinaryFamilies(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type family is either character or binary</dd>
</dl>
</li>
</ul>
<a name="isLob-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLob</h4>
<pre>public static&nbsp;boolean&nbsp;isLob(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is a LOB of some kind</dd>
</dl>
</li>
</ul>
<a name="isBoundedVariableWidth-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBoundedVariableWidth</h4>
<pre>public static&nbsp;boolean&nbsp;isBoundedVariableWidth(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is variable width with bounded precision</dd>
</dl>
</li>
</ul>
<a name="isIntType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isIntType</h4>
<pre>public static&nbsp;boolean&nbsp;isIntType(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is one of the integer types</dd>
</dl>
</li>
</ul>
<a name="isDecimal-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDecimal</h4>
<pre>public static&nbsp;boolean&nbsp;isDecimal(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is decimal</dd>
</dl>
</li>
</ul>
<a name="isDouble-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDouble</h4>
<pre>public static&nbsp;boolean&nbsp;isDouble(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is double</dd>
</dl>
</li>
</ul>
<a name="isBigint-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBigint</h4>
<pre>public static&nbsp;boolean&nbsp;isBigint(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is bigint</dd>
</dl>
</li>
</ul>
<a name="isExactNumeric-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isExactNumeric</h4>
<pre>public static&nbsp;boolean&nbsp;isExactNumeric(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is numeric with exact precision</dd>
</dl>
</li>
</ul>
<a name="hasScale-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasScale</h4>
<pre>public static&nbsp;boolean&nbsp;hasScale(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Returns whether a type's scale is set.</div>
</li>
</ul>
<a name="maxValue-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maxValue</h4>
<pre>public static&nbsp;long&nbsp;maxValue(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Returns the maximum value of an integral type, as a long value</div>
</li>
</ul>
<a name="isApproximateNumeric-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isApproximateNumeric</h4>
<pre>public static&nbsp;boolean&nbsp;isApproximateNumeric(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is numeric with approximate precision</dd>
</dl>
</li>
</ul>
<a name="isNumeric-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNumeric</h4>
<pre>public static&nbsp;boolean&nbsp;isNumeric(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is numeric</dd>
</dl>
</li>
</ul>
<a name="isNull-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNull</h4>
<pre>public static&nbsp;boolean&nbsp;isNull(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is null.</dd>
</dl>
</li>
</ul>
<a name="sameNamedType-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sameNamedType</h4>
<pre>public static&nbsp;boolean&nbsp;sameNamedType(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t2)</pre>
<div class="block">Tests whether two types have the same name and structure, possibly with
differing modifiers. For example, VARCHAR(1) and VARCHAR(10) are
considered the same, while VARCHAR(1) and CHAR(1) are considered
different. Likewise, VARCHAR(1) MULTISET and VARCHAR(10) MULTISET are
considered the same.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if types have same name and structure</dd>
</dl>
</li>
</ul>
<a name="getMaxByteSize-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxByteSize</h4>
<pre>public static&nbsp;int&nbsp;getMaxByteSize(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Computes the maximum number of bytes required to represent a value of a
type having user-defined precision. This computation assumes no overhead
such as length indicators and NUL-terminators. Complex types for which
multiple representations are possible (e.g. DECIMAL or TIMESTAMP) return
0.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - type for which to compute storage</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>maximum bytes, or 0 for a fixed-width type or type with unknown
maximum</dd>
</dl>
</li>
</ul>
<a name="getMinValue-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinValue</h4>
<pre>public static&nbsp;long&nbsp;getMinValue(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Determines the minimum unscaled value of a numeric type</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - a numeric type</dd>
</dl>
</li>
</ul>
<a name="getMaxValue-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxValue</h4>
<pre>public static&nbsp;long&nbsp;getMaxValue(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Determines the maximum unscaled value of a numeric type</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - a numeric type</dd>
</dl>
</li>
</ul>
<a name="isJavaPrimitive-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isJavaPrimitive</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public static&nbsp;boolean&nbsp;isJavaPrimitive(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type has a representation as a Java primitive (ignoring
nullability)</dd>
</dl>
</li>
</ul>
<a name="getPrimitiveWrapperJavaClassName-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrimitiveWrapperJavaClassName</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPrimitiveWrapperJavaClassName(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>class name of the wrapper for the primitive data type.</dd>
</dl>
</li>
</ul>
<a name="getNumericJavaClassName-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumericJavaClassName</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getNumericJavaClassName(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>class name of the numeric data type.</dd>
</dl>
</li>
</ul>
<a name="canAssignFrom-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canAssignFrom</h4>
<pre>public static&nbsp;boolean&nbsp;canAssignFrom(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;toType,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;fromType)</pre>
<div class="block">Tests whether a value can be assigned to a site.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>toType</code> - type of the target site</dd>
<dd><code>fromType</code> - type of the source value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true iff assignable</dd>
</dl>
</li>
</ul>
<a name="areCharacterSetsMismatched-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>areCharacterSetsMismatched</h4>
<pre>public static&nbsp;boolean&nbsp;areCharacterSetsMismatched(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;t2)</pre>
<div class="block">Determines whether two types both have different character sets. If one
or the other type has no character set (e.g. in cast from INT to
VARCHAR), that is not a mismatch.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>t1</code> - first type</dd>
<dd><code>t2</code> - second type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true iff mismatched</dd>
</dl>
</li>
</ul>
<a name="canCastFrom-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canCastFrom</h4>
<pre>public static&nbsp;boolean&nbsp;canCastFrom(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;toType,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;fromType,
boolean&nbsp;coerce)</pre>
<div class="block">Compares two types and returns true if fromType can be cast to toType.
<p>REVIEW jvs 17-Dec-2004: the coerce param below shouldn't really be
necessary. We're using it as a hack because
<a href="../../../../../org/apache/calcite/sql/type/SqlTypeFactoryImpl.html#leastRestrictive-java.util.List-"><code>SqlTypeFactoryImpl.leastRestrictive(java.util.List&lt;org.apache.calcite.rel.type.RelDataType&gt;)</code></a> isn't complete enough
yet. Once it is, this param (and the non-coerce rules of
<a href="../../../../../org/apache/calcite/sql/type/SqlTypeAssignmentRule.html" title="class in org.apache.calcite.sql.type"><code>SqlTypeAssignmentRule</code></a>) should go away.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>toType</code> - target of assignment</dd>
<dd><code>fromType</code> - source of assignment</dd>
<dd><code>coerce</code> - if true, the SQL rules for CAST are used; if false, the
rules are similar to Java; e.g. you can't assign short x =
(int) y, and you can't assign int x = (String) z.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true iff cast is legal</dd>
</dl>
</li>
</ul>
<a name="flattenRecordType-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-int:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flattenRecordType</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;flattenRecordType(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;recordType,
int[]&nbsp;flatteningMap)</pre>
<div class="block">Flattens a record type by recursively expanding any fields which are
themselves record types. For each record type, a representative null
value field is also prepended (with state NULL for a null value and FALSE
for non-null), and all component types are asserted to be nullable, since
SQL doesn't allow NOT NULL to be specified on attributes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>typeFactory</code> - factory which should produced flattened type</dd>
<dd><code>recordType</code> - type with possible nesting</dd>
<dd><code>flatteningMap</code> - if non-null, receives map from unflattened ordinal
to flattened ordinal (must have length at least
recordType.getFieldList().size())</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>flattened equivalent</dd>
</dl>
</li>
</ul>
<a name="needsNullIndicator-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>needsNullIndicator</h4>
<pre>public static&nbsp;boolean&nbsp;needsNullIndicator(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;recordType)</pre>
</li>
</ul>
<a name="convertTypeToSpec-org.apache.calcite.rel.type.RelDataType-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertTypeToSpec</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/sql/SqlDataTypeSpec.html" title="class in org.apache.calcite.sql">SqlDataTypeSpec</a>&nbsp;convertTypeToSpec(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;charSetName,
int&nbsp;maxPrecision)</pre>
<div class="block">Converts an instance of RelDataType to an instance of SqlDataTypeSpec.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - type descriptor</dd>
<dd><code>charSetName</code> - charSet name</dd>
<dd><code>maxPrecision</code> - The max allowed precision.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>corresponding parse representation</dd>
</dl>
</li>
</ul>
<a name="convertTypeToSpec-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertTypeToSpec</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/sql/SqlDataTypeSpec.html" title="class in org.apache.calcite.sql">SqlDataTypeSpec</a>&nbsp;convertTypeToSpec(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Converts an instance of RelDataType to an instance of SqlDataTypeSpec.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - type descriptor</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>corresponding parse representation</dd>
</dl>
</li>
</ul>
<a name="createMultisetType-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createMultisetType</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;createMultisetType(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
boolean&nbsp;nullable)</pre>
</li>
</ul>
<a name="createArrayType-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createArrayType</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;createArrayType(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
boolean&nbsp;nullable)</pre>
</li>
</ul>
<a name="createMapType-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createMapType</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;createMapType(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;keyType,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;valueType,
boolean&nbsp;nullable)</pre>
</li>
</ul>
<a name="addCharsetAndCollation-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataTypeFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addCharsetAndCollation</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;addCharsetAndCollation(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory)</pre>
<div class="block">Adds collation and charset to a character type, returns other types
unchanged.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - Type</dd>
<dd><code>typeFactory</code> - Type factory</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Type with added charset and collation, or unchanged type if it is
not a char type.</dd>
</dl>
</li>
</ul>
<a name="equalSansNullability-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalSansNullability</h4>
<pre>public static&nbsp;boolean&nbsp;equalSansNullability(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;factory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2)</pre>
<div class="block">Returns whether two types are equal, ignoring nullability.
<p>They need not come from the same factory.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - Type factory</dd>
<dd><code>type1</code> - First type</dd>
<dd><code>type2</code> - Second type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether types are equal, ignoring nullability</dd>
</dl>
</li>
</ul>
<a name="equalSansNullability-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalSansNullability</h4>
<pre>public static&nbsp;boolean&nbsp;equalSansNullability(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2)</pre>
<div class="block">This is a poorman's
<a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#equalSansNullability-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-"><code>equalSansNullability(RelDataTypeFactory, RelDataType, RelDataType)</code></a>.
<p>We assume that "not null" is represented in the type's digest
as a trailing "NOT NULL" (case sensitive).
<p>If you got a type factory, <a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#equalSansNullability-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-"><code>equalSansNullability(RelDataTypeFactory, RelDataType, RelDataType)</code></a>
is preferred.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type1</code> - First type</dd>
<dd><code>type2</code> - Second type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the types are equal or the only difference is nullability</dd>
</dl>
</li>
</ul>
<a name="equalAsCollectionSansNullability-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalAsCollectionSansNullability</h4>
<pre>public static&nbsp;boolean&nbsp;equalAsCollectionSansNullability(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;factory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2)</pre>
<div class="block">Returns whether two collection types are equal, ignoring nullability.
<p>They need not come from the same factory.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - Type factory</dd>
<dd><code>type1</code> - First type</dd>
<dd><code>type2</code> - Second type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether types are equal, ignoring nullability</dd>
</dl>
</li>
</ul>
<a name="equalAsMapSansNullability-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalAsMapSansNullability</h4>
<pre>public static&nbsp;boolean&nbsp;equalAsMapSansNullability(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;factory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2)</pre>
<div class="block">Returns whether two map types are equal, ignoring nullability.
<p>They need not come from the same factory.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - Type factory</dd>
<dd><code>type1</code> - First type</dd>
<dd><code>type2</code> - Second type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether types are equal, ignoring nullability</dd>
</dl>
</li>
</ul>
<a name="equalAsStructSansNullability-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.sql.validate.SqlNameMatcher-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalAsStructSansNullability</h4>
<pre>public static&nbsp;boolean&nbsp;equalAsStructSansNullability(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;factory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2,
<a href="../../../../../org/apache/calcite/sql/validate/SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher)</pre>
<div class="block">Returns whether two struct types are equal, ignoring nullability.
<p>They do not need to come from the same factory.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - Type factory</dd>
<dd><code>type1</code> - First type</dd>
<dd><code>type2</code> - Second type</dd>
<dd><code>nameMatcher</code> - Name matcher used to compare the field names, if null,
the field names are also ignored</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether types are equal, ignoring nullability</dd>
</dl>
</li>
</ul>
<a name="findField-org.apache.calcite.rel.type.RelDataType-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findField</h4>
<pre>public static&nbsp;int&nbsp;findField(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fieldName)</pre>
<div class="block">Returns the ordinal of a given field in a record type, or -1 if the field
is not found.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - Record type</dd>
<dd><code>fieldName</code> - Name of field</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Ordinal of field</dd>
</dl>
</li>
</ul>
<a name="projectTypes-org.apache.calcite.rel.type.RelDataType-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>projectTypes</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;projectTypes(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&gt;&nbsp;requiredFields)</pre>
<div class="block">Selects data types of the specified fields from an input row type.
This is useful when identifying data types of a function that is going
to operate on inputs that are specified as field ordinals (e.g.
aggregate calls).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowType</code> - input row type</dd>
<dd><code>requiredFields</code> - ordinals of the projected fields</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>list of data types that are requested by requiredFields</dd>
</dl>
</li>
</ul>
<a name="createEmptyStructType-org.apache.calcite.rel.type.RelDataTypeFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createEmptyStructType</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;createEmptyStructType(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory)</pre>
<div class="block">Records a struct type with no fields.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>typeFactory</code> - Type factory</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Struct type with no fields</dd>
</dl>
</li>
</ul>
<a name="isFlat-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFlat</h4>
<pre>public static&nbsp;boolean&nbsp;isFlat(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Returns whether a type is flat. It is not flat if it is a record type that
has one or more fields that are themselves record types.</div>
</li>
</ul>
<a name="isComparable-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isComparable</h4>
<pre>public static&nbsp;boolean&nbsp;isComparable(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2)</pre>
<div class="block">Returns whether two types are comparable. They need to be scalar types of
the same family, or struct types whose fields are pairwise comparable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type1</code> - First type</dd>
<dd><code>type2</code> - Second type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether types are comparable</dd>
</dl>
</li>
</ul>
<a name="leastRestrictiveForComparison-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>leastRestrictiveForComparison</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;leastRestrictiveForComparison(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2)</pre>
<div class="block">Returns the least restrictive type T, such that a value of type T can be
compared with values of type <code>type0</code> and <code>type1</code> using
<code>=</code>.</div>
</li>
</ul>
<a name="family-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>family</h4>
<pre>protected static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFamily.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFamily</a>&nbsp;family(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
</li>
</ul>
<a name="areSameFamily-java.lang.Iterable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>areSameFamily</h4>
<pre>public static&nbsp;boolean&nbsp;areSameFamily(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;types)</pre>
<div class="block">Returns whether all types in a collection have the same family, as
determined by <a href="../../../../../org/apache/calcite/sql/type/SqlTypeUtil.html#isSameFamily-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-"><code>isSameFamily(RelDataType, RelDataType)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>types</code> - Types to check</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if all types are of the same family</dd>
</dl>
</li>
</ul>
<a name="isUnicode-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isUnicode</h4>
<pre>public static&nbsp;boolean&nbsp;isUnicode(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Checks whether a type represents Unicode character data.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - type to test</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether type represents Unicode character data</dd>
</dl>
</li>
</ul>
<a name="maxPrecision-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maxPrecision</h4>
<pre>public static&nbsp;int&nbsp;maxPrecision(int&nbsp;p0,
int&nbsp;p1)</pre>
<div class="block">Returns the larger of two precisions, treating
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html#PRECISION_NOT_SPECIFIED"><code>RelDataType.PRECISION_NOT_SPECIFIED</code></a> as infinity.</div>
</li>
</ul>
<a name="comparePrecision-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>comparePrecision</h4>
<pre>public static&nbsp;int&nbsp;comparePrecision(int&nbsp;p0,
int&nbsp;p1)</pre>
<div class="block">Returns whether a precision is greater or equal than another,
treating <a href="../../../../../org/apache/calcite/rel/type/RelDataType.html#PRECISION_NOT_SPECIFIED"><code>RelDataType.PRECISION_NOT_SPECIFIED</code></a> as infinity.</div>
</li>
</ul>
<a name="isArray-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isArray</h4>
<pre>public static&nbsp;boolean&nbsp;isArray(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is ARRAY</dd>
</dl>
</li>
</ul>
<a name="isRow-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRow</h4>
<pre>public static&nbsp;boolean&nbsp;isRow(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is ROW</dd>
</dl>
</li>
</ul>
<a name="isMap-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMap</h4>
<pre>public static&nbsp;boolean&nbsp;isMap(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is MAP</dd>
</dl>
</li>
</ul>
<a name="isMultiset-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMultiset</h4>
<pre>public static&nbsp;boolean&nbsp;isMultiset(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is MULTISET</dd>
</dl>
</li>
</ul>
<a name="isCollection-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCollection</h4>
<pre>public static&nbsp;boolean&nbsp;isCollection(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is ARRAY/MULTISET</dd>
</dl>
</li>
</ul>
<a name="isCharacter-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCharacter</h4>
<pre>public static&nbsp;boolean&nbsp;isCharacter(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is CHARACTER</dd>
</dl>
</li>
</ul>
<a name="hasCharactor-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasCharactor</h4>
<pre>public static&nbsp;boolean&nbsp;hasCharactor(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the type is a CHARACTER or contains a CHARACTER type</dd>
</dl>
</li>
</ul>
<a name="isString-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isString</h4>
<pre>public static&nbsp;boolean&nbsp;isString(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is STRING</dd>
</dl>
</li>
</ul>
<a name="isBoolean-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBoolean</h4>
<pre>public static&nbsp;boolean&nbsp;isBoolean(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is BOOLEAN</dd>
</dl>
</li>
</ul>
<a name="isBinary-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBinary</h4>
<pre>public static&nbsp;boolean&nbsp;isBinary(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is BINARY</dd>
</dl>
</li>
</ul>
<a name="isAtomic-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAtomic</h4>
<pre>public static&nbsp;boolean&nbsp;isAtomic(<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if type is Atomic</dd>
</dl>
</li>
</ul>
<a name="getMaxPrecisionScaleDecimal-org.apache.calcite.rel.type.RelDataTypeFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxPrecisionScaleDecimal</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;getMaxPrecisionScaleDecimal(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;factory)</pre>
<div class="block">Get decimal with max precision/scale for the current type system.</div>
</li>
</ul>
<a name="extractLastNFields-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>extractLastNFields</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;extractLastNFields(<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
int&nbsp;numToKeep)</pre>
<div class="block">Keeps only the last N fields and returns the new struct type.</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="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransforms.html" title="class in org.apache.calcite.sql.type"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/calcite/sql/type/TableFunctionReturnTypeInference.html" title="class in org.apache.calcite.sql.type"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/sql/type/SqlTypeUtil.html" target="_top">Frames</a></li>
<li><a href="SqlTypeUtil.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>