Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-testing > by-pkgid > 91128064e1b251eab84e1c0e3ea0dd7a > files > 127

lib64mysql-devel-5.0.51a-8mdv2008.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>NdbIndexScanOperation Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.5 -->
<div class="contents">
<h1>NdbIndexScanOperation Class Reference</h1><!-- doxytag: class="NdbIndexScanOperation" --><!-- doxytag: inherits="NdbScanOperation" --><code>#include &lt;NdbIndexScanOperation.hpp&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for NdbIndexScanOperation:</div>
<div class="dynsection">

<p><center><img src="classNdbIndexScanOperation.png" usemap="#NdbIndexScanOperation_map" border="0" alt=""></center>
<map name="NdbIndexScanOperation_map">
<area href="classNdbScanOperation.html" alt="NdbScanOperation" shape="rect" coords="0,56,150,80">
<area href="classNdbOperation.html" alt="NdbOperation" shape="rect" coords="0,0,150,24">
</map>
</div>

<p>
<a href="classNdbIndexScanOperation-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Class of scan operations for use to scan ordered index. <h2>Public Types</h2>
<ul>
<li>enum <a class="el" href="classNdbIndexScanOperation.html#bd2e293842d11e99efcc57eaa2ec695c">BoundType</a> { <br>
&nbsp;&nbsp;<a class="el" href="classNdbIndexScanOperation.html#bd2e293842d11e99efcc57eaa2ec695cdaea2544651fb1de0ee453b849a1c176">BoundLE</a> =  0, 
<a class="el" href="classNdbIndexScanOperation.html#bd2e293842d11e99efcc57eaa2ec695cfe7730dfdf43dc4f51c357bf04d2c865">BoundLT</a> =  1, 
<a class="el" href="classNdbIndexScanOperation.html#bd2e293842d11e99efcc57eaa2ec695cd9d0f1b50bbb55cf1e57771da5fd71c8">BoundGE</a> =  2, 
<a class="el" href="classNdbIndexScanOperation.html#bd2e293842d11e99efcc57eaa2ec695cdb7b6f8fb08df7a0c005adb30a687205">BoundGT</a> =  3, 
<br>
&nbsp;&nbsp;<a class="el" href="classNdbIndexScanOperation.html#bd2e293842d11e99efcc57eaa2ec695cbcc9b5999344bf13c65c82e818a0044c">BoundEQ</a> =  4
<br>
 }
