<!-- 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::CardinalityConstraintInfo 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_1CardinalityConstraintInfo.html">CardinalityConstraintInfo</a>
  </div>
</div>
<div class="contents">
<h1>tmudr::CardinalityConstraintInfo Class Reference</h1><!-- doxytag: class="tmudr::CardinalityConstraintInfo" --><!-- doxytag: inherits="tmudr::ConstraintInfo" -->
<p>A cardinality constraint.  
<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::CardinalityConstraintInfo:</div>
<div class="dynsection">
 <div class="center">
  <img src="classtmudr_1_1CardinalityConstraintInfo.gif" usemap="#tmudr::CardinalityConstraintInfo_map" alt=""/>
  <map id="tmudr::CardinalityConstraintInfo_map" name="tmudr::CardinalityConstraintInfo_map">
<area href="classtmudr_1_1ConstraintInfo.html" alt="tmudr::ConstraintInfo" shape="rect" coords="0,0,188,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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1CardinalityConstraintInfo.html#aa25bef11164f258550666409889986aa">CardinalityConstraintInfo</a> (long minNumRows=0, long maxNumRows=-1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtmudr_1_1CardinalityConstraintInfo.html#a56857ab936894a5e38302e1ab52c4373">getMinNumRows</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_1CardinalityConstraintInfo.html#a00601c3f04c4bf11efb94f8d2425af10">getMaxNumRows</a> () const </td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A cardinality constraint. </p>
<p>Upper and/or lower bounds for the cardinality of a table. Note that unlike cardinality estimates, this is a hard constraint that must be followed by the table, otherwise incorrect results and errors may occur. </p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aa25bef11164f258550666409889986aa"></a><!-- doxytag: member="tmudr::CardinalityConstraintInfo::CardinalityConstraintInfo" ref="aa25bef11164f258550666409889986aa" args="(long minNumRows=0, long maxNumRows=&#45;1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CardinalityConstraintInfo::CardinalityConstraintInfo </td>
          <td>(</td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>minNumRows</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>maxNumRows</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>Construct a new cardinality constraint.</p>
<p>A cardinality constraint allows to specify a lower and/or an upper limit for the number of rows in a table.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>minNumRows</em>&nbsp;</td><td>The minimum number of rows in the table, 0 or a positive number. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maxNumRows</em>&nbsp;</td><td>The maximum number of rows in the table, or -1 if there is no upper bound. If it is not -1, maxNumRows must be greater or equal minNumRows. </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/><h2>Member Function Documentation</h2>
<a class="anchor" id="a00601c3f04c4bf11efb94f8d2425af10"></a><!-- doxytag: member="tmudr::CardinalityConstraintInfo::getMaxNumRows" ref="a00601c3f04c4bf11efb94f8d2425af10" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long CardinalityConstraintInfo::getMaxNumRows </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the maximum number of rows in a table.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Maximum number of rows or -1 if there is no upper bound. </dd></dl>

</div>
</div>
<a class="anchor" id="a56857ab936894a5e38302e1ab52c4373"></a><!-- doxytag: member="tmudr::CardinalityConstraintInfo::getMinNumRows" ref="a56857ab936894a5e38302e1ab52c4373" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long CardinalityConstraintInfo::getMinNumRows </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the minimum number of rows in a table.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Minimum number of rows (0 or a positive number). </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>
