blob: f8f811559ab4c79b7b5533ebfebf0a30c6c68e1a [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>ViewExpansionContext (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="ViewExpansionContext (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":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";
</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/ViewExpansionContext.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/ops/UdfUtilities.html" title="interface in org.apache.drill.exec.ops"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.ViewExpansionToken.html" title="class in org.apache.drill.exec.ops"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/drill/exec/ops/ViewExpansionContext.html" target="_top">Frames</a></li>
<li><a href="ViewExpansionContext.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><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.drill.exec.ops</div>
<h2 title="Class ViewExpansionContext" class="title">Class ViewExpansionContext</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.drill.exec.ops.ViewExpansionContext</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">ViewExpansionContext</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 context information about view expansion(s) in a query. Part of <code>.QueryContext</code>. Before expanding a view into its definition, as part of the
<a href="../../../../../org/apache/drill/exec/planner/logical/DrillViewTable.html#toRel-org.apache.calcite.plan.RelOptTable.ToRelContext-org.apache.calcite.plan.RelOptTable-"><code>DrillViewTable.toRel(org.apache.calcite.plan.RelOptTable.ToRelContext,
org.apache.calcite.plan.RelOptTable)</code></a>, first a <a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.ViewExpansionToken.html" title="class in org.apache.drill.exec.ops"><code>ViewExpansionContext.ViewExpansionToken</code></a> is requested from ViewExpansionContext
through <a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.html#reserveViewExpansionToken-java.lang.String-"><code>reserveViewExpansionToken(String)</code></a>.
Once view expansion is complete, a token is released through <a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.ViewExpansionToken.html#release--"><code>ViewExpansionContext.ViewExpansionToken.release()</code></a>. A view definition
itself may contain zero or more views for expanding those nested views also a token is obtained.
Ex:
Following are the available view tables: { "view_1", "view_2", "view_3", "view_4" }. Corresponding owners are
{"view1Owner", "view2Owner", "view3Owner", "view4Owner"}.
Definition of "view4" : "SELECT field4 FROM view3"
Definition of "view3" : "SELECT field4, field3 FROM view2"
Definition of "view2" : "SELECT field4, field3, field2 FROM view1"
Definition of "view1" : "SELECT field4, field3, field2, field1 FROM someTable"
Query is: "SELECT * FROM view4".
Steps:
1. "view4" comes for expanding it into its definition
2. A token "view4Token" is requested through <a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.html#reserveViewExpansionToken-java.lang.String-"><code>reserveViewExpansionToken(String view4Owner)</code></a>
3. "view4" is called for expansion. As part of it
3.1 "view3" comes for expansion
3.2 A token "view3Token" is requested through <a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.html#reserveViewExpansionToken-java.lang.String-"><code>reserveViewExpansionToken(String view3Owner)</code></a>
3.3 "view3" is called for expansion. As part of it
3.3.1 "view2" comes for expansion
3.3.2 A token "view2Token" is requested through <a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.html#reserveViewExpansionToken-java.lang.String-"><code>reserveViewExpansionToken(String view2Owner)</code></a>
3.3.3 "view2" is called for expansion. As part of it
3.3.3.1 "view1" comes for expansion
3.3.3.2 A token "view1Token" is requested through <a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.html#reserveViewExpansionToken-java.lang.String-"><code>reserveViewExpansionToken(String view1Owner)</code></a>
3.3.3.3 "view1" is called for expansion
3.3.3.4 "view1" expansion is complete
3.3.3.5 Token "view1Token" is released
3.3.4 "view2" expansion is complete
3.3.5 Token "view2Token" is released
3.4 "view3" expansion is complete
3.5 Token "view3Token" is released
4. "view4" expansion is complete
5. Token "view4Token" is released.</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">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.ViewExpansionToken.html" title="class in org.apache.drill.exec.ops">ViewExpansionContext.ViewExpansionToken</a></span></code>
<div class="block">Represents token issued to a view owner for expanding the view.</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/drill/exec/ops/ViewExpansionContext.html#ViewExpansionContext-org.apache.drill.common.config.DrillConfig-org.apache.drill.exec.store.SchemaConfig.SchemaConfigInfoProvider-">ViewExpansionContext</a></span>(<a href="../../../../../org/apache/drill/common/config/DrillConfig.html" title="class in org.apache.drill.common.config">DrillConfig</a>&nbsp;config,
<a href="../../../../../org/apache/drill/exec/store/SchemaConfig.SchemaConfigInfoProvider.html" title="interface in org.apache.drill.exec.store">SchemaConfig.SchemaConfigInfoProvider</a>&nbsp;schemaConfigInfoProvider)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.html#ViewExpansionContext-org.apache.drill.exec.ops.QueryContext-">ViewExpansionContext</a></span>(<a href="../../../../../org/apache/drill/exec/ops/QueryContext.html" title="class in org.apache.drill.exec.ops">QueryContext</a>&nbsp;queryContext)</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="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="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/ops/ViewExpansionContext.html#isImpersonationEnabled--">isImpersonationEnabled</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.ViewExpansionToken.html" title="class in org.apache.drill.exec.ops">ViewExpansionContext.ViewExpansionToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.html#reserveViewExpansionToken-java.lang.String-">reserveViewExpansionToken</a></span>(<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;viewOwner)</code>
<div class="block">Reserve a token for expansion of view owned by given user name.</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="ViewExpansionContext-org.apache.drill.exec.ops.QueryContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ViewExpansionContext</h4>
<pre>public&nbsp;ViewExpansionContext(<a href="../../../../../org/apache/drill/exec/ops/QueryContext.html" title="class in org.apache.drill.exec.ops">QueryContext</a>&nbsp;queryContext)</pre>
</li>
</ul>
<a name="ViewExpansionContext-org.apache.drill.common.config.DrillConfig-org.apache.drill.exec.store.SchemaConfig.SchemaConfigInfoProvider-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ViewExpansionContext</h4>
<pre>public&nbsp;ViewExpansionContext(<a href="../../../../../org/apache/drill/common/config/DrillConfig.html" title="class in org.apache.drill.common.config">DrillConfig</a>&nbsp;config,
<a href="../../../../../org/apache/drill/exec/store/SchemaConfig.SchemaConfigInfoProvider.html" title="interface in org.apache.drill.exec.store">SchemaConfig.SchemaConfigInfoProvider</a>&nbsp;schemaConfigInfoProvider)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="isImpersonationEnabled--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isImpersonationEnabled</h4>
<pre>public&nbsp;boolean&nbsp;isImpersonationEnabled()</pre>
</li>
</ul>
<a name="reserveViewExpansionToken-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>reserveViewExpansionToken</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.ViewExpansionToken.html" title="class in org.apache.drill.exec.ops">ViewExpansionContext.ViewExpansionToken</a>&nbsp;reserveViewExpansionToken(<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;viewOwner)</pre>
<div class="block">Reserve a token for expansion of view owned by given user name. If it can't issue any more tokens,
throws <a href="../../../../../org/apache/drill/common/exceptions/UserException.html" title="class in org.apache.drill.common.exceptions"><code>UserException</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>viewOwner</code> - Name of the user who owns the view.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An instance of <a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.ViewExpansionToken.html" title="class in org.apache.drill.exec.ops"><code>ViewExpansionContext.ViewExpansionToken</code></a> which must be
released when done using the token.</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/ViewExpansionContext.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/ops/UdfUtilities.html" title="interface in org.apache.drill.exec.ops"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/drill/exec/ops/ViewExpansionContext.ViewExpansionToken.html" title="class in org.apache.drill.exec.ops"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/drill/exec/ops/ViewExpansionContext.html" target="_top">Frames</a></li>
<li><a href="ViewExpansionContext.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><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 &#169; 1970 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>