</ul>
<h2>Public Member Functions</h2>
<ul>
<li>virtual int <a class="el" href="classNdbIndexScanOperation.html#b1ffa1a66c801adf1a736367e4f896d5">readTuples</a> (<a class="el" href="classNdbOperation.html#bb62acf3797243787ce5814417f45510">LockMode</a> lock_mode=LM_Read, Uint32 scan_flags=0, Uint32 parallel=0, Uint32 batch=0)
<li>int <a class="el" href="classNdbIndexScanOperation.html#d4f76dda883ec09b922c13d76bc85d44">setBound</a> (const char *attr, int type, const void *value, Uint32 len=0)
<li>int <a class="el" href="classNdbIndexScanOperation.html#1a5c7d1986b56d7416837af8b2101770">setBound</a> (Uint32 anAttrId, int type, const void *aValue, Uint32 len=0)
<li>int <a class="el" href="classNdbIndexScanOperation.html#cd2ce1dbd599060ea95ea92392f930bc">reset_bounds</a> (bool forceSend=false)
<li>int <a class="el" href="classNdbIndexScanOperation.html#c76b096559928ef6a15664c598293c73">end_of_bound</a> (Uint32 range_no)
<li>int <a class="el" href="classNdbIndexScanOperation.html#649ff20a6e89f08ada1a18d86283fa5c">get_range_no</a> ()
<li>bool <a class="el" href="classNdbIndexScanOperation.html#a8bc2094ac86464e72579f4412c76edc">getSorted</a> () const 
<li>bool <a class="el" href="classNdbIndexScanOperation.html#10522b0d3db8a471024d3bd4756a4657">getDescending</a> () const 
</ul>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="bd2e293842d11e99efcc57eaa2ec695c"></a><!-- doxytag: member="NdbIndexScanOperation::BoundType" ref="bd2e293842d11e99efcc57eaa2ec695c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classNdbIndexScanOperation.html#bd2e293842d11e99efcc57eaa2ec695c">NdbIndexScanOperation::BoundType</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type of ordered index key bound. The values (0-4) will not change and can be used explicitly (e.g. they could be computed). <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="bd2e293842d11e99efcc57eaa2ec695cdaea2544651fb1de0ee453b849a1c176"></a><!-- doxytag: member="BoundLE" ref="bd2e293842d11e99efcc57eaa2ec695cdaea2544651fb1de0ee453b849a1c176" args="" -->BoundLE</em>&nbsp;</td><td>
lower bound </td></tr>
<tr><td valign="top"><em><a class="anchor" name="bd2e293842d11e99efcc57eaa2ec695cfe7730dfdf43dc4f51c357bf04d2c865"></a><!-- doxytag: member="BoundLT" ref="bd2e293842d11e99efcc57eaa2ec695cfe7730dfdf43dc4f51c357bf04d2c865" args="" -->BoundLT</em>&nbsp;</td><td>
lower bound, strict </td></tr>
<tr><td valign="top"><em><a class="anchor" name="bd2e293842d11e99efcc57eaa2ec695cd9d0f1b50bbb55cf1e57771da5fd71c8"></a><!-- doxytag: member="BoundGE" ref="bd2e293842d11e99efcc57eaa2ec695cd9d0f1b50bbb55cf1e57771da5fd71c8" args="" -->BoundGE</em>&nbsp;</td><td>
upper bound </td></tr>
<tr><td valign="top"><em><a class="anchor" name="bd2e293842d11e99efcc57eaa2ec695cdb7b6f8fb08df7a0c005adb30a687205"></a><!-- doxytag: member="BoundGT" ref="bd2e293842d11e99efcc57eaa2ec695cdb7b6f8fb08df7a0c005adb30a687205" args="" -->BoundGT</em>&nbsp;</td><td>
upper bound, strict </td></tr>
<tr><td valign="top"><em><a class="anchor" name="bd2e293842d11e99efcc57eaa2ec695cbcc9b5999344bf13c65c82e818a0044c"></a><!-- doxytag: member="BoundEQ" ref="bd2e293842d11e99efcc57eaa2ec695cbcc9b5999344bf13c65c82e818a0044c" args="" -->BoundEQ</em>&nbsp;</td><td>
equality </td></tr>
</table>
</dl>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="b1ffa1a66c801adf1a736367e4f896d5"></a><!-- doxytag: member="NdbIndexScanOperation::readTuples" ref="b1ffa1a66c801adf1a736367e4f896d5" args="(LockMode lock_mode=LM_Read, Uint32 scan_flags=0, Uint32 parallel=0, Uint32 batch=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int NdbIndexScanOperation::readTuples           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classNdbOperation.html#bb62acf3797243787ce5814417f45510">LockMode</a>&nbsp;</td>
          <td class="paramname"> <em>lock_mode</em> = <code>LM_Read</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Uint32&nbsp;</td>
          <td class="paramname"> <em>scan_flags</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Uint32&nbsp;</td>
          <td class="paramname"> <em>parallel</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Uint32&nbsp;</td>
          <td class="paramname"> <em>batch</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
readTuples using ordered index<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>lock_mode</em>&nbsp;</td><td>Lock mode </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>scan_flags</em>&nbsp;</td><td>see <a class="el" href="classNdbScanOperation.html#348ff361be8f0241b08acc0e7b72d4e4">ScanFlag</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parallel</em>&nbsp;</td><td>No of fragments to scan in parallel (0=max) </td></tr>
  </table>
</dl>

<p>Reimplemented from <a class="el" href="classNdbScanOperation.html#c8b2adf1a1e07663dc99b93dbab93dfd">NdbScanOperation</a>.</p>

</div>
</div><p>
<a class="anchor" name="d4f76dda883ec09b922c13d76bc85d44"></a><!-- doxytag: member="NdbIndexScanOperation::setBound" ref="d4f76dda883ec09b922c13d76bc85d44" args="(const char *attr, int type, const void *value, Uint32 len=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NdbIndexScanOperation::setBound           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Uint32&nbsp;</td>
          <td class="paramname"> <em>len</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Define bound on index key in range scan.<p>
