| <!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 (1.7.0_251) on Sat May 02 18:54:05 PDT 2020 --> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>UDR (trafodion-sql 2.4.0 API)</title> |
| <meta name="date" content="2020-05-02"> |
| <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> |
| </head> |
| <body> |
| <script type="text/javascript"><!-- |
| try { |
| if (location.href.indexOf('is-external=true') == -1) { |
| parent.document.title="UDR (trafodion-sql 2.4.0 API)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| </script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="topNav"><a name="navbar_top"> |
| <!-- --> |
| </a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/UDR.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/trafodion/sql/udr/TypeInfo.SQLTypeSubClassCode.html" title="enum in org.trafodion.sql.udr"><span class="strong">Prev Class</span></a></li> |
| <li><a href="../../../../org/trafodion/sql/udr/UDR.QueueStateInfo.html" title="class in org.trafodion.sql.udr"><span class="strong">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../index.html?org/trafodion/sql/udr/UDR.html" target="_top">Frames</a></li> |
| <li><a href="UDR.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../../../allclasses-noframe.html">All 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: </li> |
| <li><a href="#nested_class_summary">Nested</a> | </li> |
| <li><a href="#field_summary">Field</a> | </li> |
| <li><a href="#constructor_summary">Constr</a> | </li> |
| <li><a href="#method_summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li><a href="#field_detail">Field</a> | </li> |
| <li><a href="#constructor_detail">Constr</a> | </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.trafodion.sql.udr</div> |
| <h2 title="Class UDR" class="title">Class UDR</h2> |
| </div> |
| <div class="contentContainer"> |
| <ul class="inheritance"> |
| <li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> |
| <li> |
| <ul class="inheritance"> |
| <li>org.trafodion.sql.udr.UDR</li> |
| </ul> |
| </li> |
| </ul> |
| <div class="description"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <hr> |
| <br> |
| <pre>public abstract class <span class="strong">UDR</span> |
| extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> |
| <div class="block">This class represents the code associated with a UDR. |
| <p> |
| UDR writers can create a derived class and implement these methods |
| for their specific UDR. The base class also has default methods |
| for all but the runtime call <a href="../../../../org/trafodion/sql/udr/UDR.html#processData(org.trafodion.sql.udr.UDRInvocationInfo,%20org.trafodion.sql.udr.UDRPlanInfo)"><code>processData(UDRInvocationInfo, UDRPlanInfo)</code></a>. See |
| https://wiki.trafodion.org/wiki/index.php/Tutorial:_The_object-oriented_UDF_interface |
| for examples. |
| <p> |
| A UDR writer can decide to override none, some or all of the virtual |
| methods that comprise the complier interaction. The run-time interaction |
| <a href="../../../../org/trafodion/sql/udr/UDR.html#processData(org.trafodion.sql.udr.UDRInvocationInfo,%20org.trafodion.sql.udr.UDRPlanInfo)"><code>processData(UDRInvocationInfo, UDRPlanInfo)</code></a>, must always be provided. |
| <p> |
| When overriding methods, the UDR writer has the option to call the default |
| method to do part of the work, and then to implement additional logic. |
| <p> |
| Multiple UDRs could share the same subclass of UDR. The UDR name is passed |
| in UDRInvocationInfo, so the logic can depend on the name. |
| <p> |
| A single query may invoke the same UDR more than once. A different |
| UDRInvocationInfo object will be passed for each such invocation. |
| <p> |
| The UDR object or the object of its derived class may be reused for |
| multiple queries, so its life time can exceed that of a UDRInvocation |
| object. |
| <p> |
| Different instances of UDR (or derived class)objects will be created |
| in the processes that compile and execute a query. |
| <p> |
| Based on the previous three bullets, UDR writers should not store state |
| that relates to a UDR invocation in a UDR (or derived) object. There are |
| special classes to do that. It is ok to use the UDR derived class to store |
| resources that are shared between UDR invocations, such as connections to |
| server processes etc. These need to be cleaned up in <a href="../../../../org/trafodion/sql/udr/UDR.html#close()"><code>close()</code></a>. |
| <p> |
| The optimizer may try different execution plans for a UDR invocation, e.g. |
| with different partitioning and ordering of input and/or output data. These |
| alternative plans share the same UDRInvocationInfo object but they will use |
| different UDRPlanInfo objects.</div> |
| </li> |
| </ul> |
| </div> |
| <div class="summary"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ======== NESTED CLASS SUMMARY ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="nested_class_summary"> |
| <!-- --> |
| </a> |
| <h3>Nested Class Summary</h3> |
| <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> |
| <caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colLast" scope="col">Class and Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>static class </code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.QueueStateInfo.html" title="class in org.trafodion.sql.udr">UDR.QueueStateInfo</a></strong></code> </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| <!-- =========== FIELD SUMMARY =========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="field_summary"> |
| <!-- --> |
| </a> |
| <h3>Field Summary</h3> |
| <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> |
| <caption><span>Fields</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colLast" scope="col">Field and Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>int</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#SQLUDR_Q_CANCEL">SQLUDR_Q_CANCEL</a></strong></code> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>int</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#SQLUDR_Q_EOD">SQLUDR_Q_EOD</a></strong></code> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>int</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#SQLUDR_Q_MORE">SQLUDR_Q_MORE</a></strong></code> </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="constructor_summary"> |
| <!-- --> |
| </a> |
| <h3>Constructor Summary</h3> |
| <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> |
| <caption><span>Constructors</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colOne" scope="col">Constructor and Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colOne"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#UDR()">UDR</a></strong>()</code> |
| <div class="block">Default constructor, to be used by derived classes</div> |
| </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| <!-- ========== METHOD SUMMARY =========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="method_summary"> |
| <!-- --> |
| </a> |
| <h3>Method Summary</h3> |
| <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> |
| <caption><span>Methods</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colLast" scope="col">Method and Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#close()">close</a></strong>()</code> |
| <div class="block">Currently not used.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#completeDescription(org.trafodion.sql.udr.UDRInvocationInfo,%20org.trafodion.sql.udr.UDRPlanInfo)">completeDescription</a></strong>(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info, |
| <a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html" title="class in org.trafodion.sql.udr">UDRPlanInfo</a> plan)</code> |
| <div class="block">Final call of the compiler interaction for TMUDFs.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#debugLoop()">debugLoop</a></strong>()</code> |
| <div class="block">Debugging hook for UDRs.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#describeConstraints(org.trafodion.sql.udr.UDRInvocationInfo)">describeConstraints</a></strong>(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info)</code> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#describeDataflowAndPredicates(org.trafodion.sql.udr.UDRInvocationInfo)">describeDataflowAndPredicates</a></strong>(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info)</code> |
| <div class="block">Eliminate unneeded columns and decide where to execute predicates.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#describeDesiredDegreeOfParallelism(org.trafodion.sql.udr.UDRInvocationInfo,%20org.trafodion.sql.udr.UDRPlanInfo)">describeDesiredDegreeOfParallelism</a></strong>(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info, |
| <a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html" title="class in org.trafodion.sql.udr">UDRPlanInfo</a> plan)</code> |
| <div class="block">Describe the desired parallelism of a UDR.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#describeParamsAndColumns(org.trafodion.sql.udr.UDRInvocationInfo)">describeParamsAndColumns</a></strong>(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info)</code> |
| <div class="block">First method called during compilation of a TMUDF invocation.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#describePlanProperties(org.trafodion.sql.udr.UDRInvocationInfo,%20org.trafodion.sql.udr.UDRPlanInfo)">describePlanProperties</a></strong>(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info, |
| <a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html" title="class in org.trafodion.sql.udr">UDRPlanInfo</a> plan)</code> |
| <div class="block">Sixth method of the compiler interface (optional).</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#describeStatistics(org.trafodion.sql.udr.UDRInvocationInfo)">describeStatistics</a></strong>(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info)</code> |
| <div class="block">Fourth method of the compiler interface (optional).</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#emitRow(org.trafodion.sql.udr.UDRInvocationInfo)">emitRow</a></strong>(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info)</code> |
| <div class="block">Emit a row of a table-valued result.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>int</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#getCurrentVersion()">getCurrentVersion</a></strong>()</code> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>int</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#getFeaturesSupportedByUDF()">getFeaturesSupportedByUDF</a></strong>()</code> |
| <div class="block">For versioning, return features supported by the UDR writer.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#getNextRow(org.trafodion.sql.udr.UDRInvocationInfo)">getNextRow</a></strong>(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info)</code> |
| <div class="block">Read a row of the first table-value input.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>abstract void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#processData(org.trafodion.sql.udr.UDRInvocationInfo,%20org.trafodion.sql.udr.UDRPlanInfo)">processData</a></strong>(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info, |
| <a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html" title="class in org.trafodion.sql.udr">UDRPlanInfo</a> plan)</code> |
| <div class="block">Runtime code for UDRs.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><strong><a href="../../../../org/trafodion/sql/udr/UDR.html#traceRow(org.trafodion.sql.udr.UDRInvocationInfo,%20org.trafodion.sql.udr.TupleInfo,%20int,%20java.lang.String)">traceRow</a></strong>(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info, |
| <a href="../../../../org/trafodion/sql/udr/TupleInfo.html" title="class in org.trafodion.sql.udr">TupleInfo</a> ti, |
| int tableIndex, |
| <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> formattedMsg)</code> </td> |
| </tr> |
| </table> |
| <ul class="blockList"> |
| <li class="blockList"><a name="methods_inherited_from_class_java.lang.Object"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/7/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/7/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/7/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/7/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/7/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/7/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/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/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/7/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/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" 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"> |
| <!-- ============ FIELD DETAIL =========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="field_detail"> |
| <!-- --> |
| </a> |
| <h3>Field Detail</h3> |
| <a name="SQLUDR_Q_MORE"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>SQLUDR_Q_MORE</h4> |
| <pre>public final int SQLUDR_Q_MORE</pre> |
| <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.trafodion.sql.udr.UDR.SQLUDR_Q_MORE">Constant Field Values</a></dd></dl> |
| </li> |
| </ul> |
| <a name="SQLUDR_Q_EOD"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>SQLUDR_Q_EOD</h4> |
| <pre>public final int SQLUDR_Q_EOD</pre> |
| <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.trafodion.sql.udr.UDR.SQLUDR_Q_EOD">Constant Field Values</a></dd></dl> |
| </li> |
| </ul> |
| <a name="SQLUDR_Q_CANCEL"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>SQLUDR_Q_CANCEL</h4> |
| <pre>public final int SQLUDR_Q_CANCEL</pre> |
| <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.trafodion.sql.udr.UDR.SQLUDR_Q_CANCEL">Constant Field Values</a></dd></dl> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="constructor_detail"> |
| <!-- --> |
| </a> |
| <h3>Constructor Detail</h3> |
| <a name="UDR()"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>UDR</h4> |
| <pre>public UDR()</pre> |
| <div class="block">Default constructor, to be used by derived classes</div> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <!-- ============ METHOD DETAIL ========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="method_detail"> |
| <!-- --> |
| </a> |
| <h3>Method Detail</h3> |
| <a name="close()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>close</h4> |
| <pre>public void close()</pre> |
| <div class="block">Currently not used. |
| |
| <p>This might be used in the future as a final call, to allow |
| the UDR to deallocate any resources it holds, like connections |
| to other databases. Right now, it is advisable to deallocate |
| any resources that could cause a leak before exiting the |
| processData() method.</div> |
| </li> |
| </ul> |
| <a name="describeParamsAndColumns(org.trafodion.sql.udr.UDRInvocationInfo)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>describeParamsAndColumns</h4> |
| <pre>public void describeParamsAndColumns(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info) |
| throws <a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></pre> |
| <div class="block">First method called during compilation of a TMUDF invocation. |
| <p> |
| Describe the output columns of a TMUDF, based on a description of |
| its parameters (including parameter values that are specified as a |
| constant) and the description of the table-valued input columns. |
| <p> |
| When the compiler calls this, it will have set up the formal and |
| actual parameter descriptions as well as an output column |
| description containing all the output parameters defined in the |
| CREATE FUNCTION DDL (if any). |
| <p> |
| This method should do a general check of things it expects that can be |
| validated at this time such as input table columns. It should then generate |
| a description of the table-valued output columns, if applicable |
| and if the columns provided at DDL time are not sufficient. The |
| "See also" section points to methods to set these values. |
| <p> |
| Columns of the table-valued output can be declard as "pass-thru" |
| columns to make many optimizations simpler. |
| <p> |
| This method must also add or alter the formal parameter list |
| to match the list of actual parameters. |
| <p> |
| The default implementation does nothing. If this method is not used, all |
| parameters and result table columns must be declared in the |
| CREATE TABLE MAPPING FUNCTION DDL.</div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - A description of the UDR invocation.</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></code> - If an exception occured in the UDR</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html#addFormalParameter(org.trafodion.sql.udr.ColumnInfo)"><code>UDRInvocationInfo.addFormalParameter(ColumnInfo)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html#setFuncType(org.trafodion.sql.udr.UDRInvocationInfo.FuncType)"><code>UDRInvocationInfo.setFuncType(FuncType)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html#addPassThruColumns()"><code>UDRInvocationInfo.addPassThruColumns()</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TupleInfo.html#addColumn(org.trafodion.sql.udr.ColumnInfo)"><code>TupleInfo.addColumn(ColumnInfo)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TupleInfo.html#addIntColumn(java.lang.String,%20boolean)"><code>TupleInfo.addIntColumn(String, boolean)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TupleInfo.html#addLongColumn(java.lang.String,%20boolean)"><code>TupleInfo.addLongColumn(String, boolean)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TupleInfo.html#addCharColumn(java.lang.String,%20int,%20boolean,%20org.trafodion.sql.udr.TypeInfo.SQLCharsetCode,%20org.trafodion.sql.udr.TypeInfo.SQLCollationCode)"><code>TupleInfo.addCharColumn(String, int, boolean, TypeInfo.SQLCharsetCode, TypeInfo.SQLCollationCode)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TupleInfo.html#addVarCharColumn(java.lang.String,%20int,%20boolean,%20org.trafodion.sql.udr.TypeInfo.SQLCharsetCode,%20org.trafodion.sql.udr.TypeInfo.SQLCollationCode)"><code>TupleInfo.addVarCharColumn(String, int, boolean, TypeInfo.SQLCharsetCode, TypeInfo.SQLCollationCode)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TupleInfo.html#addColumns(java.util.Vector)"><code>TupleInfo.addColumns(Vector)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TupleInfo.html#addColumnAt(org.trafodion.sql.udr.ColumnInfo,%20int)"><code>TupleInfo.addColumnAt(ColumnInfo, int)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TupleInfo.html#deleteColumn(int)"><code>TupleInfo.deleteColumn(int)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TupleInfo.html#deleteColumn(java.lang.String)"><code>TupleInfo.deleteColumn(String)</code></a></dd></dl> |
| </li> |
| </ul> |
| <a name="describeDataflowAndPredicates(org.trafodion.sql.udr.UDRInvocationInfo)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>describeDataflowAndPredicates</h4> |
| <pre>public void describeDataflowAndPredicates(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info) |
| throws <a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></pre> |
| <div class="block">Eliminate unneeded columns and decide where to execute predicates. |
| <p> |
| This is the second call in the compiler interaction, after |
| describeParamsAndColumns(). When the compiler calls this, it will have |
| marked the UDF result columns with a usage code, indicating any output |
| columns that are not required for this particular query. It will also have |
| created a list of predicates that need to be evaluated. |
| <p> |
| This method can mark any of the columns of the table-valued inputs as not |
| used, based on the result column usage and internal needs of the UDF. It can |
| also decide where to evaluate each predicate, a) on the UDF result, |
| b) inside the UDF and c) in the table-valued inputs. |
| <p> |
| The default implementation does not mark any of the table-valued input |
| columns as unused. Predicate handling in the default implementation |
| depends on the function type: |
| <ul> |
| <li> |
| GENERIC: No predicates are pushed down, because the compiler does not |
| know whether any of the eliminated rows might have altered the |
| output of the UDF. One example is the "sessionize" UDF, where |
| eliminated rows can lead to differences in session ids. |
| </li> |
| <li> |
| MAPPER: All predicates on pass-thru columns are pushed down to table-valued |
| inputs. Since the UDF carries no state between the input rows it |
| sees, eliminating any input rows will not alter results for other |
| rows. |
| </li> |
| <li> |
| REDUCER: Only predicates on the PARTITION BY columns will be pushed to |
| table-valued inputs. These predicates may eliminate entire groups |
| of rows (partitions), and since no state is carried between such |
| groups that is valid. |
| </li> |
| </ul> |
| <p></div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - A description of the UDR invocation.</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></code> - If an exception occured in the UDR</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/trafodion/sql/udr/ColumnInfo.html#getUsage()"><code>ColumnInfo.getUsage()</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html#setFuncType(org.trafodion.sql.udr.UDRInvocationInfo.FuncType)"><code>UDRInvocationInfo.setFuncType(FuncType)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html#setChildColumnUsage(int,%20int,%20org.trafodion.sql.udr.ColumnInfo.ColumnUseCode)"><code>UDRInvocationInfo.setChildColumnUsage(int, int, ColumnInfo.ColumnUseCode)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html#setUnusedPassthruColumns()"><code>UDRInvocationInfo.setUnusedPassthruColumns()</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html#pushPredicatesOnPassthruColumns()"><code>UDRInvocationInfo.pushPredicatesOnPassthruColumns()</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html#setPredicateEvaluationCode(int,%20org.trafodion.sql.udr.PredicateInfo.EvaluationCode)"><code>UDRInvocationInfo.setPredicateEvaluationCode(int, PredicateInfo.EvaluationCode)</code></a></dd></dl> |
| </li> |
| </ul> |
| <a name="describeConstraints(org.trafodion.sql.udr.UDRInvocationInfo)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>describeConstraints</h4> |
| <pre>public void describeConstraints(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info) |
| throws <a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></pre> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - A description of the UDR invocation.</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></code> - If an exception occured in the UDR</dd></dl> |
| </li> |
| </ul> |
| <a name="describeStatistics(org.trafodion.sql.udr.UDRInvocationInfo)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>describeStatistics</h4> |
| <pre>public void describeStatistics(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info) |
| throws <a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></pre> |
| <div class="block">Fourth method of the compiler interface (optional). |
| |
| <p>Set up statistics for the table-valued result. |
| |
| <p>When the optimizer calls this method, it will have synthesized |
| some statistics for the table-valued inputs, if any. The UDR |
| writer can now indicate the estimated row count for the table-valued |
| result and estimated number of unique values for the output columns. |
| |
| <p>The default implementation does nothing. If no estimated cardinality |
| is set for the output table and no estimated number of unique values |
| is set for output columns, the optimizer will make default assumptions. |
| Here are some of these default assumptions: |
| <ul> |
| <li>UDRs of type UDRInvocationInfo.MAPPER return one output row for |
| each row in their largest input table. |
| <li>UDRs of type UDRInvocationInfo.REDUCER and REDUCER_NC return one |
| output row for every partition in their largest partitioned input |
| table. |
| <li>For output columns that are passthru columns, the estimated |
| unique entries are the same as for the underlying column in the |
| table-valued input. |
| <li>Other default cardinality and unique entry counts can be influenced |
| with defaults (CONTROL QUERY DEFAULT) in Trafodion SQL. |
| </ul></div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - A description of the UDR invocation.</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></code></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html#setFuncType(org.trafodion.sql.udr.UDRInvocationInfo.FuncType)"><code>UDRInvocationInfo.setFuncType(org.trafodion.sql.udr.UDRInvocationInfo.FuncType)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/ColumnInfo.html#getEstimatedUniqueEntries()"><code>ColumnInfo.getEstimatedUniqueEntries()</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/ColumnInfo.html#setEstimatedUniqueEntries(long)"><code>ColumnInfo.setEstimatedUniqueEntries(long)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TableInfo.html#getEstimatedNumRows()"><code>TableInfo.getEstimatedNumRows()</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TableInfo.html#setEstimatedNumRows(long)"><code>TableInfo.setEstimatedNumRows(long)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TableInfo.html#getEstimatedNumPartitions()"><code>TableInfo.getEstimatedNumPartitions()</code></a></dd></dl> |
| </li> |
| </ul> |
| <a name="describeDesiredDegreeOfParallelism(org.trafodion.sql.udr.UDRInvocationInfo, org.trafodion.sql.udr.UDRPlanInfo)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>describeDesiredDegreeOfParallelism</h4> |
| <pre>public void describeDesiredDegreeOfParallelism(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info, |
| <a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html" title="class in org.trafodion.sql.udr">UDRPlanInfo</a> plan) |
| throws <a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></pre> |
| <div class="block">Describe the desired parallelism of a UDR. |
| <p> |
| This method can be used to specify a desired degree of |
| parallelism, either in absolute or relative terms. |
| <p> |
| The default behavior is to allow any degree of parallelism for |
| TMUDFs of function type UDRInvocationInfo.MAPPER or |
| UDRInvocationInfo.REDUCER (or REDUCER_NC) that have exactly |
| one table-valued input. The default behavior forces serial |
| execution in all other cases. The reason is that for a single |
| table-valued input, there is a natural way to parallelize the |
| function by parallelizing its input a la MapReduce. In all |
| other cases, parallel execution requires active participation |
| by the UDF, which is why the UDF needs to signal explicitly |
| that it can handle such flavors of parallelism. |
| |
| Default implementation: |
| <pre> |
| if (info.getNumTableInputs() == 1 && |
| (info.getFuncType() == UDRInvocationInfo.FuncType.MAPPER || |
| info.getFuncType() == UDRInvocationInfo.FuncType.REDUCER || |
| info.getFuncType() == UDRInvocationInfo.FuncType.REDUCER_NC)) |
| plan.setDesiredDegreeOfParallelism(UDRPlanInfo.ANY_DEGREE_OF_PARALLELISM); |
| else |
| plan.setDesiredDegreeOfParallelism(1); // serial execution |
| </pre> |
| <p> |
| Note that this is NOT foolproof, and that the TMUDF might still |
| need to validate the PARTITION BY and ORDER BY syntax used in its |
| invocation. |
| <p> Note also that in order to get parallel execution, you may need to |
| implement the <a href="../../../../org/trafodion/sql/udr/UDR.html#describeStatistics(org.trafodion.sql.udr.UDRInvocationInfo)"><code>describeStatistics(org.trafodion.sql.udr.UDRInvocationInfo)</code></a> interface and provide a |
| cardinality estimate. Alternatively, you can set the |
| PARALLEL_NUM_ESPS CQD. |
| <p></div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - A description of the UDR invocation.</dd><dd><code>plan</code> - Plan-related description of the UDR invocation.</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></code> - If an exception occured in the UDR</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html#getDesiredDegreeOfParallelism()"><code>UDRPlanInfo.getDesiredDegreeOfParallelism()</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html#setDesiredDegreeOfParallelism(int)"><code>UDRPlanInfo.setDesiredDegreeOfParallelism(int)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html#getNumParallelInstances()"><code>UDRInvocationInfo.getNumParallelInstances()</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html#setFuncType(org.trafodion.sql.udr.UDRInvocationInfo.FuncType)"><code>UDRInvocationInfo.setFuncType(org.trafodion.sql.udr.UDRInvocationInfo.FuncType)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDR.html#describeStatistics(org.trafodion.sql.udr.UDRInvocationInfo)"><code>describeStatistics(org.trafodion.sql.udr.UDRInvocationInfo)</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/TableInfo.html#setEstimatedNumRows(long)"><code>TableInfo.setEstimatedNumRows(long)</code></a></dd></dl> |
| </li> |
| </ul> |
| <a name="describePlanProperties(org.trafodion.sql.udr.UDRInvocationInfo, org.trafodion.sql.udr.UDRPlanInfo)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>describePlanProperties</h4> |
| <pre>public void describePlanProperties(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info, |
| <a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html" title="class in org.trafodion.sql.udr">UDRPlanInfo</a> plan) |
| throws <a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></pre> |
| <div class="block">Sixth method of the compiler interface (optional). |
| |
| The query optimizer calls this method once for every plan alternative |
| considered for a UDR invocation. It provides the required partitioning |
| and ordering of the result. The UDR writer can decide whether these |
| requirements are acceptable to the UDR and whether any partitioning |
| or ordering of the table-valued inputs is required to produce the required |
| result properties. |
| |
| <p>This interface is currently not used.</div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - A description of the UDR invocation.</dd><dd><code>plan</code> - Plan-related description of the UDR invocation.</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></code></dd></dl> |
| </li> |
| </ul> |
| <a name="completeDescription(org.trafodion.sql.udr.UDRInvocationInfo, org.trafodion.sql.udr.UDRPlanInfo)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>completeDescription</h4> |
| <pre>public void completeDescription(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info, |
| <a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html" title="class in org.trafodion.sql.udr">UDRPlanInfo</a> plan) |
| throws <a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></pre> |
| <div class="block">Final call of the compiler interaction for TMUDFs. |
| <p> |
| This final compile time call gives the UDF writer the opportunity |
| to examine the chosen query plan, to pass information on to the |
| runtime method, using <a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html#addPlanData(byte[])"><code>addPlanData</code></a>, and to |
| clean up any resources related to the compile phase of a particular TMUDF |
| invocation. |
| <p> |
| The default implementation does nothing. |
| <p></div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - A description of the UDR invocation.</dd><dd><code>plan</code> - Plan-related description of the UDR invocation.</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></code> - If an exception occured in the UDR</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html#addPlanData(byte[])"><code>UDRPlanInfo.addPlanData(byte[])</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html#getUDRWriterCompileTimeData()"><code>UDRPlanInfo.getUDRWriterCompileTimeData()</code></a>, |
| <a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html#getUDRWriterCompileTimeData()"><code>UDRInvocationInfo.getUDRWriterCompileTimeData()</code></a></dd></dl> |
| </li> |
| </ul> |
| <a name="processData(org.trafodion.sql.udr.UDRInvocationInfo, org.trafodion.sql.udr.UDRPlanInfo)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>processData</h4> |
| <pre>public abstract void processData(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info, |
| <a href="../../../../org/trafodion/sql/udr/UDRPlanInfo.html" title="class in org.trafodion.sql.udr">UDRPlanInfo</a> plan) |
| throws <a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></pre> |
| <div class="block">Runtime code for UDRs. |
| <p> |
| This method must be implemented in derived class.</div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - A description of the UDR invocation.</dd><dd><code>plan</code> - Plan-related description of the UDR invocation.</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></code> - If an exception occured in the UDR</dd></dl> |
| </li> |
| </ul> |
| <a name="getNextRow(org.trafodion.sql.udr.UDRInvocationInfo)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getNextRow</h4> |
| <pre>public final boolean getNextRow(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info) |
| throws <a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></pre> |
| <div class="block">Read a row of the first table-value input. |
| <p> |
| This method can only be called from within processData().</div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - A description of the UDR invocation.</dd> |
| <dt><span class="strong">Returns:</span></dt><dd>true if another row could be read, false if it reached end of data.</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></code> - If an exception occured in the UDR</dd></dl> |
| </li> |
| </ul> |
| <a name="emitRow(org.trafodion.sql.udr.UDRInvocationInfo)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>emitRow</h4> |
| <pre>public final void emitRow(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info) |
| throws <a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></pre> |
| <div class="block">Emit a row of a table-valued result. |
| <p> |
| This method can only be called from within UDR#processData(UDRInvocationInfo, UDRPlanInfo).</div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - A description of the UDR invocation.</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></code> - If an exception occured in the UDR</dd></dl> |
| </li> |
| </ul> |
| <a name="debugLoop()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>debugLoop</h4> |
| <pre>public final void debugLoop()</pre> |
| <div class="block">Debugging hook for UDRs. |
| |
| This method is called in debug Trafodion builds when certain |
| flags are set in the UDR_DEBUG_FLAGS CQD (CONTROL QUERY DEFAULT). |
| See https://wiki.trafodion.org/wiki/index.php/Tutorial:_The_object-oriented_UDF_interface#Debugging_UDF_code |
| for details. |
| |
| The default implementation prints out the process id and then |
| goes into an endless loop. The UDF writer can then attach a |
| debugger, set breakpoints and force the execution out of the loop. |
| |
| Note that the printout of the pid may not always be displayed on |
| a terminal, for example if the process is executing on a different node.</div> |
| </li> |
| </ul> |
| <a name="traceRow(org.trafodion.sql.udr.UDRInvocationInfo, org.trafodion.sql.udr.TupleInfo, int, java.lang.String)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>traceRow</h4> |
| <pre>public void traceRow(<a href="../../../../org/trafodion/sql/udr/UDRInvocationInfo.html" title="class in org.trafodion.sql.udr">UDRInvocationInfo</a> info, |
| <a href="../../../../org/trafodion/sql/udr/TupleInfo.html" title="class in org.trafodion.sql.udr">TupleInfo</a> ti, |
| int tableIndex, |
| <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> formattedMsg) |
| throws <a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></pre> |
| <dl><dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../org/trafodion/sql/udr/UDRException.html" title="class in org.trafodion.sql.udr">UDRException</a></code></dd></dl> |
| </li> |
| </ul> |
| <a name="getCurrentVersion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getCurrentVersion</h4> |
| <pre>public final int getCurrentVersion()</pre> |
| </li> |
| </ul> |
| <a name="getFeaturesSupportedByUDF()"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>getFeaturesSupportedByUDF</h4> |
| <pre>public int getFeaturesSupportedByUDF()</pre> |
| <div class="block">For versioning, return features supported by the UDR writer. |
| <p> |
| This method can be used in the future to facilitate changes in |
| the UDR interface. UDR writers will be able to indicte through this |
| method whether they support new features. |
| <p> |
| The default implementation returns 0 (no extra features are supported). |
| <p></div> |
| <dl><dt><span class="strong">Returns:</span></dt><dd>A yet to be determined set of bit flags or codes for supported features.</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/UDR.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/trafodion/sql/udr/TypeInfo.SQLTypeSubClassCode.html" title="enum in org.trafodion.sql.udr"><span class="strong">Prev Class</span></a></li> |
| <li><a href="../../../../org/trafodion/sql/udr/UDR.QueueStateInfo.html" title="class in org.trafodion.sql.udr"><span class="strong">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../index.html?org/trafodion/sql/udr/UDR.html" target="_top">Frames</a></li> |
| <li><a href="UDR.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../../../allclasses-noframe.html">All 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: </li> |
| <li><a href="#nested_class_summary">Nested</a> | </li> |
| <li><a href="#field_summary">Field</a> | </li> |
| <li><a href="#constructor_summary">Constr</a> | </li> |
| <li><a href="#method_summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li><a href="#field_detail">Field</a> | </li> |
| <li><a href="#constructor_detail">Constr</a> | </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 © 2020. All rights reserved.</small></p> |
| </body> |
| </html> |