<!-- 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::TableInfo 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_1TableInfo.html">TableInfo</a>
  </div>
</div>
<div class="contents">
<h1>tmudr::TableInfo Class Reference</h1><!-- doxytag: class="tmudr::TableInfo" --><!-- doxytag: inherits="tmudr::TupleInfo" -->
<p>Describes a table-valued input or a table-valued output.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="sqludr_8h_source.html">sqludr.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tmudr::TableInfo:</div>
<div class="dynsection">
 <div class="center">
  <img src="classtmudr_1_1TableInfo.gif" usemap="#tmudr::TableInfo_map" alt=""/>
  <map id="tmudr::TableInfo_map" name="tmudr::TableInfo_map">
<area href="classtmudr_1_1TupleInfo.html" alt="tmudr::TupleInfo" shape="rect" coords="0,0,101,24"/>
</map>
 </div>
</div>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1TableInfo.html#a9e63ae35e6b9c81665b135cc72cad148">getEstimatedNumRows</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1TableInfo.html#a556051776b5923cfea52d31fbad0488d">getEstimatedNumPartitions</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classtmudr_1_1PartitionInfo.html">PartitionInfo</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1TableInfo.html#a038b9d3edbcedeca862387e8b2016834">getQueryPartitioning</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classtmudr_1_1OrderInfo.html">OrderInfo</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1TableInfo.html#a32fdcae378a69382c5f6eb9d8cfebc11">getQueryOrdering</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_1TableInfo.html#af97dc6286cfc8bcd35aad040c701bfa6">isStream</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_1TableInfo.html#a5b6c9eef3fad9673888dd34103052bd9">getNumConstraints</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classtmudr_1_1ConstraintInfo.html">ConstraintInfo</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1TableInfo.html#a145117852f07eade23dc0a9eaaf22847">getConstraint</a> (int i) 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_1TableInfo.html#ac86e1dbb500b697715cab5bf6369c87a">setEstimatedNumRows</a> (long rows)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1TableInfo.html#a7076d7e7f07e59a06d698c77c2bfa1d7">addCardinalityConstraint</a> (const <a class="el" href="classtmudr_1_1CardinalityConstraintInfo.html">CardinalityConstraintInfo</a> &amp;constraint)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1TableInfo.html#aa87fcee592d9fb0cf1afbac9aa703e72">addUniquenessConstraint</a> (const <a class="el" href="classtmudr_1_1UniqueConstraintInfo.html">UniqueConstraintInfo</a> &amp;constraint)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1TableInfo.html#ab501279c19b806fc7ee6e6a22d825fc4">setIsStream</a> (bool stream)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1TableInfo.html#a9d48ebe9458e65672fee592c1e73be5f">print</a> ()</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Describes a table-valued input or a table-valued output. </p>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a7076d7e7f07e59a06d698c77c2bfa1d7"></a><!-- doxytag: member="tmudr::TableInfo::addCardinalityConstraint" ref="a7076d7e7f07e59a06d698c77c2bfa1d7" args="(const CardinalityConstraintInfo &amp;constraint)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TableInfo::addCardinalityConstraint </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classtmudr_1_1CardinalityConstraintInfo.html">CardinalityConstraintInfo</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>constraint</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Add a cardinality constraint to the UDF table-valued output.</p>
<p>Only use this method from within the following methods: </p>
<ul>
<li><a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a> </li>
<li><a class="el" href="classtmudr_1_1UDR.html#abbfc60e9c860f3c02dc4262ffc1c9939">UDR::describeDataflowAndPredicates()</a> </li>
<li><a class="el" href="classtmudr_1_1UDR.html#a83262ec6806c3811bf55b1704fea599d">UDR::describeConstraints()</a></li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>constraint</em>&nbsp;</td><td>New constraint to add. The object needs to be deallocated by the caller after this call returns. </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="aa87fcee592d9fb0cf1afbac9aa703e72"></a><!-- doxytag: member="tmudr::TableInfo::addUniquenessConstraint" ref="aa87fcee592d9fb0cf1afbac9aa703e72" args="(const UniqueConstraintInfo &amp;constraint)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TableInfo::addUniquenessConstraint </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classtmudr_1_1UniqueConstraintInfo.html">UniqueConstraintInfo</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>constraint</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Add a uniqueness constraint to the UDF table-valued output.</p>
<p>Only use this method from within the following methods: </p>
<ul>
<li><a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a> </li>
<li><a class="el" href="classtmudr_1_1UDR.html#abbfc60e9c860f3c02dc4262ffc1c9939">UDR::describeDataflowAndPredicates()</a> </li>
<li><a class="el" href="classtmudr_1_1UDR.html#a83262ec6806c3811bf55b1704fea599d">UDR::describeConstraints()</a></li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>constraint</em>&nbsp;</td><td>New uniqueness constraint to add. The object needs to be deallocated by the caller after this call returns. </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="a145117852f07eade23dc0a9eaaf22847"></a><!-- doxytag: member="tmudr::TableInfo::getConstraint" ref="a145117852f07eade23dc0a9eaaf22847" args="(int i) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classtmudr_1_1ConstraintInfo.html">ConstraintInfo</a> &amp; TableInfo::getConstraint </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 constraint by index/ordinal number.</p>
<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>index/ordinal (0-based) of the constraint. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Constraint for a given index/ordinal. </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="a556051776b5923cfea52d31fbad0488d"></a><!-- doxytag: member="tmudr::TableInfo::getEstimatedNumPartitions" ref="a556051776b5923cfea52d31fbad0488d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long TableInfo::getEstimatedNumPartitions </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>For tables with a PARTITION BY, get estimated number of partitions.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1TableInfo.html#a9e63ae35e6b9c81665b135cc72cad148">getEstimatedNumRows()</a> </dd>
<dd>
<a class="el" href="classtmudr_1_1TableInfo.html#ac86e1dbb500b697715cab5bf6369c87a">setEstimatedNumRows()</a></dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Estimated number of partitions or -1 if there is no estimate or no PARTITION BY. </dd></dl>

