blob: 3cd5e8331d3477d266d6bd9a62c8f38bda16006a [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>IndexCollection (Drill : 1.20.3 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="IndexCollection (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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="class-use/IndexCollection.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">
<li><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCallContext.html" title="interface in org.apache.drill.exec.planner.index"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.IndexCollectionType.html" title="enum in org.apache.drill.exec.planner.index"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/drill/exec/planner/index/IndexCollection.html" target="_top">Frames</a></li>
<li><a href="IndexCollection.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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.drill.exec.planner.index</div>
<h2 title="Interface IndexCollection" class="title">Interface IndexCollection</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><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/drill/exec/planner/index/IndexDescriptor.html" title="interface in org.apache.drill.exec.planner.index">IndexDescriptor</a>&gt;</dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../org/apache/drill/exec/planner/index/AbstractIndexCollection.html" title="class in org.apache.drill.exec.planner.index">AbstractIndexCollection</a>, <a href="../../../../../../org/apache/drill/exec/planner/index/DrillIndexCollection.html" title="class in org.apache.drill.exec.planner.index">DrillIndexCollection</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">IndexCollection</span>
extends <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/drill/exec/planner/index/IndexDescriptor.html" title="interface in org.apache.drill.exec.planner.index">IndexDescriptor</a>&gt;</pre>
<div class="block">Interface used to describe an index collection</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.IndexCollectionType.html" title="enum in org.apache.drill.exec.planner.index">IndexCollection.IndexCollectionType</a></span></code>
<div class="block">Types of an index collections: NATIVE_SECONDARY_INDEX_COLLECTION, EXTERNAL_SECONDARY_INDEX_COLLECTION</div>
</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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.html#addIndex-org.apache.drill.exec.planner.index.IndexDescriptor-">addIndex</a></span>(<a href="../../../../../../org/apache/drill/exec/planner/index/IndexDescriptor.html" title="interface in org.apache.drill.exec.planner.index">IndexDescriptor</a>&nbsp;index)</code>
<div class="block">Add a new index to the collection.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.html#clearAll--">clearAll</a></span>()</code>
<div class="block">Clears all entries from this index collection</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/physical/base/IndexGroupScan.html" title="interface in org.apache.drill.exec.physical.base">IndexGroupScan</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.html#getGroupScan--">getGroupScan</a></span>()</code>
<div class="block">If this IndexCollection exposes a single GroupScan, return the GroupScan instance.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.IndexCollectionType.html" title="enum in org.apache.drill.exec.planner.index">IndexCollection.IndexCollectionType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.html#getIndexCollectionType--">getIndexCollectionType</a></span>()</code>
<div class="block">Get the type of this index based on <a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.IndexCollectionType.html" title="enum in org.apache.drill.exec.planner.index"><code>IndexCollection.IndexCollectionType</code></a></div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.html#getRows-org.apache.calcite.rex.RexNode-">getRows</a></span>(org.apache.calcite.rex.RexNode&nbsp;indexCondition)</code>
<div class="block">Get the estimated row count for a single index condition</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.html#isColumnIndexed-org.apache.drill.common.expression.SchemaPath-">isColumnIndexed</a></span>(<a href="../../../../../../org/apache/drill/common/expression/SchemaPath.html" title="class in org.apache.drill.common.expression">SchemaPath</a>&nbsp;path)</code>
<div class="block">Check if the field name is the leading key of any of the indexes in this collection</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.html#removeIndex-org.apache.drill.exec.planner.index.IndexDescriptor-">removeIndex</a></span>(<a href="../../../../../../org/apache/drill/exec/planner/index/IndexDescriptor.html" title="interface in org.apache.drill.exec.planner.index">IndexDescriptor</a>&nbsp;index)</code>
<div class="block">Remove an index (identified by table name and index name) from the collection.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.html#supportsFullTextSearch--">supportsFullTextSearch</a></span>()</code>
<div class="block">Whether or not the index supports full-text search (to allow pushing down such filters)</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.html#supportsIndexSelection--">supportsIndexSelection</a></span>()</code>
<div class="block">Whether or not this index collection supports index selection (selecting an
appropriate index out of multiple candidates).</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.html#supportsRowCountStats--">supportsRowCountStats</a></span>()</code>
<div class="block">Whether or not the index supports getting row count statistics</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Iterable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.lang.<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></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#forEach-java.util.function.Consumer-" title="class or interface in java.lang">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#iterator--" title="class or interface in java.lang">iterator</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#spliterator--" title="class or interface in java.lang">spliterator</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="addIndex-org.apache.drill.exec.planner.index.IndexDescriptor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addIndex</h4>
<pre>boolean&nbsp;addIndex(<a href="../../../../../../org/apache/drill/exec/planner/index/IndexDescriptor.html" title="interface in org.apache.drill.exec.planner.index">IndexDescriptor</a>&nbsp;index)</pre>
<div class="block">Add a new index to the collection. Return True if index was successfully added; False otherwise</div>
</li>
</ul>
<a name="removeIndex-org.apache.drill.exec.planner.index.IndexDescriptor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeIndex</h4>
<pre>boolean&nbsp;removeIndex(<a href="../../../../../../org/apache/drill/exec/planner/index/IndexDescriptor.html" title="interface in org.apache.drill.exec.planner.index">IndexDescriptor</a>&nbsp;index)</pre>
<div class="block">Remove an index (identified by table name and index name) from the collection.
Return True if index was successfully removed; False otherwise</div>
</li>
</ul>
<a name="clearAll--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearAll</h4>
<pre>void&nbsp;clearAll()</pre>
<div class="block">Clears all entries from this index collection</div>
</li>
</ul>
<a name="getIndexCollectionType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIndexCollectionType</h4>
<pre><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.IndexCollectionType.html" title="enum in org.apache.drill.exec.planner.index">IndexCollection.IndexCollectionType</a>&nbsp;getIndexCollectionType()</pre>
<div class="block">Get the type of this index based on <a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.IndexCollectionType.html" title="enum in org.apache.drill.exec.planner.index"><code>IndexCollection.IndexCollectionType</code></a></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>one of the values in <a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.IndexCollectionType.html" title="enum in org.apache.drill.exec.planner.index"><code>IndexCollection.IndexCollectionType</code></a></dd>
</dl>
</li>
</ul>
<a name="supportsIndexSelection--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>supportsIndexSelection</h4>
<pre>boolean&nbsp;supportsIndexSelection()</pre>
<div class="block">Whether or not this index collection supports index selection (selecting an
appropriate index out of multiple candidates). Typically, external index collections
such as Elasticsearch already have this capability while native secondary index collection
may not have - in such cases, Drill needs to do the index selection.</div>
</li>
</ul>
<a name="getRows-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRows</h4>
<pre>double&nbsp;getRows(org.apache.calcite.rex.RexNode&nbsp;indexCondition)</pre>
<div class="block">Get the estimated row count for a single index condition</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indexCondition</code> - The index condition (e.g index_col1 < 10 AND index_col2 = 'abc')</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The estimated row count</dd>
</dl>
</li>
</ul>
<a name="supportsRowCountStats--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>supportsRowCountStats</h4>
<pre>boolean&nbsp;supportsRowCountStats()</pre>
<div class="block">Whether or not the index supports getting row count statistics</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if index supports getting row count, False otherwise</dd>
</dl>
</li>
</ul>
<a name="supportsFullTextSearch--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>supportsFullTextSearch</h4>
<pre>boolean&nbsp;supportsFullTextSearch()</pre>
<div class="block">Whether or not the index supports full-text search (to allow pushing down such filters)</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if index supports full-text search, False otherwise</dd>
</dl>
</li>
</ul>
<a name="getGroupScan--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGroupScan</h4>
<pre><a href="../../../../../../org/apache/drill/exec/physical/base/IndexGroupScan.html" title="interface in org.apache.drill.exec.physical.base">IndexGroupScan</a>&nbsp;getGroupScan()</pre>
<div class="block">If this IndexCollection exposes a single GroupScan, return the GroupScan instance. For external indexes
such as Elasticsearch, we may have a single GroupScan representing all the indexes contained
within that collection. On the other hand, for native indexes, each separate index would
have its own GroupScan.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>GroupScan for this IndexCollection if available, otherwise null</dd>
</dl>
</li>
</ul>
<a name="isColumnIndexed-org.apache.drill.common.expression.SchemaPath-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isColumnIndexed</h4>
<pre>boolean&nbsp;isColumnIndexed(<a href="../../../../../../org/apache/drill/common/expression/SchemaPath.html" title="class in org.apache.drill.common.expression">SchemaPath</a>&nbsp;path)</pre>
<div class="block">Check if the field name is the leading key of any of the indexes in this collection</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>path</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if an appropriate index is found, False otherwise</dd>
</dl>
</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="class-use/IndexCollection.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">
<li><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCallContext.html" title="interface in org.apache.drill.exec.planner.index"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/drill/exec/planner/index/IndexCollection.IndexCollectionType.html" title="enum in org.apache.drill.exec.planner.index"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/drill/exec/planner/index/IndexCollection.html" target="_top">Frames</a></li>
<li><a href="IndexCollection.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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 &#169; 1970 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>