Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-release > by-pkgid > 0bd96f9f4c9747e72719d0f70d644baf > files > 137

lib64mysql-devel-5.0.51a-7mdv2008.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>NdbScanOperation 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>NdbScanOperation Class Reference</h1><!-- doxytag: class="NdbScanOperation" --><!-- doxytag: inherits="NdbOperation" --><code>#include &lt;NdbScanOperation.hpp&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for NdbScanOperation:</div>
<div class="dynsection">

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

<p>
<a href="classNdbScanOperation-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Class of scan operations for use in transactions. <h2>Public Types</h2>
<ul>
<li>enum <a class="el" href="classNdbScanOperation.html#348ff361be8f0241b08acc0e7b72d4e4">ScanFlag</a> { <br>
&nbsp;&nbsp;<b>SF_TupScan</b> =  (1 &lt;&lt; 16), 
<b>SF_OrderBy</b> =  (1 &lt;&lt; 24), 
<b>SF_Descending</b> =  (2 &lt;&lt; 24), 
<b>SF_ReadRangeNo</b> =  (4 &lt;&lt; 24), 
<br>
&nbsp;&nbsp;<b>SF_MultiRange</b> =  (8 &lt;&lt; 24), 
<b>SF_KeyInfo</b> =  1
<br>
 }
</ul>
<h2>Public Member Functions</h2>
<ul>
<li>virtual int <a class="el" href="classNdbScanOperation.html#c8b2adf1a1e07663dc99b93dbab93dfd">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="classNdbScanOperation.html#1507839f1b36a707314f16b52c94b20b">nextResult</a> (bool fetchAllowed=true, bool forceSend=false)
<li>void <a class="el" href="classNdbScanOperation.html#c3937ae0bd47514c7d1eba286e55a41f">close</a> (bool forceSend=false, bool releaseOp=false)
<li><a class="el" href="classNdbOperation.html">NdbOperation</a> * <a class="el" href="classNdbScanOperation.html#2cf58f73b4138aa2c9287d4721fb8adb">lockCurrentTuple</a> ()
<li><a class="el" href="classNdbOperation.html">NdbOperation</a> * <a class="el" href="classNdbScanOperation.html#89d14c51cef0844261b9b939b6262b9c">lockCurrentTuple</a> (<a class="el" href="classNdbTransaction.html">NdbTransaction</a> *lockTrans)
<li><a class="el" href="classNdbOperation.html">NdbOperation</a> * <a class="el" href="classNdbScanOperation.html#c4fae6a089d87d69385ff859517ba190">updateCurrentTuple</a> ()
<li><a class="el" href="classNdbOperation.html">NdbOperation</a> * <a class="el" href="classNdbScanOperation.html#f5fc99f6b12b983557c97119b2a486a0">updateCurrentTuple</a> (<a class="el" href="classNdbTransaction.html">NdbTransaction</a> *updateTrans)
<li>int <a class="el" href="classNdbScanOperation.html#6d76ccfea4566d6cb4a7ecbd2858df58">deleteCurrentTuple</a> ()
<li>int <a class="el" href="classNdbScanOperation.html#dfad9116a549ab3013450be3b54bc618">deleteCurrentTuple</a> (<a class="el" href="classNdbTransaction.html">NdbTransaction</a> *takeOverTransaction)
<li>int <a class="el" href="classNdbScanOperation.html#f27ad5d770f09d7421d6572174244832">restart</a> (bool forceSend=false)
</ul>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="348ff361be8f0241b08acc0e7b72d4e4"></a><!-- doxytag: member="NdbScanOperation::ScanFlag" ref="348ff361be8f0241b08acc0e7b72d4e4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classNdbScanOperation.html#348ff361be8f0241b08acc0e7b72d4e4">NdbScanOperation::ScanFlag</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Scan flags. OR-ed together and passed as second argument to readTuples. Note that SF_MultiRange has to be set if several ranges (bounds) are to be passed. 
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="c8b2adf1a1e07663dc99b93dbab93dfd"></a><!-- doxytag: member="NdbScanOperation::readTuples" ref="c8b2adf1a1e07663dc99b93dbab93dfd" 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 NdbScanOperation::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<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 in <a class="el" href="classNdbIndexScanOperation.html#b1ffa1a66c801adf1a736367e4f896d5">NdbIndexScanOperation</a>.</p>

</div>
</div><p>
<a class="anchor" name="1507839f1b36a707314f16b52c94b20b"></a><!-- doxytag: member="NdbScanOperation::nextResult" ref="1507839f1b36a707314f16b52c94b20b" args="(bool fetchAllowed=true, bool forceSend=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NdbScanOperation::nextResult           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>fetchAllowed</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>forceSend</em> = <code>false</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>
Get the next tuple in a scan transaction.<p>
After each call to nextResult the buffers and <a class="el" href="classNdbRecAttr.html" title="Contains value of an attribute.">NdbRecAttr</a> objects defined in <a class="el" href="classNdbOperation.html#644b56e6e5dbe4d4cc414a7c1ec13cc4">NdbOperation::getValue</a> are updated with values from the scanned tuple.<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>fetchAllowed</em>&nbsp;</td><td>If set to false, then fetching is disabled </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>forceSend</em>&nbsp;</td><td>If true send will occur immediately (see <a class="el" href="secAdapt.html">Adaptive Send Algorithm</a>)</td></tr>
  </table>
