<!-- 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: Data Fields</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 class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li class="current"><a href="functions.html"><span>All</span></a></li>
      <li><a href="functions_func.html"><span>Functions</span></a></li>
      <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="functions.html#index_a"><span>a</span></a></li>
      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
      <li class="current"><a href="functions_0x69.html#index_i"><span>i</span></a></li>
      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
      <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
      <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
<li>IN
: <a class="el" href="classtmudr_1_1PredicateInfo.html#ab22c05aab4b2ec61421fc2d9efa9f2b5a93914d26fbbf66d58952c891a94ccf59">tmudr::PredicateInfo</a>
</li>
<li>in()
: <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a8e8246083a145bfcf9771a915df70d2a">tmudr::UDRInvocationInfo</a>
</li>
<li>INT
: <a class="el" href="classtmudr_1_1TypeInfo.html#ab696846dc0cbf6f8636bf5a8bcf6d266a24a7fca3d700f356f83e3059accace84">tmudr::TypeInfo</a>
</li>
<li>INT_UNSIGNED
: <a class="el" href="classtmudr_1_1TypeInfo.html#ab696846dc0cbf6f8636bf5a8bcf6d266ae58915dee0f1849c71bd21e9e6cf8666">tmudr::TypeInfo</a>
</li>
<li>INTERVAL
: <a class="el" href="classtmudr_1_1TypeInfo.html#ab696846dc0cbf6f8636bf5a8bcf6d266a5b8bcc1ecfefa939e06e1b431f5a2564">tmudr::TypeInfo</a>
</li>
<li>INTERVAL_TYPE
: <a class="el" href="classtmudr_1_1TypeInfo.html#a9804443638ca97a8e5dbfeebe0d08ca6a8e593620895104b04699b510b03a3410">tmudr::TypeInfo</a>
</li>
<li>isAComparisonPredicate()
: <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#af56ae6e3b533811727c01ac0dd373b2a">tmudr::UDRInvocationInfo</a>
, <a class="el" href="classtmudr_1_1PredicateInfo.html#aff4280afceebaa23faf6804748d1c719">tmudr::PredicateInfo</a>
</li>
<li>isAvailable()
: <a class="el" href="classtmudr_1_1TupleInfo.html#adae91c6ed0e61babc2fe71fcb53091fa">tmudr::TupleInfo</a>
</li>
<li>isCompileTime()
: <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#a44281bb80ce0ddfc220f830603184bb6">tmudr::UDRInvocationInfo</a>
</li>
<li>isFromInputTable()
: <a class="el" href="classtmudr_1_1ProvenanceInfo.html#ad8d8d8c7b33c849000f0fd33e9d6c797">tmudr::ProvenanceInfo</a>
</li>
<li>IsolationType
: <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ab8f0c182949b86f0eb01e7dd5533496d">tmudr::UDRInvocationInfo</a>
</li>
<li>isRunTime()
: <a class="el" href="classtmudr_1_1UDRInvocationInfo.html#ae6454d983c0e219533fbedce92fdbb7e">tmudr::UDRInvocationInfo</a>
</li>
<li>isStream()
: <a class="el" href="classtmudr_1_1TableInfo.html#af97dc6286cfc8bcd35aad040c701bfa6">tmudr::TableInfo</a>
</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>
