You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by sa...@apache.org on 2017/03/03 08:45:03 UTC

[43/49] incubator-trafodion-site git commit: Updates for python installer documentation in provisioning guide.

http://git-wip-us.apache.org/repos/asf/incubator-trafodion-site/blob/be8dfc15/apidocs/2.1.0/tmudr_doxygen/html/classtmudr_1_1UDRInvocationInfo.html
----------------------------------------------------------------------
diff --git a/apidocs/2.1.0/tmudr_doxygen/html/classtmudr_1_1UDRInvocationInfo.html b/apidocs/2.1.0/tmudr_doxygen/html/classtmudr_1_1UDRInvocationInfo.html
new file mode 100644
index 0000000..0fd5b8c
--- /dev/null
+++ b/apidocs/2.1.0/tmudr_doxygen/html/classtmudr_1_1UDRInvocationInfo.html
@@ -0,0 +1,1366 @@
+<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>tmudr: tmudr::UDRInvocationInfo Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javaScript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<!-- Generated by Doxygen 1.6.1 -->
+<script type="text/javascript"><!--
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+--></script>
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <img id="MSearchSelect" src="search/search.png"
+             onmouseover="return searchBox.OnSearchSelectShow()"
+             onmouseout="return searchBox.OnSearchSelectHide()"
+             alt=""/>
+        <input type="text" id="MSearchField" value="Search" accesskey="S"
+             onfocus="searchBox.OnSearchFieldFocus(true)" 
+             onblur="searchBox.OnSearchFieldFocus(false)" 
+             onkeyup="searchBox.OnSearchFieldChange(event)"/>
+        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath"><b>tmudr</b>::<a class="el" href="classtmudr_1_1UDRInvocationInfo.html">UDRInvocationInfo</a>
+  </div>
+</div>
+<div class="contents">
+<h1>tmudr::UDRInvocationInfo Class Reference</h1><!-- doxytag: class="tmudr::UDRInvocationInfo" --><!-- doxytag: inherits="tmudr::TMUDRSerializableObject" -->
+<p>Describes an invocation of a <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a>.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="sqludr_8h_source.html">sqludr.h</a>&gt;</code></p>
+
+<p>Inherits tmudr::TMUDRSerializableObject.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#aa1a5e7aa734a95a5478db3d785508234">FuncType</a> { <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#aa1a5e7aa734a95a5478db3d785508234a8dcb9100d5fc6499d3f46fdbabd30d71">GENERIC</a>, 
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#aa1a5e7aa734a95a5478db3d785508234a280bc2ccb82ecc8f20e75f05f0ab8e26">MAPPER</a>, 
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#aa1a5e7aa734a95a5478db3d785508234a94b5e63a173450993e7723c9609e0408">REDUCER</a>, 
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#aa1a5e7aa734a95a5478db3d785508234a007c75e34f5e8f1922436f6a1b8e4ec2">REDUCER_NC</a>
+ }</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Type of a TMUDF: Generic, mapper or reducer. </p>
+ <a href="classtmudr_1_1UDRInvocationInfo.html#aa1a5e7aa734a95a5478db3d785508234">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a5742766a2b3800bd06bbe486cafa0e0b">SQLAccessType</a> </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a0dd8a181e55e743bb9ec39b747491e1e">SQLTransactionType</a> </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a7c38879b0268e3b20bf2cced998d93f2">SQLRightsType</a> </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab8f0c182949b86f0eb01e7dd5533496d">IsolationType</a> </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a17775d1990732a2ac52bcc528c76e40b">CallPhase</a> </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>call phase for the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> interface </p>
+ <a href="classtmudr_1_1UDRInvocationInfo.html#a17775d1990732a2ac52bcc528c76e40b">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361e">DebugFlags</a> { <br/>
+&nbsp;&nbsp;<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361eaf44eafcbd8faccd8c85725874380eaf3">DEBUG_INITIAL_RUN_TIME_LOOP_ONE</a> =  0x00000001, 
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361eaffb9263b7a7c4d84b7e9af75f133b71a">DEBUG_INITIAL_RUN_TIME_LOOP_ALL</a> =  0x00000002, 
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361ea8e0cbb0080167b8735e1bc6ea6dd884f">DEBUG_INITIAL_COMPILE_TIME_LOOP</a> =  0x00000004, 
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361ea630511f4c789eb3f7ba27ee5a4e864df">DEBUG_LOAD_MSG_LOOP</a> =  0x00000008, 
+<br/>
+&nbsp;&nbsp;<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361ea5ee57a5f93619e910047e53cf5d1c9f0">TRACE_ROWS</a> =  0x00000010, 
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361ea208a06e955c534acf2f2a4ff987bbd3c">PRINT_INVOCATION_INFO_INITIAL</a> =  0x00000020, 
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361eaa3b4433164dcdb59c782867e25ec55cc">PRINT_INVOCATION_INFO_END_COMPILE</a> =  0x00000040, 
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361ea6b367b009643535ace09423ae914e549">PRINT_INVOCATION_INFO_AT_RUN_TIME</a> =  0x00000080, 
+<br/>
+&nbsp;&nbsp;<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361eaf15016f709fd2be11ebeae7a97ef3470">VALIDATE_WALLS</a> =  0x00000100
+<br/>
+ }</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>values used for the UDR_DEBUG_FLAGS CQD </p>
+ <a href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361e">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a4fef718438b8d0f73c72960850e12f76">getUDRName</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a6c037fb917b24c9140966100583c4ddf">getNumTableInputs</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classtmudr_1_1TableInfo.html">TableInfo</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a8e8246083a145bfcf9771a915df70d2a">in</a> (int childNum=0) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classtmudr_1_1TableInfo.html">TableInfo</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#abccd0a12bb9f275f9b51d0b147bc238b">out</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a17775d1990732a2ac52bcc528c76e40b">CallPhase</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a05e6cfdfe6353ff71bd9d788f2ad90a7">getCallPhase</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a4260a3d72362f6ef3fa058b7f4fc733e">getCurrentUser</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#af6fe6a390c721a579d39f132b053e01e">getSessionUser</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a526a57461a964c44fa08333cfbe3e403">getCurrentRole</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a44281bb80ce0ddfc220f830603184bb6">isCompileTime</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ae6454d983c0e219533fbedce92fdbb7e">isRunTime</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#abc2ae451673901fadcc4d468903dcb90">getDebugFlags</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#aa1a5e7aa734a95a5478db3d785508234">FuncType</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a7ffc96813d89aaf680b69b17a9fd4efa">getFuncType</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classtmudr_1_1ParameterListInfo.html">ParameterListInfo</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a47c62b14380293ed12a99c23650938f8">getFormalParameters</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classtmudr_1_1ParameterListInfo.html">ParameterListInfo</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab311a6d5798704f36afc52a3603eeec9">par</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#abb1c5cae5193c0c736d534943ff6fd0a">getNumPredicates</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classtmudr_1_1PredicateInfo.html">PredicateInfo</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a862b4fc9c3041408c18b72fa456bc37b">getPredicate</a> (int i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#af56ae6e3b533811727c01ac0dd373b2a">isAComparisonPredicate</a> (int i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classtmudr_1_1ComparisonPredicateInfo.html">ComparisonPredicateInfo</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ac7b36f50b9bc332b532325ef6d74fef0">getComparisonPredicate</a> (int i) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtmudr_1_1TableInfo.html">TableInfo</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a0e46b3318bf4e8c5f5a0953e851fbae5">out</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ae8ec687491875c1086660a237d936019">addFormalParameter</a> (const <a class="el" href="classtmudr_1_1ColumnInfo.html">ColumnInfo</a> &amp;param)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#af9fad0a00cccb776398083cf35aec4f9">setFuncType</a> (<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#aa1a5e7aa734a95a5478db3d785508234">FuncType</a> type)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ae7274d94c79a78a4cd0976cbe572ab26">addPassThruColumns</a> (int inputTableNum=0, int startInputColNum=0, int endInputColNum=-1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ac2e13c982996e5e32f67cd157efce2fd">setChildPartitioning</a> (int inputTableNum, const <a class="el" href="classtmudr_1_1PartitionInfo.html">PartitionInfo</a> &amp;partInfo)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a9cf945532b68164df02ed59e56993dec">setChildOrdering</a> (int inputTableNum, const <a class="el" href="classtmudr_1_1OrderInfo.html">OrderInfo</a> &amp;orderInfo)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a165ce1b6a1e8430cc9ff8bc069c52403">setChildColumnUsage</a> (int inputTableNum, int inputColumnNum, <a class="el" href="classtmudr_1_1ColumnInfo.html#acd91858abc45772d55f3310d789271b4">ColumnInfo::ColumnUseCode</a> usage)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a17aa99c78b92c21bb7f165d6a525ee45">setUnusedPassthruColumns</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a31ac324ce7cb12163be24b79eec1b416">setPredicateEvaluationCode</a> (int predicateNum, <a class="el" href="classtmudr_1_1PredicateInfo.html#aa2a53f51db2e8e56cf79fe8c28e54232">PredicateInfo::EvaluationCode</a> c)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a08078fda7b63cea5e2f02546e04a9e1c">pushPredicatesOnPassthruColumns</a> (int startPredNum=0, int lastPredNum=-1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ac3c17d8d9c6efd94471179a052ca7ab7">propagateConstraintsFor1To1UDFs</a> (bool exactlyOneRowPerInput)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtmudr_1_1UDRWriterCompileTimeData.html">UDRWriterCompileTimeData</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a0f52f99de8bd5d268ad54b397037aaa4">getUDRWriterCompileTimeData</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a62d8e083376c816dc66d1d7447869bee">setUDRWriterCompileTimeData</a> (<a class="el" href="classtmudr_1_1UDRWriterCompileTimeData.html">UDRWriterCompileTimeData</a> *compileTimeData)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a7af8ac157fb75e4d426e6243bb8a4e1e">copyPassThruData</a> (int inputTableNum=0, int startInputColNum=0, int endInputColNum=-1)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ae743d98454eaf28158a14f7ff4e22908">getQueryId</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a0fa7dbaa5449564569ac90579da6466f">getNumParallelInstances</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a8c4c9625a85c42534bb63324f78f1ba5">getMyInstanceNum</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a5f39c23ff94d54317d11cf87e4cc1102">print</a> ()</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Describes an invocation of a <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a>. </p>
+<p>This combines the description of the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a>, its names and properties with the parameters, input and output table layouts and other information. An object of this class is passed to most methods defined by the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> writer. It can be used to get input and parameter data and to set values of table-valued output columns. </p>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="a17775d1990732a2ac52bcc528c76e40b"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::CallPhase" ref="a17775d1990732a2ac52bcc528c76e40b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a17775d1990732a2ac52bcc528c76e40b">tmudr::UDRInvocationInfo::CallPhase</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>call phase for the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> interface </p>
+<p>This is of limited interest for <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> writers and mostly used internally to ensure method calls are not done at the wrong time. </p>
+
+</div>
+</div>
+<a class="anchor" id="ab6b34603b9cad093f862ff650aeb361e"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::DebugFlags" ref="ab6b34603b9cad093f862ff650aeb361e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361e">tmudr::UDRInvocationInfo::DebugFlags</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>values used for the UDR_DEBUG_FLAGS CQD </p>
+<p>use cqd UDR_DEBUG_FLAGS 'num' in SQL to set these, add up the flags (in decimal) that you want to set. See <a href="https://cwiki.apache.org/confluence/display/TRAFODION/Tutorial%3A+The+object-oriented+UDF+interface#Tutorial:Theobject-orientedUDFinterface-DebuggingUDFcode">https://cwiki.apache.org/confluence/display/TRAFODION/Tutorial%3A+The+object-oriented+UDF+interface#Tutorial:Theobject-orientedUDFinterface-DebuggingUDFcode</a> for details. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ab6b34603b9cad093f862ff650aeb361eaf44eafcbd8faccd8c85725874380eaf3"></a><!-- doxytag: member="DEBUG_INITIAL_RUN_TIME_LOOP_ONE" ref="ab6b34603b9cad093f862ff650aeb361eaf44eafcbd8faccd8c85725874380eaf3" args="" -->DEBUG_INITIAL_RUN_TIME_LOOP_ONE</em>&nbsp;</td><td>
+<p>1 </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab6b34603b9cad093f862ff650aeb361eaffb9263b7a7c4d84b7e9af75f133b71a"></a><!-- doxytag: member="DEBUG_INITIAL_RUN_TIME_LOOP_ALL" ref="ab6b34603b9cad093f862ff650aeb361eaffb9263b7a7c4d84b7e9af75f133b71a" args="" -->DEBUG_INITIAL_RUN_TIME_LOOP_ALL</em>&nbsp;</td><td>
+<p>2 </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab6b34603b9cad093f862ff650aeb361ea8e0cbb0080167b8735e1bc6ea6dd884f"></a><!-- doxytag: member="DEBUG_INITIAL_COMPILE_TIME_LOOP" ref="ab6b34603b9cad093f862ff650aeb361ea8e0cbb0080167b8735e1bc6ea6dd884f" args="" -->DEBUG_INITIAL_COMPILE_TIME_LOOP</em>&nbsp;</td><td>
+<p>4 </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab6b34603b9cad093f862ff650aeb361ea630511f4c789eb3f7ba27ee5a4e864df"></a><!-- doxytag: member="DEBUG_LOAD_MSG_LOOP" ref="ab6b34603b9cad093f862ff650aeb361ea630511f4c789eb3f7ba27ee5a4e864df" args="" -->DEBUG_LOAD_MSG_LOOP</em>&nbsp;</td><td>
+<p>8 </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab6b34603b9cad093f862ff650aeb361ea5ee57a5f93619e910047e53cf5d1c9f0"></a><!-- doxytag: member="TRACE_ROWS" ref="ab6b34603b9cad093f862ff650aeb361ea5ee57a5f93619e910047e53cf5d1c9f0" args="" -->TRACE_ROWS</em>&nbsp;</td><td>
+<p>16 </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab6b34603b9cad093f862ff650aeb361ea208a06e955c534acf2f2a4ff987bbd3c"></a><!-- doxytag: member="PRINT_INVOCATION_INFO_INITIAL" ref="ab6b34603b9cad093f862ff650aeb361ea208a06e955c534acf2f2a4ff987bbd3c" args="" -->PRINT_INVOCATION_INFO_INITIAL</em>&nbsp;</td><td>
+<p>32 </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab6b34603b9cad093f862ff650aeb361eaa3b4433164dcdb59c782867e25ec55cc"></a><!-- doxytag: member="PRINT_INVOCATION_INFO_END_COMPILE" ref="ab6b34603b9cad093f862ff650aeb361eaa3b4433164dcdb59c782867e25ec55cc" args="" -->PRINT_INVOCATION_INFO_END_COMPILE</em>&nbsp;</td><td>
+<p>64 </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab6b34603b9cad093f862ff650aeb361ea6b367b009643535ace09423ae914e549"></a><!-- doxytag: member="PRINT_INVOCATION_INFO_AT_RUN_TIME" ref="ab6b34603b9cad093f862ff650aeb361ea6b367b009643535ace09423ae914e549" args="" -->PRINT_INVOCATION_INFO_AT_RUN_TIME</em>&nbsp;</td><td>
+<p>128 </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab6b34603b9cad093f862ff650aeb361eaf15016f709fd2be11ebeae7a97ef3470"></a><!-- doxytag: member="VALIDATE_WALLS" ref="ab6b34603b9cad093f862ff650aeb361eaf15016f709fd2be11ebeae7a97ef3470" args="" -->VALIDATE_WALLS</em>&nbsp;</td><td>
+<p>256 </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aa1a5e7aa734a95a5478db3d785508234"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::FuncType" ref="aa1a5e7aa734a95a5478db3d785508234" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#aa1a5e7aa734a95a5478db3d785508234">tmudr::UDRInvocationInfo::FuncType</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Type of a TMUDF: Generic, mapper or reducer. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="aa1a5e7aa734a95a5478db3d785508234a8dcb9100d5fc6499d3f46fdbabd30d71"></a><!-- doxytag: member="GENERIC" ref="aa1a5e7aa734a95a5478db3d785508234a8dcb9100d5fc6499d3f46fdbabd30d71" args="" -->GENERIC</em>&nbsp;</td><td>
+<p>The Trafodion compiler will make only the most conservative assumptions about this type of UDF. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="aa1a5e7aa734a95a5478db3d785508234a280bc2ccb82ecc8f20e75f05f0ab8e26"></a><!-- doxytag: member="MAPPER" ref="aa1a5e7aa734a95a5478db3d785508234a280bc2ccb82ecc8f20e75f05f0ab8e26" args="" -->MAPPER</em>&nbsp;</td><td>
+<p>A UDF that behaves like a mapper. A mapper does not carry any state between rows it reads from its table-valued inputs. It produces zero or more output rows per input row. Because no state is kept between rows, the Trafodion compiler can automatically parallelize execution and push predicates down to the table-valued inputs. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="aa1a5e7aa734a95a5478db3d785508234a94b5e63a173450993e7723c9609e0408"></a><!-- doxytag: member="REDUCER" ref="aa1a5e7aa734a95a5478db3d785508234a94b5e63a173450993e7723c9609e0408" args="" -->REDUCER</em>&nbsp;</td><td>
+<p>A reducer requires the data to be partitioned on a set of columns. The UDF does not carry any state between groups of rows with the same partition column values, but it may carry state within such groups. This allows the compiler to parallelize execution and to push predicates on the partitioning column(s) down to table-valued inputs. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="aa1a5e7aa734a95a5478db3d785508234a007c75e34f5e8f1922436f6a1b8e4ec2"></a><!-- doxytag: member="REDUCER_NC" ref="aa1a5e7aa734a95a5478db3d785508234a007c75e34f5e8f1922436f6a1b8e4ec2" args="" -->REDUCER_NC</em>&nbsp;</td><td>
+<p>Same as REDUCER, except that in this case the UDF does not require the rows belonging to a key to be grouped together, they can be non-contiguous (NC). This can avoid a costly sort of the input table in cases where a highly reducing UDF can keep a table of all the keys in memory. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ab8f0c182949b86f0eb01e7dd5533496d"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::IsolationType" ref="ab8f0c182949b86f0eb01e7dd5533496d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab8f0c182949b86f0eb01e7dd5533496d">tmudr::UDRInvocationInfo::IsolationType</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Indicates whether this <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> is trusted or not </p>
+
+</div>
+</div>
+<a class="anchor" id="a5742766a2b3800bd06bbe486cafa0e0b"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::SQLAccessType" ref="a5742766a2b3800bd06bbe486cafa0e0b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a5742766a2b3800bd06bbe486cafa0e0b">tmudr::UDRInvocationInfo::SQLAccessType</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Type of SQL access allowed in this routine </p>
+
+</div>
+</div>
+<a class="anchor" id="a7c38879b0268e3b20bf2cced998d93f2"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::SQLRightsType" ref="a7c38879b0268e3b20bf2cced998d93f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a7c38879b0268e3b20bf2cced998d93f2">tmudr::UDRInvocationInfo::SQLRightsType</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Effective user ids for determining privileges</p>
+<p>This is meaningful only for UDRs that perform SQL operations, using the default connection. </p>
+
+</div>
+</div>
+<a class="anchor" id="a0dd8a181e55e743bb9ec39b747491e1e"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::SQLTransactionType" ref="a0dd8a181e55e743bb9ec39b747491e1e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a0dd8a181e55e743bb9ec39b747491e1e">tmudr::UDRInvocationInfo::SQLTransactionType</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Type of transaction that is required, if any </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ae8ec687491875c1086660a237d936019"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::addFormalParameter" ref="ae8ec687491875c1086660a237d936019" args="(const ColumnInfo &amp;param)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::addFormalParameter </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classtmudr_1_1ColumnInfo.html">ColumnInfo</a> &amp;&nbsp;</td>
+          <td class="paramname"> <em>param</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Add a formal parameter to match an actual parameter.</p>
+<p>Only use this method from within the <a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a> method.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd>describeParamsAndColumns()</dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>Info with name and type of the formal parameter.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ae7274d94c79a78a4cd0976cbe572ab26"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::addPassThruColumns" ref="ae7274d94c79a78a4cd0976cbe572ab26" args="(int inputTableNum=0, int startInputColNum=0, int endInputColNum=&#45;1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::addPassThruColumns </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>inputTableNum</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>startInputColNum</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>endInputColNum</em> = <code>-1</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Add columns of table-valued inputs as output columns.</p>
+<p>Many TMUDFs make the column values of their table-valued inputs available as output columns. Such columns are called "pass-thru" columns. This method is an easy interface to create such pass-thru columns. Note that if a column is marked as pass-thru column, the UDF must copy the input value to the output (e.g. with the <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a7af8ac157fb75e4d426e6243bb8a4e1e">copyPassThruData()</a> method). If it fails to do that, incorrect results may occur, because the compiler makes the assumptions that these values are the same.</p>
+<p>Only use this method from within the <a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a> method.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a> </dd>
+<dd>
+<a class="el" href="classtmudr_1_1ProvenanceInfo.html" title="Describes where an output column is coming from.">ProvenanceInfo</a> </dd>
+<dd>
+<a class="el" href="classtmudr_1_1ColumnInfo.html#abd56e48603e02a2b65f383921a2c44a1">ColumnInfo::getProvenance()</a></dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>inputTableNum</em>&nbsp;</td><td>Index of table-valued input to add. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>startInputColNum</em>&nbsp;</td><td>First column of the table-valued input to add as an output column. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>endInputColNum</em>&nbsp;</td><td>Last column of the table-valued input to add as an output column (note this is inclusive) or -1 to add all remaining column. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a7af8ac157fb75e4d426e6243bb8a4e1e"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::copyPassThruData" ref="a7af8ac157fb75e4d426e6243bb8a4e1e" args="(int inputTableNum=0, int startInputColNum=0, int endInputColNum=&#45;1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::copyPassThruData </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>inputTableNum</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>startInputColNum</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>endInputColNum</em> = <code>-1</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Copy values of pass-thru columns from the input to the output table.</p>
+<p>This method is an easy way to set the values of the table-valued result row from their corresponding values in the table-valued inputs. Note that the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> must set all the values of the pass-thru columns to the corresponsing values of the input tables. If it fails to do that, some optimizations done by Trafodion could lead to wrong results (e.g. some predicates could be applied incorrectly). Every TMUDF with table-valued inputs and pass-thru columns should call this method for every row it emits.</p>
+<p>This method can only be called from within <a class="el" href="classtmudr_1_1UDR.html#aac3ba2f5c48f11b7913d460cb22e3dc1">UDR::processData()</a>.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ae7274d94c79a78a4cd0976cbe572ab26">addPassThruColumns()</a> </dd>
+<dd>
+<a class="el" href="classtmudr_1_1UDR.html#aac3ba2f5c48f11b7913d460cb22e3dc1">UDR::processData()</a></dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>inputTableNum</em>&nbsp;</td><td>Number of table-valued input to copy from. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>startInputColNum</em>&nbsp;</td><td>First column number in the input table to copy </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>endInputColNum</em>&nbsp;</td><td>Last column number in the input table to copy (inclusive) or -1 to copy all remaining columns </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a05e6cfdfe6353ff71bd9d788f2ad90a7"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getCallPhase" ref="a05e6cfdfe6353ff71bd9d788f2ad90a7" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a17775d1990732a2ac52bcc528c76e40b">UDRInvocationInfo::CallPhase</a> UDRInvocationInfo::getCallPhase </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get call phase.</p>
+<p>This call is not normally needed, since we know which method of <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> we are in. However, in some cases where the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> writer wants to use code in multiple call phases this might be useful.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Enum for the call phase we are in. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ac7b36f50b9bc332b532325ef6d74fef0"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getComparisonPredicate" ref="ac7b36f50b9bc332b532325ef6d74fef0" args="(int i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="classtmudr_1_1ComparisonPredicateInfo.html">ComparisonPredicateInfo</a> &amp; UDRInvocationInfo::getComparisonPredicate </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>i</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get a comparison predicate</p>
+<p>Note: This will throw an exception if predicate i is not a comparison predicate. Use method <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#af56ae6e3b533811727c01ac0dd373b2a">isAComparisonPredicate()</a> to make sure this is the case. Note also that the numbering scheme is the same as that for getPredicate, so if there is a mix of different predicate types, the numbers of comparison predicates are not contiguous.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a862b4fc9c3041408c18b72fa456bc37b">getPredicate()</a> </dd>
+<dd>
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#af56ae6e3b533811727c01ac0dd373b2a">isAComparisonPredicate()</a> </dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>i</em>&nbsp;</td><td>Number/ordinal of the predicate to retrieve. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Comparison predicate. </dd></dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a526a57461a964c44fa08333cfbe3e403"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getCurrentRole" ref="a526a57461a964c44fa08333cfbe3e403" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const std::string &amp; UDRInvocationInfo::getCurrentRole </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get current role.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Current role. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a4260a3d72362f6ef3fa058b7f4fc733e"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getCurrentUser" ref="a4260a3d72362f6ef3fa058b7f4fc733e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const std::string &amp; UDRInvocationInfo::getCurrentUser </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get current user.</p>
+<p>Get the id of the current user, which is the effective user id at the time. This is usually the same as the session user, except when a view or <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> uses "definer
+  privileges", substituting the current user with the definer of the view or <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a>. In SQL, this value is called CURRENT_USER.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#af6fe6a390c721a579d39f132b053e01e">getSessionUser()</a> </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Current user. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="abc2ae451673901fadcc4d468903dcb90"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getDebugFlags" ref="abc2ae451673901fadcc4d468903dcb90" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int UDRInvocationInfo::getDebugFlags </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get debugging flags, set via CONTROL QUERY DEFAULT.</p>
+<p>Debug flags are set via the UDR_DEBUG_FLAGS CONTROL QUERY DEFAULT at compile time. This returns the value of this CQD. Usually not needed.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Value the UDR_DEBUG_FLAGS CQD has or had at compile time. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a47c62b14380293ed12a99c23650938f8"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getFormalParameters" ref="a47c62b14380293ed12a99c23650938f8" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="classtmudr_1_1ParameterListInfo.html">ParameterListInfo</a> &amp; UDRInvocationInfo::getFormalParameters </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get the formal parameters of the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> invocation.</p>
+<p>Formal parameters are available only at compile time. They are either defined in the CREATE FUNCTION DDL or through the compile time interface. Note that number and types of formal and actual parameters must match, once we return from the describeParamsAndColumns() call, otherwise an error will be generated.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Formal parameter description. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7ffc96813d89aaf680b69b17a9fd4efa"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getFuncType" ref="a7ffc96813d89aaf680b69b17a9fd4efa" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#aa1a5e7aa734a95a5478db3d785508234">UDRInvocationInfo::FuncType</a> UDRInvocationInfo::getFuncType </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get the function type of this <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> invocation.</p>
+<p>Returns the function type that can be set by the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> writer with the <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#af9fad0a00cccb776398083cf35aec4f9">setFuncType()</a> method.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#af9fad0a00cccb776398083cf35aec4f9">setFuncType()</a></dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Enum of the function type. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a8c4c9625a85c42534bb63324f78f1ba5"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getMyInstanceNum" ref="a8c4c9625a85c42534bb63324f78f1ba5" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int UDRInvocationInfo::getMyInstanceNum </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get the instance number of this runtime process.</p>
+<p>Use this method to find out which of the parallel instances executing a <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> this process is.</p>
+<p>This method can only be called from within <a class="el" href="classtmudr_1_1UDR.html#aac3ba2f5c48f11b7913d460cb22e3dc1">UDR::processData()</a>.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a0fa7dbaa5449564569ac90579da6466f">getNumParallelInstances()</a> </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A number between 0 and <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a0fa7dbaa5449564569ac90579da6466f">getNumParallelInstances()</a> - 1. </dd></dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a0fa7dbaa5449564569ac90579da6466f"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getNumParallelInstances" ref="a0fa7dbaa5449564569ac90579da6466f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int UDRInvocationInfo::getNumParallelInstances </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get the number of parallel instances working on this <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> invocation.</p>
+<p>Use this method to find out how many parallel instances are executing this <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a>.</p>
+<p>This method can only be called from within <a class="el" href="classtmudr_1_1UDR.html#aac3ba2f5c48f11b7913d460cb22e3dc1">UDR::processData()</a>.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a8c4c9625a85c42534bb63324f78f1ba5">getMyInstanceNum()</a> </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Number of parallel instances for this <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> invocation. </dd></dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="abb1c5cae5193c0c736d534943ff6fd0a"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getNumPredicates" ref="abb1c5cae5193c0c736d534943ff6fd0a" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int UDRInvocationInfo::getNumPredicates </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Return number of predicates to be applied in the context of this UDF.</p>
+<p>Don't use this method from within <a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a>, since the predicates are not yet set up in that phase.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Number of predicates. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6c037fb917b24c9140966100583c4ddf"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getNumTableInputs" ref="a6c037fb917b24c9140966100583c4ddf" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int UDRInvocationInfo::getNumTableInputs </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get number of table-valued inputs provided.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Number of table-valued inputs provided. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a862b4fc9c3041408c18b72fa456bc37b"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getPredicate" ref="a862b4fc9c3041408c18b72fa456bc37b" args="(int i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="classtmudr_1_1PredicateInfo.html">PredicateInfo</a> &amp; UDRInvocationInfo::getPredicate </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>i</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get the description of a predicate to be applied.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Description of the predicate.</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a31ac324ce7cb12163be24b79eec1b416">setPredicateEvaluationCode()</a> </dd></dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ae743d98454eaf28158a14f7ff4e22908"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getQueryId" ref="ae743d98454eaf28158a14f7ff4e22908" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const std::string &amp; UDRInvocationInfo::getQueryId </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get query id.</p>
+<p>The query id is only available at runtime. It is an empty string at compile time.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Query id. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af6fe6a390c721a579d39f132b053e01e"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getSessionUser" ref="af6fe6a390c721a579d39f132b053e01e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const std::string &amp; UDRInvocationInfo::getSessionUser </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get session user.</p>
+<p>Get the id of the session user, which is the user who connected to the database. This is usually the same as the current user, except when a view or <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> uses "definer
+  privileges", substituting the current user with the definer of the view or <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a>. In SQL, this value is called SESSION_USER.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a4260a3d72362f6ef3fa058b7f4fc733e">getCurrentUser()</a> </dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Session user. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a4fef718438b8d0f73c72960850e12f76"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getUDRName" ref="a4fef718438b8d0f73c72960850e12f76" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const std::string &amp; UDRInvocationInfo::getUDRName </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> name.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Fully qualified name (catalog.schema.name) of the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a>. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0f52f99de8bd5d268ad54b397037aaa4"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::getUDRWriterCompileTimeData" ref="a0f52f99de8bd5d268ad54b397037aaa4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classtmudr_1_1UDRWriterCompileTimeData.html">UDRWriterCompileTimeData</a> * UDRInvocationInfo::getUDRWriterCompileTimeData </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get data to persist between calls of the compile-time interface</p>
+<p>The <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> writer must use a static or dynamic cast to get a pointer to the derived class.</p>
+<p>Only use this method at compile time.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a62d8e083376c816dc66d1d7447869bee">setUDRWriterCompileTimeData()</a></dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> writer-specific data that was previously attached or NULL. </dd></dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a8e8246083a145bfcf9771a915df70d2a"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::in" ref="a8e8246083a145bfcf9771a915df70d2a" args="(int childNum=0) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="classtmudr_1_1TableInfo.html">TableInfo</a> &amp; UDRInvocationInfo::in </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>childNum</em> = <code>0</code></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get description of a table-valued input.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="classtmudr_1_1TableInfo.html" title="Describes a table-valued input or a table-valued output.">TableInfo</a> reference for the table-valued input. </dd></dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="af56ae6e3b533811727c01ac0dd373b2a"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::isAComparisonPredicate" ref="af56ae6e3b533811727c01ac0dd373b2a" args="(int i) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool UDRInvocationInfo::isAComparisonPredicate </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>i</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Check whether a given predicate is a comparison predicate.</p>
+<p>This returns whether it is safe to use method <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ac7b36f50b9bc332b532325ef6d74fef0">getComparisonPredicate()</a>.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ac7b36f50b9bc332b532325ef6d74fef0">getComparisonPredicate()</a></dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>i</em>&nbsp;</td><td>Number/ordinal index of the predicate. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>true if predcate i is a comparison predicate, false otherwise. </dd></dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a44281bb80ce0ddfc220f830603184bb6"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::isCompileTime" ref="a44281bb80ce0ddfc220f830603184bb6" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool UDRInvocationInfo::isCompileTime </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Check whether we are in the compile time interface.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>true at compile time, false at run-time. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae6454d983c0e219533fbedce92fdbb7e"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::isRunTime" ref="ae6454d983c0e219533fbedce92fdbb7e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool UDRInvocationInfo::isRunTime </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Check whether we are in the run-time interface.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>false at compile time, true at run-time. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0e46b3318bf4e8c5f5a0953e851fbae5"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::out" ref="a0e46b3318bf4e8c5f5a0953e851fbae5" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classtmudr_1_1TableInfo.html">TableInfo</a> &amp; UDRInvocationInfo::out </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Non-const method to get description of the table-valued result.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Non-const <a class="el" href="classtmudr_1_1TableInfo.html" title="Describes a table-valued input or a table-valued output.">TableInfo</a> reference for the table-valued output. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="abccd0a12bb9f275f9b51d0b147bc238b"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::out" ref="abccd0a12bb9f275f9b51d0b147bc238b" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="classtmudr_1_1TableInfo.html">TableInfo</a> &amp; UDRInvocationInfo::out </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get description of the table-valued result.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="classtmudr_1_1TableInfo.html" title="Describes a table-valued input or a table-valued output.">TableInfo</a> reference for the table-valued output. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab311a6d5798704f36afc52a3603eeec9"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::par" ref="ab311a6d5798704f36afc52a3603eeec9" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="classtmudr_1_1ParameterListInfo.html">ParameterListInfo</a> &amp; UDRInvocationInfo::par </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get parameters of the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> invocation.</p>
+<p>These are the actual parameters. At compile time, if a constant has been used, the value of this constant is available, using getString(), getInt() etc. methods. The isAvailable() method indicates whether the parameter is indeed available at compile time. Parameters are always available at run-time.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Parameter description. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5f39c23ff94d54317d11cf87e4cc1102"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::print" ref="a5f39c23ff94d54317d11cf87e4cc1102" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::print </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Print the object, for use in debugging.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDR.html#a9a0d3501ad5d27d90ca85a8791c87409">UDR::debugLoop()</a> </dd>
+<dd>
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab6b34603b9cad093f862ff650aeb361ea6b367b009643535ace09423ae914e549" title="128">UDRInvocationInfo::PRINT_INVOCATION_INFO_AT_RUN_TIME</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ac3c17d8d9c6efd94471179a052ca7ab7"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::propagateConstraintsFor1To1UDFs" ref="ac3c17d8d9c6efd94471179a052ca7ab7" args="(bool exactlyOneRowPerInput)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::propagateConstraintsFor1To1UDFs </td>
+          <td>(</td>
+          <td class="paramtype">bool&nbsp;</td>
+          <td class="paramname"> <em>exactlyOneRowPerInput</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Propagate constraints for UDFs that return one result row for every input row.</p>
+<p>Use this method only if the UDF returns no more than one result row for every input row it reads from its single table-valued input. Note that it is ok for the UDF to return no result rows for some input rows. Wrong results may be returned by SQL statements involving this UDF if the UDF does at runtime not conform to the 1x1 relationship of rows.</p>
+<p>Only use this method from within the <a class="el" href="classtmudr_1_1UDR.html#a83262ec6806c3811bf55b1704fea599d">UDR::describeConstraints()</a> method.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>exactlyOneRowPerInput</em>&nbsp;</td><td>Indicates whether the UDF returns exactly one output row (true) or at most one output row (false) for every input row. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a08078fda7b63cea5e2f02546e04a9e1c"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::pushPredicatesOnPassthruColumns" ref="a08078fda7b63cea5e2f02546e04a9e1c" args="(int startPredNum=0, int lastPredNum=&#45;1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::pushPredicatesOnPassthruColumns </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>startPredNum</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>lastPredNum</em> = <code>-1</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Push predicates on pass-thru columns to the table-valued input.</p>
+<p>Push one or more predicates to their corresponding table-valued input, if they reference only columns from that input, otherwise leave the predicate(s) unchanged.</p>
+<p>Only use this method from within the <a class="el" href="classtmudr_1_1UDR.html#abbfc60e9c860f3c02dc4262ffc1c9939">UDR::describeDataflowAndPredicates()</a> method.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd>PredicateInfo::setEvaluationCode() </dd>
+<dd>
+<a class="el" href="classtmudr_1_1UDR.html#abbfc60e9c860f3c02dc4262ffc1c9939">UDR::describeDataflowAndPredicates()</a></dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>startPredNum</em>&nbsp;</td><td>Number/index of first predicate to be pushed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>lastPredNum</em>&nbsp;</td><td>Number/index of last predicate to be pushed (inclusive) or -1 to push all remaining predicates. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a165ce1b6a1e8430cc9ff8bc069c52403"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::setChildColumnUsage" ref="a165ce1b6a1e8430cc9ff8bc069c52403" args="(int inputTableNum, int inputColumnNum, ColumnInfo::ColumnUseCode usage)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::setChildColumnUsage </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>inputTableNum</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>inputColumnNum</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classtmudr_1_1ColumnInfo.html#acd91858abc45772d55f3310d789271b4">ColumnInfo::ColumnUseCode</a>&nbsp;</td>
+          <td class="paramname"> <em>usage</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Set the usage information for a column of a table-valued input</p>
+<p>This method allows the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> writer to specify whether a given child column is needed or not.</p>
+<p>Only use this method from within the <a class="el" href="classtmudr_1_1UDR.html#abbfc60e9c860f3c02dc4262ffc1c9939">UDR::describeDataflowAndPredicates()</a> method.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a17aa99c78b92c21bb7f165d6a525ee45">setUnusedPassthruColumns()</a> </dd>
+<dd>
+<a class="el" href="classtmudr_1_1UDR.html#abbfc60e9c860f3c02dc4262ffc1c9939">UDR::describeDataflowAndPredicates()</a></dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>inputTableNum</em>&nbsp;</td><td>Number of table-valued input to set. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>inputColumnNum</em>&nbsp;</td><td>Column number for the column to set. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>usage</em>&nbsp;</td><td>New usage for this column. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a9cf945532b68164df02ed59e56993dec"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::setChildOrdering" ref="a9cf945532b68164df02ed59e56993dec" args="(int inputTableNum, const OrderInfo &amp;orderInfo)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::setChildOrdering </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>inputTableNum</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classtmudr_1_1OrderInfo.html">OrderInfo</a> &amp;&nbsp;</td>
+          <td class="paramname"> <em>orderInfo</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Set the ORDER BY info for a table-valued input.</p>
+<p>This method allows the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> writer to override the ORDER BY syntax specified for a table-valued input in the query. Use it to change the required order.</p>
+<p>Only use this method from within the <a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a> method.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd>getChildOrdering() </dd>
+<dd>
+<a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a></dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>inputTableNum</em>&nbsp;</td><td>Number of table-valued input to set. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>orderInfo</em>&nbsp;</td><td>New information on required order for this input table. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ac2e13c982996e5e32f67cd157efce2fd"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::setChildPartitioning" ref="ac2e13c982996e5e32f67cd157efce2fd" args="(int inputTableNum, const PartitionInfo &amp;partInfo)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::setChildPartitioning </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>inputTableNum</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classtmudr_1_1PartitionInfo.html">PartitionInfo</a> &amp;&nbsp;</td>
+          <td class="paramname"> <em>partInfo</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Set the PARTITION BY info for a table-valued input.</p>
+<p>This method allows the <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> writer to override the PARTITION BY syntax specified for a table-valued input in the query. Use it to change the required partitioning.</p>
+<p>Only use this method from within the <a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a> method.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd>getChildPartitioning() </dd>
+<dd>
+<a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a></dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>inputTableNum</em>&nbsp;</td><td>Number of table-valued input to set. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>partInfo</em>&nbsp;</td><td>New information on required partitioning for this input table. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="af9fad0a00cccb776398083cf35aec4f9"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::setFuncType" ref="af9fad0a00cccb776398083cf35aec4f9" args="(FuncType type)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::setFuncType </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#aa1a5e7aa734a95a5478db3d785508234">FuncType</a>&nbsp;</td>
+          <td class="paramname"> <em>type</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Set the function type of this <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> invocation.</p>
+<p>Use this simple method with some caution, since it has an effect on how predicates are pushed down through TMUDFs with table-valued inputs. See describeDataflowAndPredicates() for details. The function type also influences the default degree of parallelism for a TMUDF.</p>
+<p>Only use this method from within the <a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a> method.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd>getFunctType() </dd>
+<dd>
+describeParamsAndColumns() </dd>
+<dd>
+describeDataflowAndPredicates() </dd>
+<dd>
+setDesiredDegreeOfParallelism()</dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>Function type of this <a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> invocation. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a31ac324ce7cb12163be24b79eec1b416"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::setPredicateEvaluationCode" ref="a31ac324ce7cb12163be24b79eec1b416" args="(int predicateNum, PredicateInfo::EvaluationCode c)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::setPredicateEvaluationCode </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>predicateNum</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classtmudr_1_1PredicateInfo.html#aa2a53f51db2e8e56cf79fe8c28e54232">PredicateInfo::EvaluationCode</a>&nbsp;</td>
+          <td class="paramname"> <em>c</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Decide where to evaluate a predicate.</p>
+<p>Only use this method from within the <a class="el" href="classtmudr_1_1UDR.html#abbfc60e9c860f3c02dc4262ffc1c9939">UDR::describeDataflowAndPredicates()</a> method.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a862b4fc9c3041408c18b72fa456bc37b">getPredicate()</a> </dd>
+<dd>
+<a class="el" href="classtmudr_1_1UDR.html#abbfc60e9c860f3c02dc4262ffc1c9939">UDR::describeDataflowAndPredicates()</a></dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>predicateNum</em>&nbsp;</td><td>Number/index of predicate returned by <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a862b4fc9c3041408c18b72fa456bc37b">getPredicate()</a> method. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>Evaluation code for this predicate. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a62d8e083376c816dc66d1d7447869bee"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::setUDRWriterCompileTimeData" ref="a62d8e083376c816dc66d1d7447869bee" args="(UDRWriterCompileTimeData *compileTimeData)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::setUDRWriterCompileTimeData </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classtmudr_1_1UDRWriterCompileTimeData.html">UDRWriterCompileTimeData</a> *&nbsp;</td>
+          <td class="paramname"> <em>compileTimeData</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Set data to persist between calls of the compile-time interface</p>
+<p>This call can be used to attach an object derived from class <a class="el" href="classtmudr_1_1UDRWriterCompileTimeData.html" title="Compile time data owned by the UDR writer.">UDRWriterCompileTimeData</a> to the <a class="el" href="classtmudr_1_1UDRInvocationInfo.html" title="Describes an invocation of a UDR.">UDRInvocationInfo</a> object. Once attached, the data will be carried between the stages of the compiler interface and can be used to keep state. Note that this data will be deleted at the end of the compiler phase and will not persist until runtime.</p>
+<p>Only use this method at compile time.</p>
+<p>To keep state for specific plan alternatives, use the <a class="el" href="classtmudr_1_1UDRPlanInfo.html#a9699b7abd3e69cb9ea15bc999f424cc0">UDRPlanInfo::setUDRWriterCompileTimeData()</a> method.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a0f52f99de8bd5d268ad54b397037aaa4">UDRInvocationInfo::getUDRWriterCompileTimeData()</a> </dd>
+<dd>
+<a class="el" href="classtmudr_1_1UDRPlanInfo.html#a9699b7abd3e69cb9ea15bc999f424cc0">UDRPlanInfo::setUDRWriterCompileTimeData()</a> </dd>
+<dd>
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a0f52f99de8bd5d268ad54b397037aaa4">getUDRWriterCompileTimeData()</a></dd></dl>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>compileTimeData</em>&nbsp;</td><td><a class="el" href="classtmudr_1_1UDR.html" title="This class represents the code associated with a UDR.">UDR</a> writer-defined compile-time data to attach. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a17aa99c78b92c21bb7f165d6a525ee45"></a><!-- doxytag: member="tmudr::UDRInvocationInfo::setUnusedPassthruColumns" ref="a17aa99c78b92c21bb7f165d6a525ee45" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void UDRInvocationInfo::setUnusedPassthruColumns </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Mark any passthru columns that are not needed as unused.</p>
+<p>For any passthru columns that are marked as NOT_USED or NOT_PRODUCED in the table-valued result, set the corresponding input columns to NOT_USED as well. Note that this assumes that the UDF does not need these columns, either! The usage for the passthru column itself is also set to NOT_PRODUCED, since the UDF could not produce the column without having access to the corresponding input column.</p>
+<p>Only use this method from within the <a class="el" href="classtmudr_1_1UDR.html#abbfc60e9c860f3c02dc4262ffc1c9939">UDR::describeDataflowAndPredicates()</a> method.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ae7274d94c79a78a4cd0976cbe572ab26">addPassThruColumns()</a> </dd>
+<dd>
+<a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a165ce1b6a1e8430cc9ff8bc069c52403">setChildColumnUsage()</a> </dd>
+<dd>
+<a class="el" href="classtmudr_1_1UDR.html#abbfc60e9c860f3c02dc4262ffc1c9939">UDR::describeDataflowAndPredicates()</a></dd></dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classtmudr_1_1UDRException.html" title="This is the exception to throw when an error occurs in a UDR.">UDRException</a></em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="sqludr_8h_source.html">sqludr.h</a></li>
+<li>sqludr.cpp</li>
+</ul>
+</div>
+<!--- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="Se

<TRUNCATED>