</dl>
The NDB API will contact the NDB Kernel for more tuples when necessary to do so unless you set the fetchAllowed to false. This will force NDB to process any records it already has in it's caches. When there are no more cached records it will return 2. You must then call nextResult with fetchAllowed = true in order to contact NDB for more records.<p>
fetchAllowed = false is useful when you want to update or delete all the records fetched in one transaction(This will save a lot of round trip time and make updates or deletes of scanned records a lot faster). While nextResult(false) returns 0 take over the record to another transaction. When nextResult(false) returns 2 you must execute and commit the other transaction. This will cause the locks to be transferred to the other transaction, updates or deletes will be made and then the locks will be released. After that, call nextResult(true) which will fetch new records and cache them in the NdbApi.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>If you don't take over the records to another transaction the locks on those records will be released the next time NDB Kernel is contacted for more records.<p>
Please contact for examples of efficient scan updates and deletes.<p>
See ndb/examples/ndbapi_scan_example for usage.</dd></dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><ul>
<li>-1: if unsuccessful,<br>
</li><li>0: if another tuple was received, and<br>
</li><li>1: if there are no more tuples to scan.</li><li>2: if there are no more cached records in NdbApi </li></ul>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="c3937ae0bd47514c7d1eba286e55a41f"></a><!-- doxytag: member="NdbScanOperation::close" ref="c3937ae0bd47514c7d1eba286e55a41f" args="(bool forceSend=false, bool releaseOp=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NdbScanOperation::close           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>forceSend</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>releaseOp</em> = <code>false</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>
Close scan 
</div>
</div><p>
<a class="anchor" name="2cf58f73b4138aa2c9287d4721fb8adb"></a><!-- doxytag: member="NdbScanOperation::lockCurrentTuple" ref="2cf58f73b4138aa2c9287d4721fb8adb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classNdbOperation.html">NdbOperation</a> * NdbScanOperation::lockCurrentTuple           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Lock current tuple<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>an <a class="el" href="classNdbOperation.html" title="Class of operations for use in transactions.">NdbOperation</a> or NULL. </dd></dl>

</div>
</div><p>
<a class="anchor" name="89d14c51cef0844261b9b939b6262b9c"></a><!-- doxytag: member="NdbScanOperation::lockCurrentTuple" ref="89d14c51cef0844261b9b939b6262b9c" args="(NdbTransaction *lockTrans)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classNdbOperation.html">NdbOperation</a> * NdbScanOperation::lockCurrentTuple           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classNdbTransaction.html">NdbTransaction</a> *&nbsp;</td>
          <td class="paramname"> <em>lockTrans</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Lock current tuple<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>lockTrans</em>&nbsp;</td><td>Transaction that should perform the lock</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>an <a class="el" href="classNdbOperation.html" title="Class of operations for use in transactions.">NdbOperation</a> or NULL. </dd></dl>

</div>
</div><p>
<a class="anchor" name="c4fae6a089d87d69385ff859517ba190"></a><!-- doxytag: member="NdbScanOperation::updateCurrentTuple" ref="c4fae6a089d87d69385ff859517ba190" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classNdbOperation.html">NdbOperation</a> * NdbScanOperation::updateCurrentTuple           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Update current tuple<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>an <a class="el" href="classNdbOperation.html" title="Class of operations for use in transactions.">NdbOperation</a> or NULL. </dd></dl>

</div>
</div><p>
<a class="anchor" name="f5fc99f6b12b983557c97119b2a486a0"></a><!-- doxytag: member="NdbScanOperation::updateCurrentTuple" ref="f5fc99f6b12b983557c97119b2a486a0" args="(NdbTransaction *updateTrans)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classNdbOperation.html">NdbOperation</a> * NdbScanOperation::updateCurrentTuple           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classNdbTransaction.html">NdbTransaction</a> *&nbsp;</td>
          <td class="paramname"> <em>updateTrans</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Update current tuple<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>updateTrans</em>&nbsp;</td><td>Transaction that should perform the update</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>an <a class="el" href="classNdbOperation.html" title="Class of operations for use in transactions.">NdbOperation</a> or NULL. </dd></dl>

</div>
</div><p>
<a class="anchor" name="6d76ccfea4566d6cb4a7ecbd2858df58"></a><!-- doxytag: member="NdbScanOperation::deleteCurrentTuple" ref="6d76ccfea4566d6cb4a7ecbd2858df58" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NdbScanOperation::deleteCurrentTuple           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete current tuple <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure </dd></dl>

</div>
</div><p>
<a class="anchor" name="dfad9116a549ab3013450be3b54bc618"></a><!-- doxytag: member="NdbScanOperation::deleteCurrentTuple" ref="dfad9116a549ab3013450be3b54bc618" args="(NdbTransaction *takeOverTransaction)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NdbScanOperation::deleteCurrentTuple           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classNdbTransaction.html">NdbTransaction</a> *&nbsp;</td>
          <td class="paramname"> <em>takeOverTransaction</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete current tuple<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>takeOverTransaction</em>&nbsp;</td><td>Transaction that should perform the delete</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure </dd></dl>

</div>
</div><p>
<a class="anchor" name="f27ad5d770f09d7421d6572174244832"></a><!-- doxytag: member="NdbScanOperation::restart" ref="f27ad5d770f09d7421d6572174244832" args="(bool forceSend=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NdbScanOperation::restart           </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>
Restart scan with exactly the same getValues and search conditions 
</div>
</div><p>
</div>
<hr>
<address>
<small>
<center>
Documentation generated Tue Apr  1 13:45:44 2008 from mysql source files.<br>
&copy; 2003-2004 
<a href="http://www.mysql.com">MySQL AB</a>
<br>
</center>
</small></address>
</body>
</html>