# HG changeset patch # User Catherine Devlin # Date 1238904522 14400 # Node ID b2fbb9de8845f7d8205b9edcc2b381c2311b5229 # Parent 7cc5cc19891f330e461c9ea62f20b01872d398bc avoid infinite loop when r[-1] > rows_remembered diff -r 7cc5cc19891f -r b2fbb9de8845 sqlpython/sqlpyPlus.py --- a/sqlpython/sqlpyPlus.py Sat Apr 04 22:10:47 2009 -0400 +++ b/sqlpython/sqlpyPlus.py Sun Apr 05 00:08:42 2009 -0400 @@ -316,7 +316,7 @@ def __init__(self): sqlpython.sqlpython.__init__(self) self.binds = CaselessDict() - self.settable += 'autobind commit_on_exit maxfetch maxtselctrows rows_remembered scan serveroutput sql_echo store_results timeout heading wildsql'.split() + self.settable += 'autobind commit_on_exit maxfetch maxtselctrows rows_remembered scan serveroutput sql_echo timeout heading wildsql'.split() self.settable.remove('case_insensitive') self.settable.sort() self.stdoutBeforeSpool = sys.stdout @@ -330,7 +330,6 @@ self.nonpythoncommand = 'sql' self.substvars = {} self.result_history = [] - self.store_results = True self.rows_remembered = 10 self.pystate = {'r': [], 'binds': self.binds, 'substs': self.substvars} @@ -666,12 +665,12 @@ def age_out_resultsets(self): total_len = sum(len(rs) for rs in self.pystate['r']) - while (self.rows_remembered and (total_len >= self.rows_remembered)): - for (i, rset) in enumerate(self.pystate['r'][:-1]): - if rset: - self.pystate['r'][i] = [] - break - total_len = sum(len(rs) for rs in self.pystate['r']) + for (i, rset) in enumerate(self.pystate['r'][:-1]): + if total_len <= self.rows_remembered: + return + total_len -= len(rset) + self.pystate['r'][i] = [] + def do_select(self, arg, bindVarsIn=None, terminator=None): """Fetch rows from a table.