Thread: [SQLObject] bug report: limit(num) method for Firebird
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: Petr J. <pet...@tp...> - 2009-12-18 00:46:41
|
Hi, I am trying to use the limit(num) method. http://www.sqlobject.org/SelectResults.html For the SQLite everything works as expected. For the Firebird database I am getting following error: Traceback (most recent call last): File "testSqlObject.py", line 55, in <module> for r in os: File "/usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/sresults.py", line 179, in __iter__ return iter(list(self.lazyIter())) File "/usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/sresults.py", line 187, in lazyIter return conn.iterSelect(self) File "/usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/dbconnection.py", line 395, in iterSelect select, keepConnection=False) File "/usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/dbconnection.py", line 631, in __init__ self.query = self.dbconn.queryForSelect(select) File "/usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/dbconnection.py", line 409, in queryForSelect return self.sqlrepr(select.queryForSelect()) File "/usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/dbconnection.py", line 591, in sqlrepr return sqlrepr(v, self.dbName) File "/usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/converters.py", line 211, in sqlrepr return reprFunc(db) File "/usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/sqlbuilder.py", line 677, in __sqlrepr__ select = dbConnectionForScheme(db)._queryAddLimitOffset(select, start, end) File "/usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/firebird/firebirdconnection.py", line 120, in _queryAddLimitOffset match = cls.limit_re.match(query) AttributeError: class FirebirdConnection has no attribute 'limit_re' Adding the line : cls.limit_re = re.compile('^\s*(select )(.*)', re.IGNORECASE) before the line: match = cls.limit_re.match(query) in the method _queryAddLimitOffset before in the file firebirdconnection.py solves the problem. I am not a Python guru and I am sure this is not a "high-level" solution. Oleg surely knows how to patch it properly :D Regards Petr |
From: Oleg B. <ph...@ph...> - 2009-12-18 09:35:08
|
On Fri, Dec 18, 2009 at 01:19:25AM +0100, Petr Jake?? wrote: > File > "/usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/firebird/firebirdconnection.py", > line 120, in _queryAddLimitOffset > match = cls.limit_re.match(query) > AttributeError: class FirebirdConnection has no attribute 'limit_re' I'll look at it. Oleg. -- Oleg Broytman http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Oleg B. <ph...@ph...> - 2009-12-20 15:41:20
|
Hi! On Fri, Dec 18, 2009 at 01:19:25AM +0100, Petr Jake?? wrote: > File > "/usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/firebird/firebirdconnection.py", > line 120, in _queryAddLimitOffset > match = cls.limit_re.match(query) > AttributeError: class FirebirdConnection has no attribute 'limit_re' This is the patch that I think fixes the problem: Index: firebirdconnection.py =================================================================== --- firebirdconnection.py (revision 4047) +++ firebirdconnection.py (working copy) @@ -10,6 +10,8 @@ dbName = 'firebird' schemes = [dbName] + limit_re = re.compile('^\s*(select )(.*)', re.IGNORECASE) + def __init__(self, host, db, user='sysdba', password='masterkey', autoCommit=1, dialect=None, role=None, charset=None, **kw): @@ -18,8 +20,6 @@ import kinterbasdb self.module = kinterbasdb - self.limit_re = re.compile('^\s*(select )(.*)', re.IGNORECASE) - self.host = host self.db = db self.user = user Oleg. -- Oleg Broytman http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Joe L. <joe...@gm...> - 2011-03-16 18:34:00
|
Hi, I just came across the exact same problem using the mssql connection (mssqlconnection.py). More specifically the problem occured when I tried to access the first returned row of a selectResults (ie. selResults[0]). I tried the same solution below in the mssqlconnection.py file, and it solved the problem. Can this fix also be applied to the official mssql support? Thanks, Joe On Sun, Dec 20, 2009 at 10:41 AM, Oleg Broytman <ph...@ph...> wrote: > Hi! > > On Fri, Dec 18, 2009 at 01:19:25AM +0100, Petr Jake?? wrote: > > File > > > "/usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/firebird/firebirdconnection.py", > > line 120, in _queryAddLimitOffset > > match = cls.limit_re.match(query) > > AttributeError: class FirebirdConnection has no attribute 'limit_re' > > This is the patch that I think fixes the problem: > > Index: firebirdconnection.py > =================================================================== > --- firebirdconnection.py (revision 4047) > +++ firebirdconnection.py (working copy) > @@ -10,6 +10,8 @@ > dbName = 'firebird' > schemes = [dbName] > > + limit_re = re.compile('^\s*(select )(.*)', re.IGNORECASE) > + > def __init__(self, host, db, user='sysdba', > password='masterkey', autoCommit=1, > dialect=None, role=None, charset=None, **kw): > @@ -18,8 +20,6 @@ > import kinterbasdb > self.module = kinterbasdb > > - self.limit_re = re.compile('^\s*(select )(.*)', re.IGNORECASE) > - > self.host = host > self.db = db > self.user = user > > Oleg. > -- > Oleg Broytman http://phd.pp.ru/ ph...@ph... > Programmers don't die, they just GOSUB without RETURN. > > > ------------------------------------------------------------------------------ > This SF.Net email is sponsored by the Verizon Developer Community > Take advantage of Verizon's best-in-class app development support > A streamlined, 14 day to market process makes app distribution fast and > easy > Join now and get one step closer to millions of Verizon customers > http://p.sf.net/sfu/verizon-dev2dev > _______________________________________________ > sqlobject-discuss mailing list > sql...@li... > https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss > |
From: Oleg B. <ph...@ph...> - 2011-03-16 20:09:03
|
On Wed, Mar 16, 2011 at 02:33:48PM -0400, Joe Lanese wrote: > I just came across the exact same problem using the mssql connection > (mssqlconnection.py). More specifically the problem occured when I tried to > access the first returned row of a selectResults (ie. selResults[0]). I > tried the same solution below in the mssqlconnection.py file, and it solved > the problem. > > Can this fix also be applied to the official mssql support? > > > On Fri, Dec 18, 2009 at 01:19:25AM +0100, Petr Jake?? wrote: > > Index: firebirdconnection.py > > =================================================================== > > --- firebirdconnection.py (revision 4047) > > +++ firebirdconnection.py (working copy) > > @@ -10,6 +10,8 @@ > > dbName = 'firebird' > > schemes = [dbName] > > > > + limit_re = re.compile('^\s*(select )(.*)', re.IGNORECASE) Thank you, I'll apply the patch tomorrow. New releases will be released in a few days. Oleg. -- Oleg Broytman http://phdru.name/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Oleg B. <ph...@ph...> - 2011-03-17 16:21:04
|
On Wed, Mar 16, 2011 at 11:08:52PM +0300, Oleg Broytman wrote: > On Wed, Mar 16, 2011 at 02:33:48PM -0400, Joe Lanese wrote: > > I just came across the exact same problem using the mssql connection > > (mssqlconnection.py). More specifically the problem occured when I tried to > > access the first returned row of a selectResults (ie. selResults[0]). I > > tried the same solution below in the mssqlconnection.py file, and it solved > > the problem. > > > > Can this fix also be applied to the official mssql support? > > > > > On Fri, Dec 18, 2009 at 01:19:25AM +0100, Petr Jake?? wrote: > > > Index: firebirdconnection.py > > > =================================================================== > > > --- firebirdconnection.py (revision 4047) > > > +++ firebirdconnection.py (working copy) > > > @@ -10,6 +10,8 @@ > > > dbName = 'firebird' > > > schemes = [dbName] > > > > > > + limit_re = re.compile('^\s*(select )(.*)', re.IGNORECASE) > > Thank you, I'll apply the patch tomorrow. New releases will be > released in a few days. Applied and committed in the revisions 4358-4360 (branches 0.15, 1.0 and the trunk; I've stopped maintaining branch 0.14 as I am releasing version 1.0 RSN.) Oleg. -- Oleg Broytman http://phdru.name/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Joe L. <joe...@gm...> - 2011-03-17 16:49:31
|
Great! Thank you. On Thu, Mar 17, 2011 at 12:20 PM, Oleg Broytman <ph...@ph...> wrote: > On Wed, Mar 16, 2011 at 11:08:52PM +0300, Oleg Broytman wrote: > > On Wed, Mar 16, 2011 at 02:33:48PM -0400, Joe Lanese wrote: > > > I just came across the exact same problem using the mssql connection > > > (mssqlconnection.py). More specifically the problem occured when I > tried to > > > access the first returned row of a selectResults (ie. selResults[0]). > I > > > tried the same solution below in the mssqlconnection.py file, and it > solved > > > the problem. > > > > > > Can this fix also be applied to the official mssql support? > > > > > > > On Fri, Dec 18, 2009 at 01:19:25AM +0100, Petr Jake?? wrote: > > > > Index: firebirdconnection.py > > > > =================================================================== > > > > --- firebirdconnection.py (revision 4047) > > > > +++ firebirdconnection.py (working copy) > > > > @@ -10,6 +10,8 @@ > > > > dbName = 'firebird' > > > > schemes = [dbName] > > > > > > > > + limit_re = re.compile('^\s*(select )(.*)', re.IGNORECASE) > > > > Thank you, I'll apply the patch tomorrow. New releases will be > > released in a few days. > > Applied and committed in the revisions 4358-4360 (branches 0.15, 1.0 > and the trunk; I've stopped maintaining branch 0.14 as I am releasing > version 1.0 RSN.) > > Oleg. > -- > Oleg Broytman http://phdru.name/ ph...@ph... > Programmers don't die, they just GOSUB without RETURN. > > > ------------------------------------------------------------------------------ > Colocation vs. Managed Hosting > A question and answer guide to determining the best fit > for your organization - today and in the future. > http://p.sf.net/sfu/internap-sfd2d > _______________________________________________ > sqlobject-discuss mailing list > sql...@li... > https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss > |