blob: ac944898661f9b7d50889aa8c1f8f0f31985cafa [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlLibraryOperatorTableFactory (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="SqlLibraryOperatorTableFactory (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
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/SqlLibraryOperatorTableFactory.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.sql.fun</a></div>
<h2 title="Class SqlLibraryOperatorTableFactory" class="title">Class SqlLibraryOperatorTableFactory</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql.fun.SqlLibraryOperatorTableFactory</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">SqlLibraryOperatorTableFactory</span>
extends java.lang.Object</pre>
<div class="block">Factory that creates operator tables that consist of functions and operators
for particular named libraries. For example, the following code will return
an operator table that contains operators for both Oracle and MySQL:
<blockquote>
<pre>SqlOperatorTable opTab =
SqlLibraryOperatorTableFactory.INSTANCE.getOperatorTable(
EnumSet.of(SqlLibrary.ORACLE, SqlLibrary.MYSQL))</pre>
</blockquote>
<p>To define a new library, add a value to enum <a href="SqlLibrary.html" title="enum in org.apache.calcite.sql.fun"><code>SqlLibrary</code></a>.
<p>To add functions to a library, add the <a href="LibraryOperator.html" title="annotation in org.apache.calcite.sql.fun"><code>LibraryOperator</code></a> annotation
to fields that of type <a href="../SqlOperator.html" title="class in org.apache.calcite.sql"><code>SqlOperator</code></a>, and the library name to its
<a href="LibraryOperator.html#libraries()"><code>LibraryOperator.libraries()</code></a> field.</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>private com.google.common.cache.LoadingCache&lt;com.google.common.collect.ImmutableSet&lt;<a href="SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a>&gt;,&#8203;<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cache">cache</a></span></code></th>
<td class="colLast">
<div class="block">A cache that returns an operator table for a given library (or set of
libraries).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private com.google.common.collect.ImmutableList&lt;java.lang.Class&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#classes">classes</a></span></code></th>
<td class="colLast">
<div class="block">List of classes to scan for operators.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="SqlLibraryOperatorTableFactory.html" title="class in org.apache.calcite.sql.fun">SqlLibraryOperatorTableFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#INSTANCE">INSTANCE</a></span></code></th>
<td class="colLast">
<div class="block">The singleton instance.</div>
</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(java.lang.Class...)">SqlLibraryOperatorTableFactory</a></span>&#8203;(java.lang.Class...&nbsp;classes)</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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>private <a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(com.google.common.collect.ImmutableSet)">create</a></span>&#8203;(com.google.common.collect.ImmutableSet&lt;<a href="SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a>&gt;&nbsp;librarySet)</code></th>
<td class="colLast">
<div class="block">Creates an operator table that contains operators in the given set of
libraries.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOperatorTable(java.lang.Iterable)">getOperatorTable</a></span>&#8203;(java.lang.Iterable&lt;<a href="SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a>&gt;&nbsp;librarySet)</code></th>
<td class="colLast">
<div class="block">Returns a SQL operator table that contains operators in the given set of
libraries.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOperatorTable(org.apache.calcite.sql.fun.SqlLibrary...)">getOperatorTable</a></span>&#8203;(<a href="SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a>...&nbsp;libraries)</code></th>
<td class="colLast">
<div class="block">Returns a SQL operator table that contains operators in the given library
or libraries.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#operatorIsInLibrary(java.lang.String,java.lang.reflect.Field,java.util.Set)">operatorIsInLibrary</a></span>&#8203;(java.lang.String&nbsp;operatorName,
java.lang.reflect.Field&nbsp;field,
java.util.Set&lt;<a href="SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a>&gt;&nbsp;seekLibrarySet)</code></th>
<td class="colLast">
<div class="block">Returns whether an operator is in one or more of the given libraries.</div>
</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="classes">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>classes</h4>
<pre>private final&nbsp;com.google.common.collect.ImmutableList&lt;java.lang.Class&gt; classes</pre>
<div class="block">List of classes to scan for operators.</div>
</li>
</ul>
<a id="INSTANCE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INSTANCE</h4>
<pre>public static final&nbsp;<a href="SqlLibraryOperatorTableFactory.html" title="class in org.apache.calcite.sql.fun">SqlLibraryOperatorTableFactory</a> INSTANCE</pre>
<div class="block">The singleton instance.</div>
</li>
</ul>
<a id="cache">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>cache</h4>
<pre>private final&nbsp;com.google.common.cache.LoadingCache&lt;com.google.common.collect.ImmutableSet&lt;<a href="SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a>&gt;,&#8203;<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&gt; cache</pre>
<div class="block">A cache that returns an operator table for a given library (or set of
libraries).</div>
</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;(java.lang.Class...)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SqlLibraryOperatorTableFactory</h4>
<pre>private&nbsp;SqlLibraryOperatorTableFactory&#8203;(java.lang.Class...&nbsp;classes)</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="create(com.google.common.collect.ImmutableSet)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre class="methodSignature">private&nbsp;<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;create&#8203;(com.google.common.collect.ImmutableSet&lt;<a href="SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a>&gt;&nbsp;librarySet)</pre>
<div class="block">Creates an operator table that contains operators in the given set of
libraries.</div>
</li>
</ul>
<a id="operatorIsInLibrary(java.lang.String,java.lang.reflect.Field,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>operatorIsInLibrary</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;operatorIsInLibrary&#8203;(java.lang.String&nbsp;operatorName,
java.lang.reflect.Field&nbsp;field,
java.util.Set&lt;<a href="SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a>&gt;&nbsp;seekLibrarySet)</pre>
<div class="block">Returns whether an operator is in one or more of the given libraries.</div>
</li>
</ul>
<a id="getOperatorTable(org.apache.calcite.sql.fun.SqlLibrary...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOperatorTable</h4>
<pre class="methodSignature">public&nbsp;<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;getOperatorTable&#8203;(<a href="SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a>...&nbsp;libraries)</pre>
<div class="block">Returns a SQL operator table that contains operators in the given library
or libraries.</div>
</li>
</ul>
<a id="getOperatorTable(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getOperatorTable</h4>
<pre class="methodSignature">public&nbsp;<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;getOperatorTable&#8203;(java.lang.Iterable&lt;<a href="SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a>&gt;&nbsp;librarySet)</pre>
<div class="block">Returns a SQL operator table that contains operators in the given set of
libraries.</div>
</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/SqlLibraryOperatorTableFactory.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>