Each index key can have lower and/or upper bound. Setting the key equal to a value defines both upper and lower bounds. The bounds can be defined in any order. Conflicting definitions is an error.<p>
For equality, it is better to use BoundEQ instead of the equivalent pair of BoundLE and BoundGE. This is especially true when table partition key is an initial part of the index key.<p>
The sets of lower and upper bounds must be on initial sequences of index keys. All but possibly the last bound must be non-strict. So "a &gt;= 2 and b &gt; 3" is ok but "a &gt; 2 and b &gt;= 3" is not.<p>
The scan may currently return tuples for which the bounds are not satisfied. For example, "a &lt;= 2 and b &lt;= 3" scans the index up to (a=2, b=3) but also returns any (a=1, b=4).<p>
NULL is treated like a normal value which is less than any not-NULL value and equal to another NULL value. To compare against NULL use setBound with null pointer (0).<p>
An index stores also all-NULL keys. Doing index scan with empty bound set returns all table tuples.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>attr</em>&nbsp;</td><td>Attribute name, alternatively: </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>Type of bound </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Pointer to bound value, 0 for NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>Value length in bytes. Fixed per datatype and can be omitted </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successful otherwise -1 </dd></dl>

</div>
</div><p>
<a class="anchor" name="1a5c7d1986b56d7416837af8b2101770"></a><!-- doxytag: member="NdbIndexScanOperation::setBound" ref="1a5c7d1986b56d7416837af8b2101770" args="(Uint32 anAttrId, int type, const void *aValue, Uint32 len=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NdbIndexScanOperation::setBound           </td>
          <td>(</td>
          <td class="paramtype">Uint32&nbsp;</td>
          <td class="paramname"> <em>anAttrId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>aValue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Uint32&nbsp;</td>
          <td class="paramname"> <em>len</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Define bound on index key in range scan using index column id. See the other <a class="el" href="classNdbIndexScanOperation.html#d4f76dda883ec09b922c13d76bc85d44">setBound()</a> method for details. 
</div>
</div><p>
<a class="anchor" name="cd2ce1dbd599060ea95ea92392f930bc"></a><!-- doxytag: member="NdbIndexScanOperation::reset_bounds" ref="cd2ce1dbd599060ea95ea92392f930bc" args="(bool forceSend=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NdbIndexScanOperation::reset_bounds           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>forceSend</em> = <code>false</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Reset bounds and put operation in list that will be sent on next execute 
</div>
</div><p>
<a class="anchor" name="c76b096559928ef6a15664c598293c73"></a><!-- doxytag: member="NdbIndexScanOperation::end_of_bound" ref="c76b096559928ef6a15664c598293c73" args="(Uint32 range_no)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NdbIndexScanOperation::end_of_bound           </td>
          <td>(</td>
          <td class="paramtype">Uint32&nbsp;</td>
          <td class="paramname"> <em>range_no</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Marks end of a bound, used when batching index reads (multiple ranges) 
</div>
</div><p>
<a class="anchor" name="649ff20a6e89f08ada1a18d86283fa5c"></a><!-- doxytag: member="NdbIndexScanOperation::get_range_no" ref="649ff20a6e89f08ada1a18d86283fa5c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NdbIndexScanOperation::get_range_no           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return range no for current row 
</div>
</div><p>
<a class="anchor" name="a8bc2094ac86464e72579f4412c76edc"></a><!-- doxytag: member="NdbIndexScanOperation::getSorted" ref="a8bc2094ac86464e72579f4412c76edc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool NdbIndexScanOperation::getSorted           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Is current scan sorted 
</div>
</div><p>
<a class="anchor" name="10522b0d3db8a471024d3bd4756a4657"></a><!-- doxytag: member="NdbIndexScanOperation::getDescending" ref="10522b0d3db8a471024d3bd4756a4657" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool NdbIndexScanOperation::getDescending           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Is current scan sorted descending 
</div>
</div><p>
</div>
<hr>
<address>
<small>
<center>
Documentation generated Sun Apr 20 06:25:31 2008 from mysql source files.<br>
&copy; 2003-2004 
<a href="http://www.mysql.com">MySQL AB</a>
<br>
</center>
</small></address>
</body>
</html>