blob: f25445bf6db0bc4465f255a46221528aa56a4d04 [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>DrillFuncHolder (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="DrillFuncHolder (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":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/DrillFuncHolder.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/expr/fn/DrillComplexWriterFuncHolder.html" title="class in org.apache.drill.exec.expr.fn"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillSimpleFuncHolder.html" title="class in org.apache.drill.exec.expr.fn"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/drill/exec/expr/fn/DrillFuncHolder.html" target="_top">Frames</a></li>
<li><a href="DrillFuncHolder.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>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.expr.fn</div>
<h2 title="Class DrillFuncHolder" class="title">Class DrillFuncHolder</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><a href="../../../../../../org/apache/drill/exec/expr/fn/AbstractFuncHolder.html" title="class in org.apache.drill.exec.expr.fn">org.apache.drill.exec.expr.fn.AbstractFuncHolder</a></li>
<li>
<ul class="inheritance">
<li>org.apache.drill.exec.expr.fn.DrillFuncHolder</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/apache/drill/common/expression/fn/FuncHolder.html" title="interface in org.apache.drill.common.expression.fn">FuncHolder</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillComplexWriterAggFuncHolder.html" title="class in org.apache.drill.exec.expr.fn">DrillComplexWriterAggFuncHolder</a>, <a href="../../../../../../org/apache/drill/exec/expr/fn/DrillSimpleFuncHolder.html" title="class in org.apache.drill.exec.expr.fn">DrillSimpleFuncHolder</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">DrillFuncHolder</span>
extends <a href="../../../../../../org/apache/drill/exec/expr/fn/AbstractFuncHolder.html" title="class in org.apache.drill.exec.expr.fn">AbstractFuncHolder</a></pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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/expr/fn/DrillFuncHolder.html#DrillFuncHolder-org.apache.drill.exec.expr.fn.FunctionAttributes-org.apache.drill.exec.expr.fn.FunctionInitializer-">DrillFuncHolder</a></span>(<a href="../../../../../../org/apache/drill/exec/expr/fn/FunctionAttributes.html" title="class in org.apache.drill.exec.expr.fn">FunctionAttributes</a>&nbsp;attributes,
<a href="../../../../../../org/apache/drill/exec/expr/fn/FunctionInitializer.html" title="class in org.apache.drill.exec.expr.fn">FunctionInitializer</a>&nbsp;initializer)</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>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#addProtectedBlock-org.apache.drill.exec.expr.ClassGenerator-com.sun.codemodel.JBlock-java.lang.String-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer:A-com.sun.codemodel.JVar:A-boolean-">addProtectedBlock</a></span>(<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.html" title="class in org.apache.drill.exec.expr">ClassGenerator</a>&lt;?&gt;&nbsp;g,
com.sun.codemodel.JBlock&nbsp;sub,
<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;body,
<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.HoldingContainer.html" title="class in org.apache.drill.exec.expr">ClassGenerator.HoldingContainer</a>[]&nbsp;inputVariables,
com.sun.codemodel.JVar[]&nbsp;workspaceJVars,
boolean&nbsp;workspaceOnly)</code>
<div class="block">Generate the function block itself, without surrounding comments, and
whether or not the method is empty.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#assignInjectableValue-org.apache.drill.exec.expr.ClassGenerator-com.sun.codemodel.JVar-org.apache.drill.exec.expr.fn.WorkspaceReference-">assignInjectableValue</a></span>(<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.html" title="class in org.apache.drill.exec.expr">ClassGenerator</a>&lt;?&gt;&nbsp;g,
com.sun.codemodel.JVar&nbsp;variable,
<a href="../../../../../../org/apache/drill/exec/expr/fn/WorkspaceReference.html" title="class in org.apache.drill.exec.expr.fn">WorkspaceReference</a>&nbsp;ref)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#checkNullHandling-org.apache.drill.exec.expr.annotations.FunctionTemplate.NullHandling-">checkNullHandling</a></span>(<a href="../../../../../../org/apache/drill/exec/expr/annotations/FunctionTemplate.NullHandling.html" title="enum in org.apache.drill.exec.expr.annotations">FunctionTemplate.NullHandling</a>&nbsp;nullHandling)</code>
<div class="block">Check if function type supports provided null handling strategy.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#checkPrecisionRange--">checkPrecisionRange</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected com.sun.codemodel.JAssignmentTarget</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#declare-com.sun.codemodel.JBlock-org.apache.drill.exec.expr.fn.ValueReference-com.sun.codemodel.JType-com.sun.codemodel.JExpression-int-">declare</a></span>(com.sun.codemodel.JBlock&nbsp;jBlock,
<a href="../../../../../../org/apache/drill/exec/expr/fn/ValueReference.html" title="class in org.apache.drill.exec.expr.fn">ValueReference</a>&nbsp;parameter,
com.sun.codemodel.JType&nbsp;paramClass,
com.sun.codemodel.JExpression&nbsp;paramExpression,
int&nbsp;currentIndex)</code>
<div class="block">Declares specified <code>paramExpression</code> in specified <code>jBlock</code>
and assigns it to the array component if required and / or returns declared expression.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#declareInputVariable-com.sun.codemodel.JCodeModel-com.sun.codemodel.JBlock-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer-int-">declareInputVariable</a></span>(com.sun.codemodel.JCodeModel&nbsp;model,
com.sun.codemodel.JBlock&nbsp;jBlock,
<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.HoldingContainer.html" title="class in org.apache.drill.exec.expr">ClassGenerator.HoldingContainer</a>&nbsp;inputVariable,
int&nbsp;currentIndex)</code>
<div class="block">Generate the top part of a function call which simulates passing parameters
into the function.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#declareVarArgArray-com.sun.codemodel.JCodeModel-com.sun.codemodel.JBlock-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer:A-">declareVarArgArray</a></span>(com.sun.codemodel.JCodeModel&nbsp;model,
com.sun.codemodel.JBlock&nbsp;jBlock,
<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.HoldingContainer.html" title="class in org.apache.drill.exec.expr">ClassGenerator.HoldingContainer</a>[]&nbsp;inputVariables)</code>
<div class="block">Declares array for storing vararg function arguments.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected com.sun.codemodel.JVar[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#declareWorkspaceVariables-org.apache.drill.exec.expr.ClassGenerator-">declareWorkspaceVariables</a></span>(<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.html" title="class in org.apache.drill.exec.expr">ClassGenerator</a>&lt;?&gt;&nbsp;g)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#generateBody-org.apache.drill.exec.expr.ClassGenerator-org.apache.drill.exec.expr.ClassGenerator.BlockType-java.lang.String-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer:A-com.sun.codemodel.JVar:A-boolean-">generateBody</a></span>(<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.html" title="class in org.apache.drill.exec.expr">ClassGenerator</a>&lt;?&gt;&nbsp;g,
<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.BlockType.html" title="enum in org.apache.drill.exec.expr">ClassGenerator.BlockType</a>&nbsp;bt,
<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;body,
<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.HoldingContainer.html" title="class in org.apache.drill.exec.expr">ClassGenerator.HoldingContainer</a>[]&nbsp;inputVariables,
com.sun.codemodel.JVar[]&nbsp;workspaceJVars,
boolean&nbsp;workspaceOnly)</code>
<div class="block">Generate the body of a Drill function by copying the source code of the
corresponding function method into the generated output.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/expr/fn/ValueReference.html" title="class in org.apache.drill.exec.expr.fn">ValueReference</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getAttributeParameter-int-">getAttributeParameter</a></span>(int&nbsp;i)</code>
<div class="block">Returns i-th function attribute parameter.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getClassLoader--">getClassLoader</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getCostCategory--">getCostCategory</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/common/expression/FunctionHolderExpression.html" title="class in org.apache.drill.common.expression">FunctionHolderExpression</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getExpr-java.lang.String-java.util.List-org.apache.drill.common.expression.ExpressionPosition-">getExpr</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;name,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/drill/common/expression/LogicalExpression.html" title="interface in org.apache.drill.common.expression">LogicalExpression</a>&gt;&nbsp;args,
<a href="../../../../../../org/apache/drill/common/expression/ExpressionPosition.html" title="class in org.apache.drill.common.expression">ExpressionPosition</a>&nbsp;pos)</code>
<div class="block">Return a reference to this function given a function alias and a
list of actual arguments.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getInputParameters--">getInputParameters</a></span>()</code>
<div class="block">Generates string representation of function input parameters:
PARAMETER_TYPE_1-PARAMETER_MODE_1,PARAMETER_TYPE_2-PARAMETER_MODE_2
Example: VARCHAR-REQUIRED,VARCHAR-OPTIONAL
Returns empty string if function has no input parameters.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/expr/annotations/FunctionTemplate.NullHandling.html" title="enum in org.apache.drill.exec.expr.annotations">FunctionTemplate.NullHandling</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getNullHandling--">getNullHandling</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/expr/fn/output/OutputWidthCalculator.html" title="interface in org.apache.drill.exec.expr.fn.output">OutputWidthCalculator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getOutputWidthCalculator--">getOutputWidthCalculator</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getParamCount--">getParamCount</a></span>()</code>
<div class="block">Number of defined input parameters.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/expr/fn/ValueReference.html" title="class in org.apache.drill.exec.expr.fn">ValueReference</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getParameters--">getParameters</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getParamMajorType-int-">getParamMajorType</a></span>(int&nbsp;i)</code>
<div class="block">Drill SQL type of an input parameter.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><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>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getRegisteredNames--">getRegisteredNames</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getReturnType--">getReturnType</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getReturnType-java.util.List-">getReturnType</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/drill/common/expression/LogicalExpression.html" title="interface in org.apache.drill.common.expression">LogicalExpression</a>&gt;&nbsp;logicalExpressions)</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/expr/fn/ValueReference.html" title="class in org.apache.drill.exec.expr.fn">ValueReference</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getReturnValue--">getReturnValue</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/expr/fn/WorkspaceReference.html" title="class in org.apache.drill.exec.expr.fn">WorkspaceReference</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#getWorkspaceVars--">getWorkspaceVars</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#isAggregating--">isAggregating</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#isConstant-int-">isConstant</a></span>(int&nbsp;i)</code>&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#isDeterministic--">isDeterministic</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#isFieldReader-int-">isFieldReader</a></span>(int&nbsp;i)</code>&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#isInternal--">isInternal</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#isNiladic--">isNiladic</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#isVarArg--">isVarArg</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#matches-org.apache.drill.common.types.TypeProtos.MajorType-java.util.List-">matches</a></span>(<a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a>&nbsp;returnType,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a>&gt;&nbsp;argTypes)</code>&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>protected <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#meth-java.lang.String-">meth</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;methodName)</code>&nbsp;</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>protected <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#meth-java.lang.String-boolean-">meth</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;methodName,
boolean&nbsp;required)</code>&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>com.sun.codemodel.JVar[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#renderStart-org.apache.drill.exec.expr.ClassGenerator-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer:A-org.apache.drill.common.expression.FieldReference-">renderStart</a></span>(<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.html" title="class in org.apache.drill.exec.expr">ClassGenerator</a>&lt;?&gt;&nbsp;g,
<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.HoldingContainer.html" title="class in org.apache.drill.exec.expr">ClassGenerator.HoldingContainer</a>[]&nbsp;inputVariables,
<a href="../../../../../../org/apache/drill/common/expression/FieldReference.html" title="class in org.apache.drill.common.expression">FieldReference</a>&nbsp;fieldReference)</code>&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#variableOutputSizeEstimate--">variableOutputSizeEstimate</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.exec.expr.fn.AbstractFuncHolder">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.drill.exec.expr.fn.<a href="../../../../../../org/apache/drill/exec/expr/fn/AbstractFuncHolder.html" title="class in org.apache.drill.exec.expr.fn">AbstractFuncHolder</a></h3>
<code><a href="../../../../../../org/apache/drill/exec/expr/fn/AbstractFuncHolder.html#isComplexWriterFuncHolder--">isComplexWriterFuncHolder</a>, <a href="../../../../../../org/apache/drill/exec/expr/fn/AbstractFuncHolder.html#isNested--">isNested</a>, <a href="../../../../../../org/apache/drill/exec/expr/fn/AbstractFuncHolder.html#renderEnd-org.apache.drill.exec.expr.ClassGenerator-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer:A-com.sun.codemodel.JVar:A-org.apache.drill.common.expression.FunctionHolderExpression-">renderEnd</a>, <a href="../../../../../../org/apache/drill/exec/expr/fn/AbstractFuncHolder.html#renderMiddle-org.apache.drill.exec.expr.ClassGenerator-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer:A-com.sun.codemodel.JVar:A-">renderMiddle</a></code></li>
</ul>
<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#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="DrillFuncHolder-org.apache.drill.exec.expr.fn.FunctionAttributes-org.apache.drill.exec.expr.fn.FunctionInitializer-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DrillFuncHolder</h4>
<pre>public&nbsp;DrillFuncHolder(<a href="../../../../../../org/apache/drill/exec/expr/fn/FunctionAttributes.html" title="class in org.apache.drill.exec.expr.fn">FunctionAttributes</a>&nbsp;attributes,
<a href="../../../../../../org/apache/drill/exec/expr/fn/FunctionInitializer.html" title="class in org.apache.drill.exec.expr.fn">FunctionInitializer</a>&nbsp;initializer)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="checkNullHandling-org.apache.drill.exec.expr.annotations.FunctionTemplate.NullHandling-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkNullHandling</h4>
<pre>protected&nbsp;void&nbsp;checkNullHandling(<a href="../../../../../../org/apache/drill/exec/expr/annotations/FunctionTemplate.NullHandling.html" title="enum in org.apache.drill.exec.expr.annotations">FunctionTemplate.NullHandling</a>&nbsp;nullHandling)</pre>
<div class="block">Check if function type supports provided null handling strategy.
<p>
Keep in mind that this method is invoked in
<a href="../../../../../../org/apache/drill/exec/expr/fn/DrillFuncHolder.html#DrillFuncHolder-org.apache.drill.exec.expr.fn.FunctionAttributes-org.apache.drill.exec.expr.fn.FunctionInitializer-"><code>DrillFuncHolder(FunctionAttributes, FunctionInitializer)</code></a>
constructor so make sure not to use any state fields when overriding the
method to avoid uninitialized state.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nullHandling</code> - null handling strategy defined for a function</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if provided <code>nullHandling</code> is not supported</dd>
</dl>
</li>
</ul>
<a name="meth-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>meth</h4>
<pre>protected&nbsp;<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;meth(<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;methodName)</pre>
</li>
</ul>
<a name="meth-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>meth</h4>
<pre>protected&nbsp;<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;meth(<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;methodName,
boolean&nbsp;required)</pre>
</li>
</ul>
<a name="renderStart-org.apache.drill.exec.expr.ClassGenerator-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer:A-org.apache.drill.common.expression.FieldReference-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>renderStart</h4>
<pre>public&nbsp;com.sun.codemodel.JVar[]&nbsp;renderStart(<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.html" title="class in org.apache.drill.exec.expr">ClassGenerator</a>&lt;?&gt;&nbsp;g,
<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.HoldingContainer.html" title="class in org.apache.drill.exec.expr">ClassGenerator.HoldingContainer</a>[]&nbsp;inputVariables,
<a href="../../../../../../org/apache/drill/common/expression/FieldReference.html" title="class in org.apache.drill.common.expression">FieldReference</a>&nbsp;fieldReference)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/drill/exec/expr/fn/AbstractFuncHolder.html#renderStart-org.apache.drill.exec.expr.ClassGenerator-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer:A-org.apache.drill.common.expression.FieldReference-">renderStart</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/drill/exec/expr/fn/AbstractFuncHolder.html" title="class in org.apache.drill.exec.expr.fn">AbstractFuncHolder</a></code></dd>
</dl>
</li>
</ul>
<a name="getExpr-java.lang.String-java.util.List-org.apache.drill.common.expression.ExpressionPosition-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExpr</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/common/expression/FunctionHolderExpression.html" title="class in org.apache.drill.common.expression">FunctionHolderExpression</a>&nbsp;getExpr(<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;name,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/drill/common/expression/LogicalExpression.html" title="interface in org.apache.drill.common.expression">LogicalExpression</a>&gt;&nbsp;args,
<a href="../../../../../../org/apache/drill/common/expression/ExpressionPosition.html" title="class in org.apache.drill.common.expression">ExpressionPosition</a>&nbsp;pos)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/drill/common/expression/fn/FuncHolder.html#getExpr-java.lang.String-java.util.List-org.apache.drill.common.expression.ExpressionPosition-">FuncHolder</a></code></span></div>
<div class="block">Return a reference to this function given a function alias and a
list of actual arguments.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - alias used in this specific call</dd>
<dd><code>args</code> - expressions of the actual function arguments</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an expression that holds the function definition (this object),
actual parameters and related information</dd>
</dl>
</li>
</ul>
<a name="isAggregating--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAggregating</h4>
<pre>public&nbsp;boolean&nbsp;isAggregating()</pre>
</li>
</ul>
<a name="isDeterministic--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDeterministic</h4>
<pre>public&nbsp;boolean&nbsp;isDeterministic()</pre>
</li>
</ul>
<a name="isNiladic--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNiladic</h4>
<pre>public&nbsp;boolean&nbsp;isNiladic()</pre>
</li>
</ul>
<a name="isInternal--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInternal</h4>
<pre>public&nbsp;boolean&nbsp;isInternal()</pre>
</li>
</ul>
<a name="isVarArg--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isVarArg</h4>
<pre>public&nbsp;boolean&nbsp;isVarArg()</pre>
</li>
</ul>
<a name="getInputParameters--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInputParameters</h4>
<pre>public&nbsp;<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;getInputParameters()</pre>
<div class="block">Generates string representation of function input parameters:
PARAMETER_TYPE_1-PARAMETER_MODE_1,PARAMETER_TYPE_2-PARAMETER_MODE_2
Example: VARCHAR-REQUIRED,VARCHAR-OPTIONAL
Returns empty string if function has no input parameters.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>string representation of function input parameters</dd>
</dl>
</li>
</ul>
<a name="getClassLoader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClassLoader</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;getClassLoader()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>instance of class loader used to load function</dd>
</dl>
</li>
</ul>
<a name="declareWorkspaceVariables-org.apache.drill.exec.expr.ClassGenerator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>declareWorkspaceVariables</h4>
<pre>protected&nbsp;com.sun.codemodel.JVar[]&nbsp;declareWorkspaceVariables(<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.html" title="class in org.apache.drill.exec.expr">ClassGenerator</a>&lt;?&gt;&nbsp;g)</pre>
</li>
</ul>
<a name="assignInjectableValue-org.apache.drill.exec.expr.ClassGenerator-com.sun.codemodel.JVar-org.apache.drill.exec.expr.fn.WorkspaceReference-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>assignInjectableValue</h4>
<pre>protected&nbsp;void&nbsp;assignInjectableValue(<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.html" title="class in org.apache.drill.exec.expr">ClassGenerator</a>&lt;?&gt;&nbsp;g,
com.sun.codemodel.JVar&nbsp;variable,
<a href="../../../../../../org/apache/drill/exec/expr/fn/WorkspaceReference.html" title="class in org.apache.drill.exec.expr.fn">WorkspaceReference</a>&nbsp;ref)</pre>
</li>
</ul>
<a name="generateBody-org.apache.drill.exec.expr.ClassGenerator-org.apache.drill.exec.expr.ClassGenerator.BlockType-java.lang.String-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer:A-com.sun.codemodel.JVar:A-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateBody</h4>
<pre>protected&nbsp;void&nbsp;generateBody(<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.html" title="class in org.apache.drill.exec.expr">ClassGenerator</a>&lt;?&gt;&nbsp;g,
<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.BlockType.html" title="enum in org.apache.drill.exec.expr">ClassGenerator.BlockType</a>&nbsp;bt,
<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;body,
<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.HoldingContainer.html" title="class in org.apache.drill.exec.expr">ClassGenerator.HoldingContainer</a>[]&nbsp;inputVariables,
com.sun.codemodel.JVar[]&nbsp;workspaceJVars,
boolean&nbsp;workspaceOnly)</pre>
<div class="block">Generate the body of a Drill function by copying the source code of the
corresponding function method into the generated output. For this to work,
all symbol references must be absolute (they cannot refer to imports),
or they must refer to local variables or class fields marked with an
annotation.
<p>
To make this work, the function body is wrapped in a code block that
simulates the class fields by declaring local variables of the same
name, and assigning those variables based on the input and workspace
variables provided.
<p>
This version is used for blocks other than the main eval block.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>g</code> - code generator</dd>
<dd><code>bt</code> - type of the block to be added</dd>
<dd><code>body</code> - source code of the block. Optional. Block will be omitted
if the method body is null or empty</dd>
<dd><code>inputVariables</code> - list of input variable bindings which match up to declared
<code>@Param</code> member variables in order. The input variables have the
same name as the parameters that they represent</dd>
<dd><code>workspaceJVars</code> - list of workspace variables, structures the same as
input variables</dd>
<dd><code>workspaceOnly</code> - <code>true</code> if this is a setup block and
we should declare only constant workspace variables, <code>false</code> to
declare all variables</dd>
</dl>
</li>
</ul>
<a name="addProtectedBlock-org.apache.drill.exec.expr.ClassGenerator-com.sun.codemodel.JBlock-java.lang.String-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer:A-com.sun.codemodel.JVar:A-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addProtectedBlock</h4>
<pre>protected&nbsp;void&nbsp;addProtectedBlock(<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.html" title="class in org.apache.drill.exec.expr">ClassGenerator</a>&lt;?&gt;&nbsp;g,
com.sun.codemodel.JBlock&nbsp;sub,
<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;body,
<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.HoldingContainer.html" title="class in org.apache.drill.exec.expr">ClassGenerator.HoldingContainer</a>[]&nbsp;inputVariables,
com.sun.codemodel.JVar[]&nbsp;workspaceJVars,
boolean&nbsp;workspaceOnly)</pre>
<div class="block">Generate the function block itself, without surrounding comments, and
whether or not the method is empty.</div>
</li>
</ul>
<a name="declareVarArgArray-com.sun.codemodel.JCodeModel-com.sun.codemodel.JBlock-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>declareVarArgArray</h4>
<pre>protected&nbsp;void&nbsp;declareVarArgArray(com.sun.codemodel.JCodeModel&nbsp;model,
com.sun.codemodel.JBlock&nbsp;jBlock,
<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.HoldingContainer.html" title="class in org.apache.drill.exec.expr">ClassGenerator.HoldingContainer</a>[]&nbsp;inputVariables)</pre>
<div class="block">Declares array for storing vararg function arguments.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>model</code> - code model to generate the code</dd>
<dd><code>jBlock</code> - block of code to be populated</dd>
<dd><code>inputVariables</code> - array of input variables for current function</dd>
</dl>
</li>
</ul>
<a name="declareInputVariable-com.sun.codemodel.JCodeModel-com.sun.codemodel.JBlock-org.apache.drill.exec.expr.ClassGenerator.HoldingContainer-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>declareInputVariable</h4>
<pre>protected&nbsp;void&nbsp;declareInputVariable(com.sun.codemodel.JCodeModel&nbsp;model,
com.sun.codemodel.JBlock&nbsp;jBlock,
<a href="../../../../../../org/apache/drill/exec/expr/ClassGenerator.HoldingContainer.html" title="class in org.apache.drill.exec.expr">ClassGenerator.HoldingContainer</a>&nbsp;inputVariable,
int&nbsp;currentIndex)</pre>
<div class="block">Generate the top part of a function call which simulates passing parameters
into the function. Given the following declaration: <code><pre>
public static class UnionIsBigInt implements DrillSimpleFunc {</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>model</code> - code model to generate the code</dd>
<dd><code>jBlock</code> - block of code to be populated</dd>
<dd><code>inputVariable</code> - input variable for current function</dd>
<dd><code>currentIndex</code> - index of current parameter</dd>
</dl>
</li>
</ul>
<a name="declare-com.sun.codemodel.JBlock-org.apache.drill.exec.expr.fn.ValueReference-com.sun.codemodel.JType-com.sun.codemodel.JExpression-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>declare</h4>
<pre>protected&nbsp;com.sun.codemodel.JAssignmentTarget&nbsp;declare(com.sun.codemodel.JBlock&nbsp;jBlock,
<a href="../../../../../../org/apache/drill/exec/expr/fn/ValueReference.html" title="class in org.apache.drill.exec.expr.fn">ValueReference</a>&nbsp;parameter,
com.sun.codemodel.JType&nbsp;paramClass,
com.sun.codemodel.JExpression&nbsp;paramExpression,
int&nbsp;currentIndex)</pre>
<div class="block">Declares specified <code>paramExpression</code> in specified <code>jBlock</code>
and assigns it to the array component if required and / or returns declared expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jBlock</code> - target block where declaration is added</dd>
<dd><code>parameter</code> - function parameter which should be declared</dd>
<dd><code>paramClass</code> - type of the declared variable</dd>
<dd><code>paramExpression</code> - expression to be declared</dd>
<dd><code>currentIndex</code> - index of current parameter</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>declared expression</dd>
</dl>
</li>
</ul>
<a name="matches-org.apache.drill.common.types.TypeProtos.MajorType-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>matches</h4>
<pre>public&nbsp;boolean&nbsp;matches(<a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a>&nbsp;returnType,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a>&gt;&nbsp;argTypes)</pre>
</li>
</ul>
<a name="getParamMajorType-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParamMajorType</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a>&nbsp;getParamMajorType(int&nbsp;i)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/drill/common/expression/fn/FuncHolder.html#getParamMajorType-int-">FuncHolder</a></code></span></div>
<div class="block">Drill SQL type of an input parameter.</div>
</li>
</ul>
<a name="getParamCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParamCount</h4>
<pre>public&nbsp;int&nbsp;getParamCount()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/drill/common/expression/fn/FuncHolder.html#getParamCount--">FuncHolder</a></code></span></div>
<div class="block">Number of defined input parameters.</div>
</li>
</ul>
<a name="isConstant-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isConstant</h4>
<pre>public&nbsp;boolean&nbsp;isConstant(int&nbsp;i)</pre>
</li>
</ul>
<a name="getAttributeParameter-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttributeParameter</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/exec/expr/fn/ValueReference.html" title="class in org.apache.drill.exec.expr.fn">ValueReference</a>&nbsp;getAttributeParameter(int&nbsp;i)</pre>
<div class="block">Returns i-th function attribute parameter.
For the case when current function is vararg and specified index
is greater than or equals to the attributes count, the last function attribute parameter is returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>i</code> - index of function attribute parameter to be returned</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>i-th function attribute parameter</dd>
</dl>
</li>
</ul>
<a name="isFieldReader-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFieldReader</h4>
<pre>public&nbsp;boolean&nbsp;isFieldReader(int&nbsp;i)</pre>
</li>
</ul>
<a name="getReturnType-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReturnType</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a>&nbsp;getReturnType(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/drill/common/expression/LogicalExpression.html" title="interface in org.apache.drill.common.expression">LogicalExpression</a>&gt;&nbsp;logicalExpressions)</pre>
</li>
</ul>
<a name="getOutputWidthCalculator--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOutputWidthCalculator</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/exec/expr/fn/output/OutputWidthCalculator.html" title="interface in org.apache.drill.exec.expr.fn.output">OutputWidthCalculator</a>&nbsp;getOutputWidthCalculator()</pre>
</li>
</ul>
<a name="variableOutputSizeEstimate--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>variableOutputSizeEstimate</h4>
<pre>public&nbsp;int&nbsp;variableOutputSizeEstimate()</pre>
</li>
</ul>
<a name="getNullHandling--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNullHandling</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/exec/expr/annotations/FunctionTemplate.NullHandling.html" title="enum in org.apache.drill.exec.expr.annotations">FunctionTemplate.NullHandling</a>&nbsp;getNullHandling()</pre>
</li>
</ul>
<a name="getRegisteredNames--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegisteredNames</h4>
<pre>public&nbsp;<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;getRegisteredNames()</pre>
</li>
</ul>
<a name="getCostCategory--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCostCategory</h4>
<pre>public&nbsp;int&nbsp;getCostCategory()</pre>
</li>
</ul>
<a name="getParameters--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameters</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/exec/expr/fn/ValueReference.html" title="class in org.apache.drill.exec.expr.fn">ValueReference</a>[]&nbsp;getParameters()</pre>
</li>
</ul>
<a name="checkPrecisionRange--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkPrecisionRange</h4>
<pre>public&nbsp;boolean&nbsp;checkPrecisionRange()</pre>
</li>
</ul>
<a name="getReturnType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReturnType</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a>&nbsp;getReturnType()</pre>
</li>
</ul>
<a name="getReturnValue--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReturnValue</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/exec/expr/fn/ValueReference.html" title="class in org.apache.drill.exec.expr.fn">ValueReference</a>&nbsp;getReturnValue()</pre>
</li>
</ul>
<a name="getWorkspaceVars--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWorkspaceVars</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/exec/expr/fn/WorkspaceReference.html" title="class in org.apache.drill.exec.expr.fn">WorkspaceReference</a>[]&nbsp;getWorkspaceVars()</pre>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<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;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><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></code>&nbsp;in class&nbsp;<code><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></code></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/DrillFuncHolder.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/expr/fn/DrillComplexWriterFuncHolder.html" title="class in org.apache.drill.exec.expr.fn"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/drill/exec/expr/fn/DrillSimpleFuncHolder.html" title="class in org.apache.drill.exec.expr.fn"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/drill/exec/expr/fn/DrillFuncHolder.html" target="_top">Frames</a></li>
<li><a href="DrillFuncHolder.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>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>