</div>
</div>
<a class="anchor" id="a9e63ae35e6b9c81665b135cc72cad148"></a><!-- doxytag: member="tmudr::TableInfo::getEstimatedNumRows" ref="a9e63ae35e6b9c81665b135cc72cad148" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long TableInfo::getEstimatedNumRows </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the estimated number of rows of this table.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classtmudr_1_1TableInfo.html#ac86e1dbb500b697715cab5bf6369c87a">setEstimatedNumRows()</a> </dd>
<dd>
<a class="el" href="classtmudr_1_1TableInfo.html#a556051776b5923cfea52d31fbad0488d">getEstimatedNumPartitions()</a></dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Estimated number of rows or -1 if there is no estimate. </dd></dl>

</div>
</div>
<a class="anchor" id="a5b6c9eef3fad9673888dd34103052bd9"></a><!-- doxytag: member="tmudr::TableInfo::getNumConstraints" ref="a5b6c9eef3fad9673888dd34103052bd9" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TableInfo::getNumConstraints </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 constraints defined on this table.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of constraints defined on this table. </dd></dl>

</div>
</div>
<a class="anchor" id="a32fdcae378a69382c5f6eb9d8cfebc11"></a><!-- doxytag: member="tmudr::TableInfo::getQueryOrdering" ref="a32fdcae378a69382c5f6eb9d8cfebc11" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classtmudr_1_1OrderInfo.html">OrderInfo</a> &amp; TableInfo::getQueryOrdering </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the ORDER BY clause for this input table.</p>
<p>This returns either the ORDER BY clause specified in the SQL query, or the updated ordering information, set by <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a9cf945532b68164df02ed59e56993dec">UDRInvocationInfo::setChildOrdering()</a>, called during <a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a>.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Ordering clause for this input table. </dd></dl>

</div>
</div>
<a class="anchor" id="a038b9d3edbcedeca862387e8b2016834"></a><!-- doxytag: member="tmudr::TableInfo::getQueryPartitioning" ref="a038b9d3edbcedeca862387e8b2016834" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classtmudr_1_1PartitionInfo.html">PartitionInfo</a> &amp; TableInfo::getQueryPartitioning </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the PARTITION BY clause for this input table.</p>
<p>This returns either the PARTITION BY clause specified in the SQL query, or the updated partitioning information, set by <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ac2e13c982996e5e32f67cd157efce2fd">UDRInvocationInfo::setChildPartitioning()</a>, called during <a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a>.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Partitioning clause for this input table. </dd></dl>

</div>
</div>
<a class="anchor" id="af97dc6286cfc8bcd35aad040c701bfa6"></a><!-- doxytag: member="tmudr::TableInfo::isStream" ref="af97dc6286cfc8bcd35aad040c701bfa6" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TableInfo::isStream </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns whether the UDF result is treated as a continuous stream.</p>
<p>Note: This is currently not supported. The method always returns false for now.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the UDF result is a stream, false otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="a9d48ebe9458e65672fee592c1e73be5f"></a><!-- doxytag: member="tmudr::TableInfo::print" ref="a9d48ebe9458e65672fee592c1e73be5f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TableInfo::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>

<p>Reimplemented from <a class="el" href="classtmudr_1_1TupleInfo.html#aa5309f0edb4901f0e07f0e8010ca63d6">tmudr::TupleInfo</a>.</p>

</div>
</div>
<a class="anchor" id="ac86e1dbb500b697715cab5bf6369c87a"></a><!-- doxytag: member="tmudr::TableInfo::setEstimatedNumRows" ref="ac86e1dbb500b697715cab5bf6369c87a" args="(long rows)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TableInfo::setEstimatedNumRows </td>
          <td>(</td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>rows</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the estimated number of rows for a UDF table-valued result.</p>
<p>Setting this value can help the Trafodion optimizer generate a better plan for queries containing table-valued UDFs. Note that this is only an estimate, a strict correspondence to the actual number of rows returned at runtime is not required.</p>
<p>Only use this method from within the following methods: </p>
<ul>
<li><a class="el" href="classtmudr_1_1UDR.html#a795387c54b27b667ae73b668f606595c">UDR::describeParamsAndColumns()</a> </li>
<li><a class="el" href="classtmudr_1_1UDR.html#abbfc60e9c860f3c02dc4262ffc1c9939">UDR::describeDataflowAndPredicates()</a> </li>
<li><a class="el" href="classtmudr_1_1UDR.html#a83262ec6806c3811bf55b1704fea599d">UDR::describeConstraints()</a> </li>
<li><a class="el" href="classtmudr_1_1UDR.html#a371a0c6d1dce6857f10b171099d67fdf">UDR::describeStatistics()</a></li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>rows</em>&nbsp;</td><td>Estimated number of rows for this table. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab501279c19b806fc7ee6e6a22d825fc4"></a><!-- doxytag: member="tmudr::TableInfo::setIsStream" ref="ab501279c19b806fc7ee6e6a22d825fc4" args="(bool stream)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TableInfo::setIsStream </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>stream</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set whether a table should be treated as a stream.</p>
<p>This method is not yet supported.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stream</em>&nbsp;</td><td>true if the table is a stream, false otherwise. </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>
<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="SelectionMark">&nbsp;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr size="1"/><address style="text-align: right;"><small>Generated on 3 Mar 2017 for tmudr by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>
