If your question is how to avoid joining empty cursors, just create an empty list and append your non-zero-count cursors to it; if you end up with at least one cursor in your list, you can run your join (joining one cursor should not cause errors, but you can either do that or just use the single cursor, whichever you prefer).&nbsp; If you end up with an empty list, then you know you have no cursors which return values, and should not attempt to either join or get from your cursors.&nbsp; pget will not be an option once you have joined, as joined cursors only support get and close.<br>
<br><div class="gmail_quote">On Mon, Oct 20, 2008 at 11:41 PM, Sury Soni <span dir="ltr">&lt;<a href="mailto:ssoni@nextdigital.com">ssoni@nextdigital.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">







<div>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000080" face="Arial" size="2">Since, I am using indexes (secondary databases), I need to make sure, if there are records in each (secondary database) cursor. So as per your suggestion, I started with using count(), later changed to get_current_size().</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"></span></p>

<p dir="ltr"><span lang="en-au"><font color="#000080" face="Arial" size="2">Following the function, I am using to find join()'ed cursor of all secondary database, based on filter queries for each secondary database.</font></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">def</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"></font></span><span lang="en-au"><b></b></span><span lang="en-au"><b> <font color="#000000" face="Courier New" size="2">search</font></b></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">(</font></span><span lang="en-au"><i></i></span><span lang="en-au"><i><font color="#000000" face="Courier New" size="2">self</font></i></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">, pattern):</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; queries = splitKey(pattern)</font></span><span lang="en-au"></span><span lang="en-au"></span></p>

<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">print</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"></font></span><span lang="en-au"><i></i></span><span lang="en-au"><i> <font color="#00aa00" face="Courier New" size="2">&quot;Queries: &quot;</font></i></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">, queries</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">print</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"></font></span><span lang="en-au"><i></i></span><span lang="en-au"><i> <font color="#00aa00" face="Courier New" size="2">&quot;Secondary database count: &quot;</font></i></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">, len(</font></span><span lang="en-au"><i></i></span><span lang="en-au"><i><font color="#000000" face="Courier New" size="2">self</font></i></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">.dbs)</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">try</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">if</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> len(</font></span><span lang="en-au"><i></i></span><span lang="en-au"><i><font color="#000000" face="Courier New" size="2">self</font></i></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">.dbs)&gt;</font></span><span lang="en-au"></span><span lang="en-au"><font color="#800000" face="Courier New" size="2">0</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; curs = []</font></span><span lang="en-au"></span><span lang="en-au"></span></p>

<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i=</font></span><span lang="en-au"></span><span lang="en-au"><font color="#800000" face="Courier New" size="2">0</font></span></p>


<p dir="ltr"><span lang="en-au"><font color="#800000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # Iterate over all the secondary index databases to get individual</font></span></p>

<p dir="ltr"><span lang="en-au"><font color="#800000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # cursors and join to get final filter from primary database.</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # self.dbs is array of all secondary database handles</font></b></span></p>

<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">for</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> dbsi</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">in</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"></font></span><span lang="en-au"><i></i></span><span lang="en-au"><i> <font color="#000000" face="Courier New" size="2">self</font></i></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">.dbs:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">try</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">if</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> i&gt;(len(queries)-</font></span><span lang="en-au"></span><span lang="en-au"><font color="#800000" face="Courier New" size="2">1</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">):</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">break</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cur = dbsi.cursor()</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">if</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> queries[i].find(</font></span><span lang="en-au"><i></i></span><span lang="en-au"><i><font color="#00aa00" face="Courier New" size="2">&quot;x&quot;</font></i></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">)&lt;</font></span><span lang="en-au"></span><span lang="en-au"><font color="#800000" face="Courier New" size="2">0</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>
<div class="Ih2E3d">

<p dir="ltr"><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cur.pget(key=queries[i], flags=DB_SET_RANGE)</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b></b></span></p>


