blob: a7a9cefeccadec120eb21d10dd1dcf2d1ef82d48 [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>SqlTypeTransforms (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="SqlTypeTransforms (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><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/SqlTypeTransformCascade.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/SqlTypeUtil.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/SqlTypeTransforms.html" target="_top">Frames</a></li>
<li><a href="SqlTypeTransforms.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li>Method</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 SqlTypeTransforms" class="title">Class SqlTypeTransforms</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.SqlTypeTransforms</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">SqlTypeTransforms</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">SqlTypeTransforms defines a number of reusable instances of
<a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type"><code>SqlTypeTransform</code></a>.
<p>NOTE: avoid anonymous inner classes here except for unique,
non-generalizable strategies; anything else belongs in a reusable top-level
class. If you find yourself copying and pasting an existing strategy's
anonymous inner class, you're making a mistake.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransforms.html#FORCE_NULLABLE">FORCE_NULLABLE</a></span></code>
<div class="block">Parameter type-inference transform strategy where a derived type is
transformed into the same type with nulls allowed.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransforms.html#LEAST_NULLABLE">LEAST_NULLABLE</a></span></code>
<div class="block">Type-inference strategy whereby the result is NOT NULL if any of
the arguments is NOT NULL; otherwise the type is unchanged.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransforms.html#ONLY_COLUMN">ONLY_COLUMN</a></span></code>
<div class="block">Parameter type-inference transform strategy where a derived type must be
a struct type with precisely one field and the returned type is the type
of that field.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransforms.html#TO_MULTISET">TO_MULTISET</a></span></code>
<div class="block">Parameter type-inference transform strategy that wraps a given type
in a multiset.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransforms.html#TO_MULTISET_ELEMENT_TYPE">TO_MULTISET_ELEMENT_TYPE</a></span></code>
<div class="block">Parameter type-inference transform strategy where a derived type must be
a multiset type and the returned type is the multiset's element type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransforms.html#TO_NOT_NULLABLE">TO_NOT_NULLABLE</a></span></code>
<div class="block">Parameter type-inference transform strategy where a derived type is
transformed into the same type but not nullable.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransforms.html#TO_NULLABLE">TO_NULLABLE</a></span></code>
<div class="block">Parameter type-inference transform strategy where a derived type is
transformed into the same type but nullable if any of a calls operands is
nullable</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransforms.html#TO_NULLABLE_ALL">TO_NULLABLE_ALL</a></span></code>
<div class="block">Parameter type-inference transform strategy where a derived type is
transformed into the same type, but nullable if and only if all of a call's
operands are nullable.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransforms.html#TO_VARYING">TO_VARYING</a></span></code>
<div class="block">Type-inference strategy whereby the result type of a call is VARYING the
type given.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransforms.html#SqlTypeTransforms--">SqlTypeTransforms</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>
<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">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="TO_NULLABLE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TO_NULLABLE</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a> TO_NULLABLE</pre>
<div class="block">Parameter type-inference transform strategy where a derived type is
transformed into the same type but nullable if any of a calls operands is
nullable</div>
</li>
</ul>
<a name="TO_NULLABLE_ALL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TO_NULLABLE_ALL</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a> TO_NULLABLE_ALL</pre>
<div class="block">Parameter type-inference transform strategy where a derived type is
transformed into the same type, but nullable if and only if all of a call's
operands are nullable.</div>
</li>
</ul>
<a name="TO_NOT_NULLABLE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TO_NOT_NULLABLE</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a> TO_NOT_NULLABLE</pre>
<div class="block">Parameter type-inference transform strategy where a derived type is
transformed into the same type but not nullable.</div>
</li>
</ul>
<a name="FORCE_NULLABLE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FORCE_NULLABLE</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a> FORCE_NULLABLE</pre>
<div class="block">Parameter type-inference transform strategy where a derived type is
transformed into the same type with nulls allowed.</div>
</li>
</ul>
<a name="LEAST_NULLABLE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LEAST_NULLABLE</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a> LEAST_NULLABLE</pre>
<div class="block">Type-inference strategy whereby the result is NOT NULL if any of
the arguments is NOT NULL; otherwise the type is unchanged.</div>
</li>
</ul>
<a name="TO_VARYING">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TO_VARYING</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a> TO_VARYING</pre>
<div class="block">Type-inference strategy whereby the result type of a call is VARYING the
type given. The length returned is the same as length of the first
argument. Return type will have same nullability as input type
nullability. First Arg must be of string type.</div>
</li>
</ul>
<a name="TO_MULTISET_ELEMENT_TYPE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TO_MULTISET_ELEMENT_TYPE</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a> TO_MULTISET_ELEMENT_TYPE</pre>
<div class="block">Parameter type-inference transform strategy where a derived type must be
a multiset type and the returned type is the multiset's element type.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/calcite/sql/type/MultisetSqlType.html#getComponentType--"><code>MultisetSqlType.getComponentType()</code></a></dd>
</dl>
</li>
</ul>
<a name="TO_MULTISET">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TO_MULTISET</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a> TO_MULTISET</pre>
<div class="block">Parameter type-inference transform strategy that wraps a given type
in a multiset.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html#createMultisetType-org.apache.calcite.rel.type.RelDataType-long-"><code>RelDataTypeFactory.createMultisetType(RelDataType, long)</code></a></dd>
</dl>
</li>
</ul>
<a name="ONLY_COLUMN">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ONLY_COLUMN</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/calcite/sql/type/SqlTypeTransform.html" title="interface in org.apache.calcite.sql.type">SqlTypeTransform</a> ONLY_COLUMN</pre>
<div class="block">Parameter type-inference transform strategy where a derived type must be
a struct type with precisely one field and the returned type is the type
of that field.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SqlTypeTransforms--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SqlTypeTransforms</h4>
<pre>public&nbsp;SqlTypeTransforms()</pre>
</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/SqlTypeTransformCascade.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/SqlTypeUtil.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/SqlTypeTransforms.html" target="_top">Frames</a></li>
<li><a href="SqlTypeTransforms.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li>Method</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>