blob: 3e7a35ce027c9b5d100bb63c3628244381efec83 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Extensions (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Extensions (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Extensions.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>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="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.linq4j</a></div>
<h2 title="Class Extensions" class="title">Class Extensions</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.linq4j.Extensions</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public abstract class <span class="typeNameLabel">Extensions</span>
extends java.lang.Object</pre>
<div class="block">Contains what, in LINQ.NET, would be extension methods.
<h3>Notes on mapping from LINQ.NET to Java</h3>
<p>We have preserved most of the API. But we've changed a few things, so that
the API is more typical Java API:</p>
<ul>
<li>Java method names start with a lower-case letter.</li>
<li>A few methods became keywords when their first letter was converted
to lower case; hence
<a href="tree/Expressions.html#break_(org.apache.calcite.linq4j.tree.LabelTarget)"><code>Expressions.break_(org.apache.calcite.linq4j.tree.LabelTarget)</code></a></li>
<li>We created a Java interface <a href="Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a>, similar to LINQ.NET's
IEnumerable. IEnumerable is built into C#, and that gives it
advantages: the standard collections implement it, and you can use
any IEnumerable in a foreach loop. We made the Java
<code>Enumerable</code> extend <code>Iterable</code>,
so that it can be used in for-each loops. But the standard
collections still don't implement it. A few methods that take an
IEnumerable in LINQ.NET take an Iterable in LINQ4J.</li>
<li>LINQ.NET's Dictionary interface maps to Map in Java;
hence, the LINQ.NET <code>ToDictionary</code> methods become
<code>toMap</code>.</li>
<li>LINQ.NET's decimal type changes to BigDecimal. (A little bit unnatural,
since decimal is primitive and BigDecimal is not.)</li>
<li>There is no Nullable in Java. Therefore we distinguish between methods
that return, say, Long (which may be null) and long. See for example
<a href="function/NullableLongFunction1.html" title="interface in org.apache.calcite.linq4j.function"><code>NullableLongFunction1</code></a> and
<a href="function/LongFunction1.html" title="interface in org.apache.calcite.linq4j.function"><code>LongFunction1</code></a>, and the
variants of <a href="ExtendedEnumerable.html#sum(org.apache.calcite.linq4j.function.BigDecimalFunction1)"><code>ExtendedEnumerable.sum(org.apache.calcite.linq4j.function.BigDecimalFunction1&lt;TSource&gt;)</code></a> that call them.
<li>Java erases type parameters from argument types before resolving
overloading. Therefore similar methods have the same erasure. Methods
<a href="ExtendedQueryable.html#averageDouble(org.apache.calcite.linq4j.tree.FunctionExpression)"><code>averageDouble</code></a>,
<a href="ExtendedQueryable.html#averageInteger(org.apache.calcite.linq4j.tree.FunctionExpression)"><code>averageInteger</code></a>,
<a href="ExtendedQueryable.html#groupByK(org.apache.calcite.linq4j.tree.FunctionExpression,org.apache.calcite.linq4j.tree.FunctionExpression)"><code>groupByK</code></a>,
<a href="ExtendedQueryable.html#selectN(org.apache.calcite.linq4j.tree.FunctionExpression)"><code>selectN</code></a>,
<a href="ExtendedQueryable.html#selectManyN(org.apache.calcite.linq4j.tree.FunctionExpression)"><code>selectManyN</code></a>,
<a href="ExtendedQueryable.html#skipWhileN(org.apache.calcite.linq4j.tree.FunctionExpression)"><code>skipWhileN</code></a>,
<a href="ExtendedQueryable.html#sumBigDecimal(org.apache.calcite.linq4j.tree.FunctionExpression)"><code>sumBigDecimal</code></a>,
<a href="ExtendedQueryable.html#sumNullableBigDecimal(org.apache.calcite.linq4j.tree.FunctionExpression)"><code>sumNullableBigDecimal</code></a>,
<a href="ExtendedQueryable.html#whereN(org.apache.calcite.linq4j.tree.FunctionExpression)"><code>whereN</code></a>
have been renamed from <code>average</code>, <code>groupBy</code>, <code>max</code>,
<code>min</code>, <code>select</code>, <code>selectMany</code>, <code>skipWhile</code> and
<code>where</code> to prevent ambiguity.</li>
<li>.NET allows <i>extension methods</i> &mdash; static methods that then
become, via compiler magic, a method of any object whose type is the
same as the first parameter of the extension method. In LINQ.NET, the
<code>IQueryable</code> and <code>IEnumerable</code> interfaces have many such methods.
In Java, those methods need to be explicitly added to the interface, and will
need to be implemented by every class that implements that interface.
We can help by implementing the methods as static methods, and by
providing an abstract base class that implements the extension methods
in the interface. Hence <a href="AbstractEnumerable.html" title="class in org.apache.calcite.linq4j"><code>AbstractEnumerable</code></a> and
<a href="AbstractQueryable.html" title="class in org.apache.calcite.linq4j"><code>AbstractQueryable</code></a> call methods in <a href="Extensions.html" title="class in org.apache.calcite.linq4j"><code>Extensions</code></a>.</li>
<li>.NET Func becomes <a href="function/Function0.html" title="interface in org.apache.calcite.linq4j.function"><code>Function0</code></a>,
<a href="function/Function1.html" title="interface in org.apache.calcite.linq4j.function"><code>Function1</code></a>,
<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function"><code>Function2</code></a>, depending
on the number of arguments to the function, because Java types cannot be
overloaded based on the number of type parameters.</li>
<li>Types map as follows:
<code>Int32</code> &rarr; <code>int</code> or <code>Integer</code>,
<code>Int64</code> &rarr; <code>long</code> or <code>Long</code>,
<code>bool</code> &rarr; <code>boolean</code> or <code>Boolean</code>,
<code>Dictionary</code> &rarr; <code>Map</code>,
<code>Lookup</code> &rarr; <code>Map</code> whose value type is an <code>Iterable</code>,
</li>
<li>Function types that accept primitive types in LINQ.NET have become
boxed types in LINQ4J. For example, a predicate function
<code>Func&amp;lt;T, bool&amp;gt;</code> becomes <code>Func1&amp;lt;T, Boolean&amp;gt;</code>.
It would be wrong to infer that the function is allowed to return null.</li>
</ul></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.math.BigDecimal,&#8203;java.math.BigDecimal,&#8203;java.math.BigDecimal&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#BIG_DECIMAL_SUM">BIG_DECIMAL_SUM</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Comparable,&#8203;java.lang.Comparable,&#8203;java.lang.Comparable&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#COMPARABLE_MAX">COMPARABLE_MAX</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Comparable,&#8203;java.lang.Comparable,&#8203;java.lang.Comparable&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#COMPARABLE_MIN">COMPARABLE_MIN</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Double,&#8203;java.lang.Double,&#8203;java.lang.Double&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DOUBLE_MAX">DOUBLE_MAX</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Double,&#8203;java.lang.Double,&#8203;java.lang.Double&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DOUBLE_MIN">DOUBLE_MIN</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Double,&#8203;java.lang.Double,&#8203;java.lang.Double&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DOUBLE_SUM">DOUBLE_SUM</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Float,&#8203;java.lang.Float,&#8203;java.lang.Float&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FLOAT_MAX">FLOAT_MAX</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Float,&#8203;java.lang.Float,&#8203;java.lang.Float&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FLOAT_MIN">FLOAT_MIN</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Float,&#8203;java.lang.Float,&#8203;java.lang.Float&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FLOAT_SUM">FLOAT_SUM</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Integer,&#8203;java.lang.Integer,&#8203;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#INTEGER_MAX">INTEGER_MAX</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Integer,&#8203;java.lang.Integer,&#8203;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#INTEGER_MIN">INTEGER_MIN</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Integer,&#8203;java.lang.Integer,&#8203;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#INTEGER_SUM">INTEGER_SUM</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Long,&#8203;java.lang.Long,&#8203;java.lang.Long&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LONG_MAX">LONG_MAX</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Long,&#8203;java.lang.Long,&#8203;java.lang.Long&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LONG_MIN">LONG_MIN</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Long,&#8203;java.lang.Long,&#8203;java.lang.Long&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LONG_SUM">LONG_SUM</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Extensions</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Queryable.html" title="interface in org.apache.calcite.linq4j">Queryable</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asQueryable(org.apache.calcite.linq4j.DefaultEnumerable)">asQueryable</a></span>&#8203;(<a href="DefaultEnumerable.html" title="class in org.apache.calcite.linq4j">DefaultEnumerable</a>&lt;T&gt;&nbsp;source)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>(package private) static &lt;T extends java.lang.Comparable&lt;T&gt;&gt;<br>java.util.Comparator&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#comparableComparator()">comparableComparator</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static java.lang.RuntimeException</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#todo()">todo</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="BIG_DECIMAL_SUM">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BIG_DECIMAL_SUM</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.math.BigDecimal,&#8203;java.math.BigDecimal,&#8203;java.math.BigDecimal&gt; BIG_DECIMAL_SUM</pre>
</li>
</ul>
<a id="FLOAT_SUM">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FLOAT_SUM</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Float,&#8203;java.lang.Float,&#8203;java.lang.Float&gt; FLOAT_SUM</pre>
</li>
</ul>
<a id="DOUBLE_SUM">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DOUBLE_SUM</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Double,&#8203;java.lang.Double,&#8203;java.lang.Double&gt; DOUBLE_SUM</pre>
</li>
</ul>
<a id="INTEGER_SUM">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INTEGER_SUM</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Integer,&#8203;java.lang.Integer,&#8203;java.lang.Integer&gt; INTEGER_SUM</pre>
</li>
</ul>
<a id="LONG_SUM">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LONG_SUM</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Long,&#8203;java.lang.Long,&#8203;java.lang.Long&gt; LONG_SUM</pre>
</li>
</ul>
<a id="COMPARABLE_MIN">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COMPARABLE_MIN</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Comparable,&#8203;java.lang.Comparable,&#8203;java.lang.Comparable&gt; COMPARABLE_MIN</pre>
</li>
</ul>
<a id="COMPARABLE_MAX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COMPARABLE_MAX</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Comparable,&#8203;java.lang.Comparable,&#8203;java.lang.Comparable&gt; COMPARABLE_MAX</pre>
</li>
</ul>
<a id="FLOAT_MIN">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FLOAT_MIN</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Float,&#8203;java.lang.Float,&#8203;java.lang.Float&gt; FLOAT_MIN</pre>
</li>
</ul>
<a id="FLOAT_MAX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FLOAT_MAX</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Float,&#8203;java.lang.Float,&#8203;java.lang.Float&gt; FLOAT_MAX</pre>
</li>
</ul>
<a id="DOUBLE_MIN">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DOUBLE_MIN</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Double,&#8203;java.lang.Double,&#8203;java.lang.Double&gt; DOUBLE_MIN</pre>
</li>
</ul>
<a id="DOUBLE_MAX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DOUBLE_MAX</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Double,&#8203;java.lang.Double,&#8203;java.lang.Double&gt; DOUBLE_MAX</pre>
</li>
</ul>
<a id="INTEGER_MIN">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INTEGER_MIN</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Integer,&#8203;java.lang.Integer,&#8203;java.lang.Integer&gt; INTEGER_MIN</pre>
</li>
</ul>
<a id="INTEGER_MAX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INTEGER_MAX</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Integer,&#8203;java.lang.Integer,&#8203;java.lang.Integer&gt; INTEGER_MAX</pre>
</li>
</ul>
<a id="LONG_MIN">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LONG_MIN</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Long,&#8203;java.lang.Long,&#8203;java.lang.Long&gt; LONG_MIN</pre>
</li>
</ul>
<a id="LONG_MAX">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LONG_MAX</h4>
<pre>static final&nbsp;<a href="function/Function2.html" title="interface in org.apache.calcite.linq4j.function">Function2</a>&lt;java.lang.Long,&#8203;java.lang.Long,&#8203;java.lang.Long&gt; LONG_MAX</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Extensions</h4>
<pre>private&nbsp;Extensions()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="todo()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>todo</h4>
<pre class="methodSignature">public static&nbsp;java.lang.RuntimeException&nbsp;todo()</pre>
</li>
</ul>
<a id="asQueryable(org.apache.calcite.linq4j.DefaultEnumerable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asQueryable</h4>
<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Queryable.html" title="interface in org.apache.calcite.linq4j">Queryable</a>&lt;T&gt;&nbsp;asQueryable&#8203;(<a href="DefaultEnumerable.html" title="class in org.apache.calcite.linq4j">DefaultEnumerable</a>&lt;T&gt;&nbsp;source)</pre>
</li>
</ul>
<a id="comparableComparator()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>comparableComparator</h4>
<pre class="methodSignature">static&nbsp;&lt;T extends java.lang.Comparable&lt;T&gt;&gt;&nbsp;java.util.Comparator&lt;T&gt;&nbsp;comparableComparator()</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Extensions.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>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="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>