</div><p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">try</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b> <font color="#0000ff" face="Courier New" size="2">if</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#000000" face="Courier New" size="2"> cur.get_current_size()&gt;</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#800000" face="Courier New" size="2">0</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#000000" face="Courier New" size="2">: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;## previously ##&nbsp; if cur.count()&gt;0:</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b></b></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; curs.append(cur)</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">else</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cur.close()</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"><font color="#0000ff" face="Courier New" size="2">except</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> Exception, e:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">print</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"></font></span><span lang="en-au"><i></i></span><span lang="en-au"><i> <font color="#00aa00" face="Courier New" size="2">&quot;Exception in get current size: &quot;</font></i></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">, e</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; traceback.print_exc(file=sys.stdout)</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cur.close()</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i+=</font></span><span lang="en-au"></span><span lang="en-au"><font color="#800000" face="Courier New" size="2">1</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">except</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> Exception, e:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">print</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"></font></span><span lang="en-au"><i></i></span><span lang="en-au"><i> <font color="#00aa00" face="Courier New" size="2">&quot;Exception in search, case 0: &quot;</font></i></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">, e</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; traceback.print_exc(file=sys.stdout)</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">raise</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> NextDigital.DBEOFException()</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"><b></b></span><span lang="en-au"><b><font face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # checking, if enough secondary database handle available to be joined!</font></b></span></p>

<p dir="ltr"><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b> <font color="#0000ff" face="Courier New" size="2">if</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#000000" face="Courier New" size="2"> len(curs)&lt;=</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#800000" face="Courier New" size="2">0</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#000000" face="Courier New" size="2">:</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b></b></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">raise</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> NextDigital.DBEOFException()</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">try</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">:</font></span></p>


<p dir="ltr"><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # this is where, I am creating my joined cursor, on which I only invoke, get(0) operation.</font></span></p>

<p dir="ltr"><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # self.db is primary database handle</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b></b></span></p>


<p dir="ltr"><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; joinedCursor =</font></b></span><span lang="en-au"><b><i></i></b></span><span lang="en-au"><b><i> <font color="#000000" face="Courier New" size="2">self</font></i></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b><font color="#000000" face="Courier New" size="2">.db.join(curs)</font></b></span><span lang="en-au"><b></b></span><span lang="en-au"><b></b></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">if</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"></font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">not</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> joinedCursor:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">raise</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> NextDigital.DBEOFException()</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">return</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> (curs, joinedCursor)</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">except</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> Exception, e:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">raise</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> NextDigital.DBEOFException()</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">else</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cur =</font></span><span lang="en-au"><i></i></span><span lang="en-au"><i> <font color="#000000" face="Courier New" size="2">self</font></i></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">.db.cursor()</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cur.set_range(pattern)</font></span><span lang="en-au"></span><span lang="en-au"></span></p>

<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">return</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> ([], cur)</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">except</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> Exception, e:</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">print</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"></font></span><span lang="en-au"><i></i></span><span lang="en-au"><i> <font color="#00aa00" face="Courier New" size="2">&quot;Exception in search, case last: &quot;</font></i></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">, e</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#c0c0c0" face="Courier New" size="2">#traceback.print_exc(file=sys.stdout)</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></span><span lang="en-au"></span><span lang="en-au"> <font color="#0000ff" face="Courier New" size="2">raise</font></span><span lang="en-au"></span><span lang="en-au"><font color="#000000" face="Courier New" size="2"> NextDigital.DBEOFException()</font></span><span lang="en-au"></span><span lang="en-au"></span></p>


<p dir="ltr"><span lang="en-au"></span><span lang="en-au"></span></p>

<p dir="ltr"><span lang="en-au"><font color="#000080" face="Arial" size="2">Ideally, pget shall set the pointer to some found record on secondary cursor. But in my particular query, no records are found, that's where I need to handle this error before calling join().</font></span></p>


<p dir="ltr"><span lang="en-au"><font color="#000080" face="Arial" size="2">But, if we are getting stuck to the same vicious circle of finding non-empty cursor, how could I determine, whether to join() or not join()? As, join() is getting deadlock or core dump if we try to join empty cursors.</font></span></p>


<p dir="ltr"><span lang="en-au"><font color="#000080" face="Arial" size="2">Please suggest further.</font></span></p>

<p dir="ltr"><span lang="en-au"><font color="#000080" face="Arial" size="2">Regards,</font></span></p>

<p dir="ltr"><span lang="en-au"><font color="#000080" face="Arial" size="2">Surya</font></span></p>

</div>
<br>_______________________________________________<br>
pybsddb mailing list<br>
<a href="mailto:pybsddb@argo.es">pybsddb@argo.es</a><br>
<a href="http://mailman.argo.es/listinfo/pybsddb" target="_blank">http://mailman.argo.es/listinfo/pybsddb</a><br>
<a href="http://www.argo.es/%7Ejcea/programacion/pybsddb.htm" target="_blank">http://www.argo.es/~jcea/programacion/pybsddb.htm</a><br></blockquote></div><br>