sqlobject-cvs Mailing List for SQLObject (Page 33)
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
(9) |
Apr
(74) |
May
(29) |
Jun
(16) |
Jul
(28) |
Aug
(10) |
Sep
(57) |
Oct
(9) |
Nov
(29) |
Dec
(12) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(7) |
Feb
(14) |
Mar
(6) |
Apr
(3) |
May
(12) |
Jun
(34) |
Jul
(9) |
Aug
(29) |
Sep
(22) |
Oct
(2) |
Nov
(15) |
Dec
(52) |
2005 |
Jan
(47) |
Feb
(78) |
Mar
(14) |
Apr
(35) |
May
(33) |
Jun
(16) |
Jul
(26) |
Aug
(63) |
Sep
(40) |
Oct
(96) |
Nov
(96) |
Dec
(123) |
2006 |
Jan
(159) |
Feb
(144) |
Mar
(64) |
Apr
(31) |
May
(88) |
Jun
(48) |
Jul
(16) |
Aug
(64) |
Sep
(87) |
Oct
(92) |
Nov
(56) |
Dec
(76) |
2007 |
Jan
(94) |
Feb
(103) |
Mar
(126) |
Apr
(123) |
May
(85) |
Jun
(11) |
Jul
(130) |
Aug
(47) |
Sep
(65) |
Oct
(70) |
Nov
(12) |
Dec
(11) |
2008 |
Jan
(30) |
Feb
(55) |
Mar
(88) |
Apr
(20) |
May
(50) |
Jun
|
Jul
(38) |
Aug
(1) |
Sep
(9) |
Oct
(5) |
Nov
(6) |
Dec
(39) |
2009 |
Jan
(8) |
Feb
(16) |
Mar
(3) |
Apr
(33) |
May
(44) |
Jun
(1) |
Jul
(10) |
Aug
(33) |
Sep
(74) |
Oct
(22) |
Nov
|
Dec
(15) |
2010 |
Jan
(28) |
Feb
(22) |
Mar
(46) |
Apr
(29) |
May
(1) |
Jun
(1) |
Jul
(27) |
Aug
(8) |
Sep
(5) |
Oct
(33) |
Nov
(24) |
Dec
(41) |
2011 |
Jan
(4) |
Feb
(12) |
Mar
(35) |
Apr
(29) |
May
(19) |
Jun
(16) |
Jul
(32) |
Aug
(25) |
Sep
(5) |
Oct
(11) |
Nov
(21) |
Dec
(12) |
2012 |
Jan
(3) |
Feb
(4) |
Mar
(20) |
Apr
(4) |
May
(25) |
Jun
(13) |
Jul
|
Aug
|
Sep
(2) |
Oct
(25) |
Nov
(9) |
Dec
(1) |
2013 |
Jan
(6) |
Feb
(8) |
Mar
|
Apr
(10) |
May
(31) |
Jun
(7) |
Jul
(18) |
Aug
(33) |
Sep
(4) |
Oct
(16) |
Nov
|
Dec
(27) |
2014 |
Jan
(2) |
Feb
|
Mar
|
Apr
(11) |
May
(39) |
Jun
(8) |
Jul
(11) |
Aug
(4) |
Sep
|
Oct
(27) |
Nov
|
Dec
(71) |
2015 |
Jan
(17) |
Feb
(47) |
Mar
(33) |
Apr
|
May
|
Jun
(9) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(8) |
2016 |
Jan
(4) |
Feb
(4) |
Mar
|
Apr
|
May
(12) |
Jun
(7) |
Jul
(9) |
Aug
(31) |
Sep
(8) |
Oct
(3) |
Nov
(15) |
Dec
(1) |
2017 |
Jan
(13) |
Feb
(7) |
Mar
(14) |
Apr
(8) |
May
(10) |
Jun
(4) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(8) |
Nov
(4) |
Dec
(5) |
2018 |
Jan
(2) |
Feb
(8) |
Mar
|
Apr
(4) |
May
|
Jun
(6) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2019 |
Jan
(1) |
Feb
(16) |
Mar
(1) |
Apr
(3) |
May
(5) |
Jun
(1) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
(1) |
Dec
(3) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(2) |
Nov
|
Dec
(2) |
2021 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(6) |
Oct
(1) |
Nov
(1) |
Dec
(4) |
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(3) |
Sep
(2) |
Oct
(2) |
Nov
(4) |
Dec
|
2024 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(9) |
2025 |
Jan
|
Feb
(4) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <sub...@co...> - 2011-12-14 16:35:23
|
Author: phd Date: Wed Dec 14 09:35:13 2011 New Revision: 4492 Log: PostgresConnection performs translation of exceptions to standard SQLObject's hierarchy of exceptions. Modified: SQLObject/trunk/docs/News.txt SQLObject/trunk/sqlobject/postgres/pgconnection.py SQLObject/trunk/sqlobject/tests/dbtest.py Modified: SQLObject/trunk/docs/News.txt ============================================================================== --- SQLObject/trunk/docs/News.txt Sun Dec 4 07:32:41 2011 (r4491) +++ SQLObject/trunk/docs/News.txt Wed Dec 14 09:35:13 2011 (r4492) @@ -10,6 +10,12 @@ SQLObject (trunk) ================= +Features & Interface +-------------------- + +* PostgresConnection performs translation of exceptions to standard + SQLObject's hierarchy of exceptions. + SQLObject 1.2.1 =============== Modified: SQLObject/trunk/sqlobject/postgres/pgconnection.py ============================================================================== --- SQLObject/trunk/sqlobject/postgres/pgconnection.py Sun Dec 4 07:32:41 2011 (r4491) +++ SQLObject/trunk/sqlobject/postgres/pgconnection.py Wed Dec 14 09:35:13 2011 (r4492) @@ -3,6 +3,15 @@ from sqlobject import col from sqlobject import sqlbuilder from sqlobject.converters import registerConverter +from sqlobject.dberrors import * + +class ErrorMessage(str): + def __new__(cls, e): + obj = str.__new__(cls, e[0]) + obj.code = None + obj.module = e.__module__ + obj.exception = e.__class__.__name__ + return obj class PostgresConnection(DBAPI): @@ -134,12 +143,42 @@ if self.autoCommit: self._setAutoCommit(conn, 1) c = conn.cursor() if self.schema: - c.execute("SET search_path TO " + self.schema) + self._executeRetry(conn, c, "SET search_path TO " + self.schema) dbEncoding = self.dbEncoding if dbEncoding: - c.execute("SET client_encoding TO '%s'" % dbEncoding) + self._executeRetry(conn, c, "SET client_encoding TO '%s'" % dbEncoding) return conn + def _executeRetry(self, conn, cursor, query): + if self.debug: + self.printDebug(conn, query, 'QueryR') + try: + return cursor.execute(query) + except self.module.OperationalError, e: + raise OperationalError(ErrorMessage(e)) + except self.module.IntegrityError, e: + msg = ErrorMessage(e) + if e.pgcode == '23505': + raise DuplicateEntryError(msg) + else: + raise IntegrityError(msg) + except self.module.InternalError, e: + raise InternalError(ErrorMessage(e)) + except self.module.ProgrammingError, e: + raise ProgrammingError(ErrorMessage(e)) + except self.module.DataError, e: + raise DataError(ErrorMessage(e)) + except self.module.NotSupportedError, e: + raise NotSupportedError(ErrorMessage(e)) + except self.module.DatabaseError, e: + raise DatabaseError(ErrorMessage(e)) + except self.module.InterfaceError, e: + raise InterfaceError(ErrorMessage(e)) + except self.module.Warning, e: + raise Warning(ErrorMessage(e)) + except self.module.Error, e: + raise Error(ErrorMessage(e)) + def _queryInsertID(self, conn, soInstance, id, names, values): table = soInstance.sqlmeta.table idName = soInstance.sqlmeta.idName @@ -147,14 +186,14 @@ '%s_%s_seq' % (table, idName) c = conn.cursor() if id is None: - c.execute("SELECT NEXTVAL('%s')" % sequenceName) + self._executeRetry(conn, c, "SELECT NEXTVAL('%s')" % sequenceName) id = c.fetchone()[0] names = [idName] + names values = [id] + values q = self._insertSQL(table, names, values) if self.debug: self.printDebug(conn, q, 'QueryIns') - c.execute(q) + self._executeRetry(conn, c, q) if self.debugOutput: self.printDebug(conn, id, 'QueryIns', 'result') return id @@ -341,8 +380,8 @@ cur = conn.cursor() # We must close the transaction with a commit so that # the CREATE DATABASE can work (which can't be in a transaction): - cur.execute('COMMIT') - cur.execute('%s DATABASE %s' % (op, self.db)) + self._executeRetry(conn, cur, 'COMMIT') + self._executeRetry(conn, cur, '%s DATABASE %s' % (op, self.db)) cur.close() conn.close() Modified: SQLObject/trunk/sqlobject/tests/dbtest.py ============================================================================== --- SQLObject/trunk/sqlobject/tests/dbtest.py Sun Dec 4 07:32:41 2011 (r4491) +++ SQLObject/trunk/sqlobject/tests/dbtest.py Wed Dec 14 09:35:13 2011 (r4492) @@ -38,7 +38,7 @@ return """ supportsMatrix = { - '+exceptions': 'mysql sqlite', + '+exceptions': 'mysql postgres sqlite', '-transactions': 'mysql rdbhost', '-dropTableCascade': 'sybase mssql', '-expressionIndex': 'mysql sqlite firebird mssql', |
From: <sub...@co...> - 2011-12-04 14:32:47
|
Author: phd Date: Sun Dec 4 07:32:41 2011 New Revision: 4491 Log: Stable version 1.2.1. Modified: SQLObject/tags/1.2.1/README.txt SQLObject/tags/1.2.1/setup.cfg SQLObject/tags/1.2.1/sqlobject/__version__.py Modified: SQLObject/tags/1.2.1/README.txt ============================================================================== --- SQLObject/tags/1.2.1/README.txt Sun Dec 4 07:31:45 2011 (r4490) +++ SQLObject/tags/1.2.1/README.txt Sun Dec 4 07:32:41 2011 (r4491) @@ -1,5 +1,5 @@ -SQLObject 1.2 -============= +SQLObject 1.2.1 +=============== Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python Modified: SQLObject/tags/1.2.1/setup.cfg ============================================================================== --- SQLObject/tags/1.2.1/setup.cfg Sun Dec 4 07:31:45 2011 (r4490) +++ SQLObject/tags/1.2.1/setup.cfg Sun Dec 4 07:32:41 2011 (r4491) @@ -5,10 +5,6 @@ [easy_install] #find_links = http://svn.pythonpaste.org/package_index.html -[egg_info] -tag_build = dev -tag_svn_revision = true - [pudge] theme = pythonpaste.org docs = docs/index.txt docs/Authors.txt docs/DeveloperGuide.txt docs/FAQ.txt Modified: SQLObject/tags/1.2.1/sqlobject/__version__.py ============================================================================== --- SQLObject/tags/1.2.1/sqlobject/__version__.py Sun Dec 4 07:31:45 2011 (r4490) +++ SQLObject/tags/1.2.1/sqlobject/__version__.py Sun Dec 4 07:32:41 2011 (r4491) @@ -1,8 +1,8 @@ -version = '1.2' +version = '1.2.1' major = 1 minor = 2 -micro = 0 -release_level = 'branch' +micro = 1 +release_level = 'final' serial = 0 version_info = (major, minor, micro, release_level, serial) |
From: <sub...@co...> - 2011-12-04 14:31:51
|
Author: phd Date: Sun Dec 4 07:31:45 2011 New Revision: 4490 Log: Tagging 1.2.1 Added: SQLObject/tags/1.2.1/ - copied from r4489, SQLObject/branches/1.2/ |
From: <sub...@co...> - 2011-12-04 14:30:11
|
Author: phd Date: Sun Dec 4 07:30:04 2011 New Revision: 4489 Log: Stable version 1.1.4. Modified: SQLObject/tags/1.1.4/README.txt SQLObject/tags/1.1.4/setup.cfg SQLObject/tags/1.1.4/sqlobject/__version__.py Modified: SQLObject/tags/1.1.4/README.txt ============================================================================== --- SQLObject/tags/1.1.4/README.txt Sun Dec 4 07:28:16 2011 (r4488) +++ SQLObject/tags/1.1.4/README.txt Sun Dec 4 07:30:04 2011 (r4489) @@ -1,5 +1,5 @@ -SQLObject 1.1 -============= +SQLObject 1.1.4 +=============== Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python Modified: SQLObject/tags/1.1.4/setup.cfg ============================================================================== --- SQLObject/tags/1.1.4/setup.cfg Sun Dec 4 07:28:16 2011 (r4488) +++ SQLObject/tags/1.1.4/setup.cfg Sun Dec 4 07:30:04 2011 (r4489) @@ -5,10 +5,6 @@ [easy_install] #find_links = http://svn.pythonpaste.org/package_index.html -[egg_info] -tag_build = dev -tag_svn_revision = true - [pudge] theme = pythonpaste.org docs = docs/index.txt docs/Authors.txt docs/DeveloperGuide.txt docs/FAQ.txt Modified: SQLObject/tags/1.1.4/sqlobject/__version__.py ============================================================================== --- SQLObject/tags/1.1.4/sqlobject/__version__.py Sun Dec 4 07:28:16 2011 (r4488) +++ SQLObject/tags/1.1.4/sqlobject/__version__.py Sun Dec 4 07:30:04 2011 (r4489) @@ -1,8 +1,8 @@ -version = '1.1' +version = '1.1.4' major = 1 minor = 1 -micro = 0 -release_level = 'branch' +micro = 4 +release_level = 'final' serial = 0 version_info = (major, minor, micro, release_level, serial) |
From: <sub...@co...> - 2011-12-04 14:28:22
|
Author: phd Date: Sun Dec 4 07:28:16 2011 New Revision: 4488 Log: Tagging 1.1.4 Added: SQLObject/tags/1.1.4/ - copied from r4487, SQLObject/branches/1.1/ |
From: <sub...@co...> - 2011-12-04 14:26:41
|
Author: phd Date: Sun Dec 4 07:26:35 2011 New Revision: 4487 Log: Going to release SQLObject 1.1.4 and 1.2.1. Modified: SQLObject/trunk/docs/News.txt Modified: SQLObject/trunk/docs/News.txt ============================================================================== --- SQLObject/trunk/docs/News.txt Sun Dec 4 07:25:30 2011 (r4486) +++ SQLObject/trunk/docs/News.txt Sun Dec 4 07:26:35 2011 (r4487) @@ -13,6 +13,8 @@ SQLObject 1.2.1 =============== +Released 4 Dec 2011. + * A bugfix was ported from `SQLObject 1.1.4`_. SQLObject 1.2.0 @@ -48,6 +50,8 @@ SQLObject 1.1.4 =============== +Released 4 Dec 2011. + * A bug was fixed in handling ``modulo`` operator - SQLite implements only ``%``, MySQL - only ``MOD()``, PostgreSQL implements both. |
From: <sub...@co...> - 2011-12-04 14:25:36
|
Author: phd Date: Sun Dec 4 07:25:30 2011 New Revision: 4486 Log: Going to release SQLObject 1.1.4 and 1.2.1. Modified: SQLObject/branches/1.2/docs/News.txt Modified: SQLObject/branches/1.2/docs/News.txt ============================================================================== --- SQLObject/branches/1.2/docs/News.txt Sun Dec 4 07:23:50 2011 (r4485) +++ SQLObject/branches/1.2/docs/News.txt Sun Dec 4 07:25:30 2011 (r4486) @@ -10,6 +10,8 @@ SQLObject 1.2.1 =============== +Released 4 Dec 2011. + * A bugfix was ported from `SQLObject 1.1.4`_. SQLObject 1.2.0 @@ -45,6 +47,8 @@ SQLObject 1.1.4 =============== +Released 4 Dec 2011. + * A bug was fixed in handling ``modulo`` operator - SQLite implements only ``%``, MySQL - only ``MOD()``, PostgreSQL implements both. |
From: <sub...@co...> - 2011-12-04 14:23:59
|
Author: phd Date: Sun Dec 4 07:23:50 2011 New Revision: 4485 Log: Going to release SQLObject 1.1.4. Modified: SQLObject/branches/1.1/docs/News.txt Modified: SQLObject/branches/1.1/docs/News.txt ============================================================================== --- SQLObject/branches/1.1/docs/News.txt Sat Nov 26 06:12:03 2011 (r4484) +++ SQLObject/branches/1.1/docs/News.txt Sun Dec 4 07:23:50 2011 (r4485) @@ -10,6 +10,8 @@ SQLObject 1.1.4 =============== +Released 4 Dec 2011. + * A bug was fixed in handling ``modulo`` operator - SQLite implements only ``%``, MySQL - only ``MOD()``, PostgreSQL implements both. |
From: SourceForge.net <no...@so...> - 2011-11-26 13:28:07
|
Bugs item #3442071, was opened at 2011-11-25 07:35 Message generated for change (Comment added) made by phd You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=540672&aid=3442071&group_id=74338 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: SQLite Group: SQLObject release (specify) >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Tobias (vanity) >Assigned to: Oleg Broytman (phd) Summary: Modulo mapped to function instead of operator Initial Comment: With SQLObject 1.2.0 and whatever SQLite comes with Python 2.6, this following works fine: Video.select("""video.width % 2 == 1""")[0] But this raises sqlobject.dberrors.OperationalError: no such function: MOD: Video.select(Video.q.width % 2 == 1)[0] ---------------------------------------------------------------------- >Comment By: Oleg Broytman (phd) Date: 2011-11-26 05:28 Message: Fixed in commits 4482:4484 (branches 1.1, 1.2 and the trunk). Will be in the next releases. Thank you! ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=540672&aid=3442071&group_id=74338 |
From: <sub...@co...> - 2011-11-26 13:12:09
|
Author: phd Date: Sat Nov 26 06:12:03 2011 New Revision: 4484 Log: Merged revision 4483 from branch 1.2: a bug was fixed in handling ``modulo`` operator. Modified: SQLObject/trunk/docs/News.txt SQLObject/trunk/sqlobject/sqlbuilder.py SQLObject/trunk/sqlobject/tests/test_sqlbuilder.py Modified: SQLObject/trunk/docs/News.txt ============================================================================== --- SQLObject/trunk/docs/News.txt Sat Nov 26 06:09:55 2011 (r4483) +++ SQLObject/trunk/docs/News.txt Sat Nov 26 06:12:03 2011 (r4484) @@ -10,6 +10,11 @@ SQLObject (trunk) ================= +SQLObject 1.2.1 +=============== + +* A bugfix was ported from `SQLObject 1.1.4`_. + SQLObject 1.2.0 =============== @@ -40,6 +45,12 @@ * sqlobject.__doc__ and main.__doc__ no longer contain version number. Use sqlobject.version or version_info. +SQLObject 1.1.4 +=============== + +* A bug was fixed in handling ``modulo`` operator - SQLite implements + only ``%``, MySQL - only ``MOD()``, PostgreSQL implements both. + SQLObject 1.1.3 =============== Modified: SQLObject/trunk/sqlobject/sqlbuilder.py ============================================================================== --- SQLObject/trunk/sqlobject/sqlbuilder.py Sat Nov 26 06:09:55 2011 (r4483) +++ SQLObject/trunk/sqlobject/sqlbuilder.py Sat Nov 26 06:12:03 2011 (r4484) @@ -133,7 +133,7 @@ def __abs__(self): return SQLConstant("ABS")(self) def __mod__(self, other): - return SQLConstant("MOD")(self, other) + return SQLModulo(self, other) def __rmod__(self, other): return SQLConstant("MOD")(other, self) @@ -265,7 +265,18 @@ return operatorMap[self.op.upper()](execute(self.expr1, executor), execute(self.expr2, executor)) +class SQLModulo(SQLOp): + def __init__(self, expr1, expr2): + SQLOp.__init__(self, '%', expr1, expr2) + def __sqlrepr__(self, db): + if db == 'sqlite': + return SQLOp.__sqlrepr__(self, db) + s1 = sqlrepr(self.expr1, db) + s2 = sqlrepr(self.expr2, db) + return "MOD(%s, %s)" % (s1, s2) + registerConverter(SQLOp, SQLExprConverter) +registerConverter(SQLModulo, SQLExprConverter) class SQLCall(SQLExpression): def __init__(self, expr, args): Modified: SQLObject/trunk/sqlobject/tests/test_sqlbuilder.py ============================================================================== --- SQLObject/trunk/sqlobject/tests/test_sqlbuilder.py Sat Nov 26 06:09:55 2011 (r4483) +++ SQLObject/trunk/sqlobject/tests/test_sqlbuilder.py Sat Nov 26 06:12:03 2011 (r4484) @@ -34,6 +34,13 @@ sqlrepr(SQLOp("AND", 1, SQLOp("AND", 2, '3')), "sqlite") == \ "((1) AND ((2) AND ('3')))" +def test_modulo(): + setupClass(TestSQLBuilder) + assert sqlrepr(TestSQLBuilder.q.value % 2 == 0, 'mysql') == \ + "((MOD(test_sql_builder.value, 2)) = (0))" + assert sqlrepr(TestSQLBuilder.q.value % 2 == 0, 'sqlite') == \ + "(((test_sql_builder.value) % (2)) = (0))" + def test_str_or_sqlrepr(): select = Select(['id', 'name'], staticTables=['employees'], where='value>0', orderBy='id') |
From: <sub...@co...> - 2011-11-26 13:10:02
|
Author: phd Date: Sat Nov 26 06:09:55 2011 New Revision: 4483 Log: Merged revision 4482 from branch 1.1: a bug was fixed in handling ``modulo`` operator. Modified: SQLObject/branches/1.2/docs/News.txt SQLObject/branches/1.2/sqlobject/sqlbuilder.py SQLObject/branches/1.2/sqlobject/tests/test_sqlbuilder.py Modified: SQLObject/branches/1.2/docs/News.txt ============================================================================== --- SQLObject/branches/1.2/docs/News.txt Sat Nov 26 06:05:59 2011 (r4482) +++ SQLObject/branches/1.2/docs/News.txt Sat Nov 26 06:09:55 2011 (r4483) @@ -7,6 +7,11 @@ .. _start: +SQLObject 1.2.1 +=============== + +* A bugfix was ported from `SQLObject 1.1.4`_. + SQLObject 1.2.0 =============== @@ -37,6 +42,12 @@ * sqlobject.__doc__ and main.__doc__ no longer contain version number. Use sqlobject.version or version_info. +SQLObject 1.1.4 +=============== + +* A bug was fixed in handling ``modulo`` operator - SQLite implements + only ``%``, MySQL - only ``MOD()``, PostgreSQL implements both. + SQLObject 1.1.3 =============== Modified: SQLObject/branches/1.2/sqlobject/sqlbuilder.py ============================================================================== --- SQLObject/branches/1.2/sqlobject/sqlbuilder.py Sat Nov 26 06:05:59 2011 (r4482) +++ SQLObject/branches/1.2/sqlobject/sqlbuilder.py Sat Nov 26 06:09:55 2011 (r4483) @@ -133,7 +133,7 @@ def __abs__(self): return SQLConstant("ABS")(self) def __mod__(self, other): - return SQLConstant("MOD")(self, other) + return SQLModulo(self, other) def __rmod__(self, other): return SQLConstant("MOD")(other, self) @@ -265,7 +265,18 @@ return operatorMap[self.op.upper()](execute(self.expr1, executor), execute(self.expr2, executor)) +class SQLModulo(SQLOp): + def __init__(self, expr1, expr2): + SQLOp.__init__(self, '%', expr1, expr2) + def __sqlrepr__(self, db): + if db == 'sqlite': + return SQLOp.__sqlrepr__(self, db) + s1 = sqlrepr(self.expr1, db) + s2 = sqlrepr(self.expr2, db) + return "MOD(%s, %s)" % (s1, s2) + registerConverter(SQLOp, SQLExprConverter) +registerConverter(SQLModulo, SQLExprConverter) class SQLCall(SQLExpression): def __init__(self, expr, args): Modified: SQLObject/branches/1.2/sqlobject/tests/test_sqlbuilder.py ============================================================================== --- SQLObject/branches/1.2/sqlobject/tests/test_sqlbuilder.py Sat Nov 26 06:05:59 2011 (r4482) +++ SQLObject/branches/1.2/sqlobject/tests/test_sqlbuilder.py Sat Nov 26 06:09:55 2011 (r4483) @@ -34,6 +34,13 @@ sqlrepr(SQLOp("AND", 1, SQLOp("AND", 2, '3')), "sqlite") == \ "((1) AND ((2) AND ('3')))" +def test_modulo(): + setupClass(TestSQLBuilder) + assert sqlrepr(TestSQLBuilder.q.value % 2 == 0, 'mysql') == \ + "((MOD(test_sql_builder.value, 2)) = (0))" + assert sqlrepr(TestSQLBuilder.q.value % 2 == 0, 'sqlite') == \ + "(((test_sql_builder.value) % (2)) = (0))" + def test_str_or_sqlrepr(): select = Select(['id', 'name'], staticTables=['employees'], where='value>0', orderBy='id') |
From: <sub...@co...> - 2011-11-26 13:06:08
|
Author: phd Date: Sat Nov 26 06:05:59 2011 New Revision: 4482 Log: A bug was fixed in handling ``modulo`` operator - SQLite implements only ``%``. Modified: SQLObject/branches/1.1/docs/News.txt SQLObject/branches/1.1/sqlobject/sqlbuilder.py SQLObject/branches/1.1/sqlobject/tests/test_sqlbuilder.py Modified: SQLObject/branches/1.1/docs/News.txt ============================================================================== --- SQLObject/branches/1.1/docs/News.txt Sun Nov 20 04:57:00 2011 (r4481) +++ SQLObject/branches/1.1/docs/News.txt Sat Nov 26 06:05:59 2011 (r4482) @@ -7,6 +7,12 @@ .. _start: +SQLObject 1.1.4 +=============== + +* A bug was fixed in handling ``modulo`` operator - SQLite implements + only ``%``, MySQL - only ``MOD()``, PostgreSQL implements both. + SQLObject 1.1.3 =============== Modified: SQLObject/branches/1.1/sqlobject/sqlbuilder.py ============================================================================== --- SQLObject/branches/1.1/sqlobject/sqlbuilder.py Sun Nov 20 04:57:00 2011 (r4481) +++ SQLObject/branches/1.1/sqlobject/sqlbuilder.py Sat Nov 26 06:05:59 2011 (r4482) @@ -127,7 +127,7 @@ def __abs__(self): return SQLConstant("ABS")(self) def __mod__(self, other): - return SQLConstant("MOD")(self, other) + return SQLModulo(self, other) def __rmod__(self, other): return SQLConstant("MOD")(other, self) @@ -259,7 +259,18 @@ return operatorMap[self.op.upper()](execute(self.expr1, executor), execute(self.expr2, executor)) +class SQLModulo(SQLOp): + def __init__(self, expr1, expr2): + SQLOp.__init__(self, '%', expr1, expr2) + def __sqlrepr__(self, db): + if db == 'sqlite': + return SQLOp.__sqlrepr__(self, db) + s1 = sqlrepr(self.expr1, db) + s2 = sqlrepr(self.expr2, db) + return "MOD(%s, %s)" % (s1, s2) + registerConverter(SQLOp, SQLExprConverter) +registerConverter(SQLModulo, SQLExprConverter) class SQLCall(SQLExpression): def __init__(self, expr, args): Modified: SQLObject/branches/1.1/sqlobject/tests/test_sqlbuilder.py ============================================================================== --- SQLObject/branches/1.1/sqlobject/tests/test_sqlbuilder.py Sun Nov 20 04:57:00 2011 (r4481) +++ SQLObject/branches/1.1/sqlobject/tests/test_sqlbuilder.py Sat Nov 26 06:05:59 2011 (r4482) @@ -33,3 +33,10 @@ assert sqlrepr(AND(1, 2, '3'), "sqlite") == \ sqlrepr(SQLOp("AND", 1, SQLOp("AND", 2, '3')), "sqlite") == \ "((1) AND ((2) AND ('3')))" + +def test_modulo(): + setupClass(TestSQLBuilder) + assert sqlrepr(TestSQLBuilder.q.value % 2 == 0, 'mysql') == \ + "((MOD(test_sql_builder.value, 2)) = (0))" + assert sqlrepr(TestSQLBuilder.q.value % 2 == 0, 'sqlite') == \ + "(((test_sql_builder.value) % (2)) = (0))" |
From: SourceForge.net <no...@so...> - 2011-11-25 15:35:59
|
Bugs item #3442071, was opened at 2011-11-25 07:35 Message generated for change (Tracker Item Submitted) made by vanity You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=540672&aid=3442071&group_id=74338 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: SQLite Group: SQLObject release (specify) Status: Open Resolution: None Priority: 5 Private: No Submitted By: Tobias (vanity) Assigned to: Nobody/Anonymous (nobody) Summary: Modulo mapped to function instead of operator Initial Comment: With SQLObject 1.2.0 and whatever SQLite comes with Python 2.6, this following works fine: Video.select("""video.width % 2 == 1""")[0] But this raises sqlobject.dberrors.OperationalError: no such function: MOD: Video.select(Video.q.width % 2 == 1)[0] ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=540672&aid=3442071&group_id=74338 |
From: <sub...@co...> - 2011-11-20 11:57:06
|
Author: phd Date: Sun Nov 20 04:57:00 2011 New Revision: 4481 Log: Stable version 1.2.0. Modified: SQLObject/tags/1.2.0/README.txt SQLObject/tags/1.2.0/setup.cfg SQLObject/tags/1.2.0/sqlobject/__version__.py Modified: SQLObject/tags/1.2.0/README.txt ============================================================================== --- SQLObject/tags/1.2.0/README.txt Sun Nov 20 04:54:55 2011 (r4480) +++ SQLObject/tags/1.2.0/README.txt Sun Nov 20 04:57:00 2011 (r4481) @@ -1,5 +1,5 @@ -SQLObject 1.2 -============= +SQLObject 1.2.0 +=============== Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python Modified: SQLObject/tags/1.2.0/setup.cfg ============================================================================== --- SQLObject/tags/1.2.0/setup.cfg Sun Nov 20 04:54:55 2011 (r4480) +++ SQLObject/tags/1.2.0/setup.cfg Sun Nov 20 04:57:00 2011 (r4481) @@ -5,10 +5,6 @@ [easy_install] #find_links = http://svn.pythonpaste.org/package_index.html -[egg_info] -tag_build = dev -tag_svn_revision = true - [pudge] theme = pythonpaste.org docs = docs/index.txt docs/Authors.txt docs/DeveloperGuide.txt docs/FAQ.txt Modified: SQLObject/tags/1.2.0/sqlobject/__version__.py ============================================================================== --- SQLObject/tags/1.2.0/sqlobject/__version__.py Sun Nov 20 04:54:55 2011 (r4480) +++ SQLObject/tags/1.2.0/sqlobject/__version__.py Sun Nov 20 04:57:00 2011 (r4481) @@ -1,8 +1,8 @@ -version = '1.2' +version = '1.2.0' major = 1 minor = 2 micro = 0 -release_level = 'branch' +release_level = 'final' serial = 0 version_info = (major, minor, micro, release_level, serial) |
From: <sub...@co...> - 2011-11-20 11:55:02
|
Author: phd Date: Sun Nov 20 04:54:55 2011 New Revision: 4480 Log: Tagging 1.2.0 Added: SQLObject/tags/1.2.0/ - copied from r4479, SQLObject/branches/1.2/ |
From: <sub...@co...> - 2011-11-20 11:54:09
|
Author: phd Date: Sun Nov 20 04:54:02 2011 New Revision: 4479 Log: Merged revision 4478 from branch 1.2: SQLObject 1.2.0 was released 20 Nov 2011. Modified: SQLObject/trunk/docs/News.txt Modified: SQLObject/trunk/docs/News.txt ============================================================================== --- SQLObject/trunk/docs/News.txt Sun Nov 20 04:52:33 2011 (r4478) +++ SQLObject/trunk/docs/News.txt Sun Nov 20 04:54:02 2011 (r4479) @@ -13,6 +13,8 @@ SQLObject 1.2.0 =============== +Released 20 Nov 2011. + Features & Interface -------------------- |
From: <sub...@co...> - 2011-11-20 11:52:43
|
Author: phd Date: Sun Nov 20 04:52:33 2011 New Revision: 4478 Log: SQLObject 1.2.0 was released 20 Nov 2011. Modified: SQLObject/branches/1.2/docs/News.txt Modified: SQLObject/branches/1.2/docs/News.txt ============================================================================== --- SQLObject/branches/1.2/docs/News.txt Sat Nov 5 08:34:15 2011 (r4477) +++ SQLObject/branches/1.2/docs/News.txt Sun Nov 20 04:52:33 2011 (r4478) @@ -10,6 +10,8 @@ SQLObject 1.2.0 =============== +Released 20 Nov 2011. + Features & Interface -------------------- |
From: <sub...@co...> - 2011-11-05 14:34:22
|
Author: phd Date: Sat Nov 5 08:34:15 2011 New Revision: 4477 Log: SQLObject 1.2.0b1. Modified: SQLObject/tags/1.2.0b1/README.txt SQLObject/tags/1.2.0b1/setup.py SQLObject/tags/1.2.0b1/sqlobject/__version__.py Modified: SQLObject/tags/1.2.0b1/README.txt ============================================================================== --- SQLObject/tags/1.2.0b1/README.txt Sat Nov 5 08:30:37 2011 (r4476) +++ SQLObject/tags/1.2.0b1/README.txt Sat Nov 5 08:34:15 2011 (r4477) @@ -1,5 +1,5 @@ -SQLObject 1.2 -============= +SQLObject 1.2.0b1 +================= Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python Modified: SQLObject/tags/1.2.0b1/setup.py ============================================================================== --- SQLObject/tags/1.2.0b1/setup.py Sat Nov 5 08:30:37 2011 (r4476) +++ SQLObject/tags/1.2.0b1/setup.py Sat Nov 5 08:34:15 2011 (r4477) @@ -56,7 +56,7 @@ author="Ian Bicking", author_email="ia...@co...", url="http://sqlobject.org/", - download_url="http://pypi.python.org/pypi/SQLObject/%s" % version, + download_url="http://pypi.python.org/pypi/SQLObject/1.2.0b1dev-r4477", license="LGPL", packages=["sqlobject"] + ['sqlobject.%s' % package for package in subpackages], scripts=["scripts/sqlobject-admin", "scripts/sqlobject-convertOldURI"], Modified: SQLObject/tags/1.2.0b1/sqlobject/__version__.py ============================================================================== --- SQLObject/tags/1.2.0b1/sqlobject/__version__.py Sat Nov 5 08:30:37 2011 (r4476) +++ SQLObject/tags/1.2.0b1/sqlobject/__version__.py Sat Nov 5 08:34:15 2011 (r4477) @@ -1,8 +1,8 @@ -version = '1.2' +version = '1.2.0b1' major = 1 minor = 2 micro = 0 -release_level = 'branch' -serial = 0 +release_level = 'beta' +serial = 1 version_info = (major, minor, micro, release_level, serial) |
From: <sub...@co...> - 2011-11-05 14:30:44
|
Author: phd Date: Sat Nov 5 08:30:37 2011 New Revision: 4476 Log: Tagging 1.2.0b1 Added: SQLObject/tags/1.2.0b1/ - copied from r4475, SQLObject/branches/1.2/ |
From: <sub...@co...> - 2011-11-05 14:16:10
|
Author: phd Date: Sat Nov 5 08:16:03 2011 New Revision: 4475 Log: The next branch will be 1.3. Modified: SQLObject/trunk/README.txt SQLObject/trunk/sqlobject/__version__.py Modified: SQLObject/trunk/README.txt ============================================================================== --- SQLObject/trunk/README.txt Sat Nov 5 08:12:04 2011 (r4474) +++ SQLObject/trunk/README.txt Sat Nov 5 08:16:03 2011 (r4475) @@ -1,4 +1,4 @@ -SQLObject 1.2 +SQLObject 1.3 ============= Thanks for looking at SQLObject. SQLObject is an object-relational Modified: SQLObject/trunk/sqlobject/__version__.py ============================================================================== --- SQLObject/trunk/sqlobject/__version__.py Sat Nov 5 08:12:04 2011 (r4474) +++ SQLObject/trunk/sqlobject/__version__.py Sat Nov 5 08:16:03 2011 (r4475) @@ -1,7 +1,7 @@ -version = '1.2' +version = '1.3' major = 1 -minor = 2 +minor = 3 micro = 0 release_level = 'trunk' serial = 0 |
From: <sub...@co...> - 2011-11-05 14:12:10
|
Author: phd Date: Sat Nov 5 08:12:04 2011 New Revision: 4474 Log: Branch 1.2. Modified: SQLObject/branches/1.2/docs/News.txt Modified: SQLObject/branches/1.2/docs/News.txt ============================================================================== --- SQLObject/branches/1.2/docs/News.txt Sat Nov 5 08:10:12 2011 (r4473) +++ SQLObject/branches/1.2/docs/News.txt Sat Nov 5 08:12:04 2011 (r4474) @@ -7,8 +7,8 @@ .. _start: -SQLObject (trunk) -================= +SQLObject 1.2.0 +=============== Features & Interface -------------------- |
From: <sub...@co...> - 2011-11-05 14:10:18
|
Author: phd Date: Sat Nov 5 08:10:12 2011 New Revision: 4473 Log: Branch 1.2. Modified: SQLObject/branches/1.2/setup.py SQLObject/branches/1.2/sqlobject/__version__.py Modified: SQLObject/branches/1.2/setup.py ============================================================================== --- SQLObject/branches/1.2/setup.py Sat Nov 5 08:04:54 2011 (r4472) +++ SQLObject/branches/1.2/setup.py Sat Nov 5 08:10:12 2011 (r4473) @@ -55,7 +55,7 @@ ], author="Ian Bicking", author_email="ia...@co...", - url="http://sqlobject.org/devel/", + url="http://sqlobject.org/", download_url="http://pypi.python.org/pypi/SQLObject/%s" % version, license="LGPL", packages=["sqlobject"] + ['sqlobject.%s' % package for package in subpackages], Modified: SQLObject/branches/1.2/sqlobject/__version__.py ============================================================================== --- SQLObject/branches/1.2/sqlobject/__version__.py Sat Nov 5 08:04:54 2011 (r4472) +++ SQLObject/branches/1.2/sqlobject/__version__.py Sat Nov 5 08:10:12 2011 (r4473) @@ -3,6 +3,6 @@ major = 1 minor = 2 micro = 0 -release_level = 'trunk' +release_level = 'branch' serial = 0 version_info = (major, minor, micro, release_level, serial) |
From: <sub...@co...> - 2011-11-05 14:05:01
|
Author: phd Date: Sat Nov 5 08:04:54 2011 New Revision: 4472 Log: Merged revision 4471 from branch 1.2: sqlobject.__doc__ and main.__doc__ no longer contain version number. Modified: SQLObject/trunk/docs/News.txt SQLObject/trunk/sqlobject/__init__.py SQLObject/trunk/sqlobject/main.py Modified: SQLObject/trunk/docs/News.txt ============================================================================== --- SQLObject/trunk/docs/News.txt Sat Nov 5 08:03:23 2011 (r4471) +++ SQLObject/trunk/docs/News.txt Sat Nov 5 08:04:54 2011 (r4472) @@ -35,6 +35,9 @@ * A bug caused by psycopg2 recently added a new boolean not callable autocommit attribute was fixed. +* sqlobject.__doc__ and main.__doc__ no longer contain version number. + Use sqlobject.version or version_info. + SQLObject 1.1.3 =============== Modified: SQLObject/trunk/sqlobject/__init__.py ============================================================================== --- SQLObject/trunk/sqlobject/__init__.py Sat Nov 5 08:03:23 2011 (r4471) +++ SQLObject/trunk/sqlobject/__init__.py Sat Nov 5 08:04:54 2011 (r4472) @@ -1,6 +1,4 @@ -""" -SQLObject 1.2 -""" +"""SQLObject""" from __version__ import version, version_info from col import * Modified: SQLObject/trunk/sqlobject/main.py ============================================================================== --- SQLObject/trunk/sqlobject/main.py Sat Nov 5 08:03:23 2011 (r4471) +++ SQLObject/trunk/sqlobject/main.py Sat Nov 5 08:04:54 2011 (r4472) @@ -1,6 +1,6 @@ """ -SQLObject 1.2 -------------- +SQLObject +--------- :author: Ian Bicking <ia...@co...> |
From: <sub...@co...> - 2011-11-05 14:03:30
|
Author: phd Date: Sat Nov 5 08:03:23 2011 New Revision: 4471 Log: sqlobject.__doc__ and main.__doc__ no longer contain version number. Modified: SQLObject/branches/1.2/docs/News.txt SQLObject/branches/1.2/sqlobject/__init__.py SQLObject/branches/1.2/sqlobject/main.py Modified: SQLObject/branches/1.2/docs/News.txt ============================================================================== --- SQLObject/branches/1.2/docs/News.txt Sat Nov 5 07:48:55 2011 (r4470) +++ SQLObject/branches/1.2/docs/News.txt Sat Nov 5 08:03:23 2011 (r4471) @@ -32,6 +32,9 @@ * A bug caused by psycopg2 recently added a new boolean not callable autocommit attribute was fixed. +* sqlobject.__doc__ and main.__doc__ no longer contain version number. + Use sqlobject.version or version_info. + SQLObject 1.1.3 =============== Modified: SQLObject/branches/1.2/sqlobject/__init__.py ============================================================================== --- SQLObject/branches/1.2/sqlobject/__init__.py Sat Nov 5 07:48:55 2011 (r4470) +++ SQLObject/branches/1.2/sqlobject/__init__.py Sat Nov 5 08:03:23 2011 (r4471) @@ -1,6 +1,4 @@ -""" -SQLObject 1.2 -""" +"""SQLObject""" from __version__ import version, version_info from col import * Modified: SQLObject/branches/1.2/sqlobject/main.py ============================================================================== --- SQLObject/branches/1.2/sqlobject/main.py Sat Nov 5 07:48:55 2011 (r4470) +++ SQLObject/branches/1.2/sqlobject/main.py Sat Nov 5 08:03:23 2011 (r4471) @@ -1,6 +1,6 @@ """ -SQLObject 1.2 -------------- +SQLObject +--------- :author: Ian Bicking <ia...@co...> |
From: <sub...@co...> - 2011-11-05 13:49:02
|
Author: phd Date: Sat Nov 5 07:48:55 2011 New Revision: 4470 Log: Branch 1.2. Modified: SQLObject/trunk/docs/News.txt Modified: SQLObject/trunk/docs/News.txt ============================================================================== --- SQLObject/trunk/docs/News.txt Sat Nov 5 07:45:37 2011 (r4469) +++ SQLObject/trunk/docs/News.txt Sat Nov 5 07:48:55 2011 (r4470) @@ -10,6 +10,9 @@ SQLObject (trunk) ================= +SQLObject 1.2.0 +=============== + Features & Interface -------------------- |