sqlobject-cvs Mailing List for SQLObject (Page 57)
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
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <sub...@co...> - 2009-08-13 16:51:05
|
Author: phd Date: 2009-08-13 10:50:54 -0600 (Thu, 13 Aug 2009) New Revision: 3955 Modified: SQLObject/branches/0.10/sqlobject/tests/test_unicode.py Log: ...but only for Postgres... Modified: SQLObject/branches/0.10/sqlobject/tests/test_unicode.py =================================================================== --- SQLObject/branches/0.10/sqlobject/tests/test_unicode.py 2009-08-13 16:48:40 UTC (rev 3954) +++ SQLObject/branches/0.10/sqlobject/tests/test_unicode.py 2009-08-13 16:50:54 UTC (rev 3955) @@ -17,7 +17,8 @@ global items items = [] setupClass(TestUnicode) - TestUnicode._connection.query('SET client_encoding TO latin1') + if TestUnicode._connection.dbName == 'postgres': + TestUnicode._connection.query('SET client_encoding TO latin1') for i, n in enumerate(data): items.append(TestUnicode(count=i, col1=n, col2=n)) |
From: <sub...@co...> - 2009-08-13 16:48:51
|
Author: phd Date: 2009-08-13 10:48:40 -0600 (Thu, 13 Aug 2009) New Revision: 3954 Modified: SQLObject/trunk/sqlobject/tests/test_unicode.py Log: SET client_encoding TO latin1 to fix the test. Modified: SQLObject/trunk/sqlobject/tests/test_unicode.py =================================================================== --- SQLObject/trunk/sqlobject/tests/test_unicode.py 2009-08-13 16:48:12 UTC (rev 3953) +++ SQLObject/trunk/sqlobject/tests/test_unicode.py 2009-08-13 16:48:40 UTC (rev 3954) @@ -17,6 +17,7 @@ global items items = [] setupClass(TestUnicode) + TestUnicode._connection.query('SET client_encoding TO latin1') for i, n in enumerate(data): items.append(TestUnicode(count=i, col1=n, col2=n)) |
From: <sub...@co...> - 2009-08-13 16:48:33
|
Author: phd Date: 2009-08-13 10:48:12 -0600 (Thu, 13 Aug 2009) New Revision: 3953 Modified: SQLObject/branches/0.11/sqlobject/tests/test_unicode.py Log: SET client_encoding TO latin1 to fix the test. Modified: SQLObject/branches/0.11/sqlobject/tests/test_unicode.py =================================================================== --- SQLObject/branches/0.11/sqlobject/tests/test_unicode.py 2009-08-13 16:47:10 UTC (rev 3952) +++ SQLObject/branches/0.11/sqlobject/tests/test_unicode.py 2009-08-13 16:48:12 UTC (rev 3953) @@ -17,6 +17,7 @@ global items items = [] setupClass(TestUnicode) + TestUnicode._connection.query('SET client_encoding TO latin1') for i, n in enumerate(data): items.append(TestUnicode(count=i, col1=n, col2=n)) |
From: <sub...@co...> - 2009-08-13 16:47:22
|
Author: phd Date: 2009-08-13 10:47:10 -0600 (Thu, 13 Aug 2009) New Revision: 3952 Modified: SQLObject/branches/0.10/sqlobject/tests/test_unicode.py Log: SET client_encoding TO latin1 to fix the test. Modified: SQLObject/branches/0.10/sqlobject/tests/test_unicode.py =================================================================== --- SQLObject/branches/0.10/sqlobject/tests/test_unicode.py 2009-08-13 16:33:10 UTC (rev 3951) +++ SQLObject/branches/0.10/sqlobject/tests/test_unicode.py 2009-08-13 16:47:10 UTC (rev 3952) @@ -17,6 +17,7 @@ global items items = [] setupClass(TestUnicode) + TestUnicode._connection.query('SET client_encoding TO latin1') for i, n in enumerate(data): items.append(TestUnicode(count=i, col1=n, col2=n)) |
From: <sub...@co...> - 2009-08-13 16:33:20
|
Author: phd Date: 2009-08-13 10:33:10 -0600 (Thu, 13 Aug 2009) New Revision: 3951 Modified: SQLObject/trunk/sqlobject/mysql/mysqlconnection.py Log: Removed deprecated parameter. Modified: SQLObject/trunk/sqlobject/mysql/mysqlconnection.py =================================================================== --- SQLObject/trunk/sqlobject/mysql/mysqlconnection.py 2009-08-13 16:32:31 UTC (rev 3950) +++ SQLObject/trunk/sqlobject/mysql/mysqlconnection.py 2009-08-13 16:33:10 UTC (rev 3951) @@ -1,7 +1,6 @@ from sqlobject import col from sqlobject.dbconnection import DBAPI from sqlobject.dberrors import * -from sqlobject.main import deprecated MySQLdb = None class ErrorMessage(str): @@ -46,9 +45,6 @@ self.dbEncoding = self.kw["charset"] = kw.pop("charset") else: self.dbEncoding = None - if "sqlobject_encoding" in kw: - del kw["sqlobject_encoding"] - deprecated("sqlobject_encoding is deprecated and no longer used.") # MySQLdb < 1.2.1: only ascii # MySQLdb = 1.2.1: only unicode |
From: <sub...@co...> - 2009-08-13 16:32:42
|
Author: phd Date: 2009-08-13 10:32:31 -0600 (Thu, 13 Aug 2009) New Revision: 3950 Modified: SQLObject/trunk/sqlobject/__init__.py Log: Fixed circular import problem. Modified: SQLObject/trunk/sqlobject/__init__.py =================================================================== --- SQLObject/trunk/sqlobject/__init__.py 2009-08-13 16:15:48 UTC (rev 3949) +++ SQLObject/trunk/sqlobject/__init__.py 2009-08-13 16:32:31 UTC (rev 3950) @@ -2,11 +2,11 @@ SQLObject 0.12 """ -from dbconnection import connectionForURI from col import * from index import * from joins import * from main import * from sqlbuilder import AND, OR, NOT, IN, LIKE, RLIKE, DESC, CONTAINSSTRING, const, func from styles import * +from dbconnection import connectionForURI import dberrors |
From: <sub...@co...> - 2009-08-13 16:16:00
|
Author: phd Date: 2009-08-13 10:15:48 -0600 (Thu, 13 Aug 2009) New Revision: 3949 Modified: SQLObject/trunk/docs/News.txt SQLObject/trunk/sqlobject/__init__.py Log: Removed deprecated functions. Modified: SQLObject/trunk/docs/News.txt =================================================================== --- SQLObject/trunk/docs/News.txt 2009-08-13 16:02:37 UTC (rev 3948) +++ SQLObject/trunk/docs/News.txt 2009-08-13 16:15:48 UTC (rev 3949) @@ -13,7 +13,7 @@ Features & Interface -------------------- -* Removed the last remaininig deprecated attribute. +* Removed deprecated attribute and functions. SQLObject 0.11 ============== Modified: SQLObject/trunk/sqlobject/__init__.py =================================================================== --- SQLObject/trunk/sqlobject/__init__.py 2009-08-13 16:02:37 UTC (rev 3948) +++ SQLObject/trunk/sqlobject/__init__.py 2009-08-13 16:15:48 UTC (rev 3949) @@ -2,53 +2,11 @@ SQLObject 0.12 """ -from main import * +from dbconnection import connectionForURI from col import * +from index import * +from joins import * +from main import * from sqlbuilder import AND, OR, NOT, IN, LIKE, RLIKE, DESC, CONTAINSSTRING, const, func from styles import * -from joins import * -from index import * -from dbconnection import connectionForURI import dberrors - -## Each of these imports allows the driver to install itself -## Then we set up some backward compatibility - -def _warn(msg): - import warnings - warnings.warn(msg, DeprecationWarning, stacklevel=2) - -import firebird as _firebird -def FirebirdConnection(*args, **kw): - _warn('FirebirdConnection is deprecated; use connectionForURI("firebird://...") or "from sqlobject.firebird import builder; FirebirdConnection = builder()"') - return _firebird.builder()(*args, **kw) - -import mysql as _mysql -def MySQLConnection(*args, **kw): - _warn('MySQLConnection is deprecated; use connectionForURI("mysql://...") or "from sqlobject.mysql import builder; MySQLConnection = builder()"') - return _mysql.builder()(*args, **kw) - -import postgres as _postgres -def PostgresConnection(*args, **kw): - _warn('PostgresConnection is deprecated; use connectionForURI("postgres://...") or "from sqlobject.postgres import builder; PostgresConnection = builder()"') - return _postgres.builder()(*args, **kw) - -import sqlite as _sqlite -def SQLiteConnection(*args, **kw): - _warn('SQLiteConnection is deprecated; use connectionForURI("sqlite://...") or "from sqlobject.sqlite import builder; SQLiteConnection = builder()"') - return _sqlite.builder()(*args, **kw) - -import sybase as _sybase -def SybaseConnection(*args, **kw): - _warn('SybaseConnection is deprecated; use connectionForURI("sybase://...") or "from sqlobject.sybase import builder; SybaseConnection = builder()"') - return _sybase.builder()(*args, **kw) - -import maxdb as _maxdb -def MaxdbConnection(*args, **kw): - _warn('MaxdbConnection is deprecated; use connectionForURI("maxdb://...") or "from sqlobject.maxdb import builder; MaxdbConnection = builder()"') - return _maxdb.builder()(*args, **kw) - -import mssql as _mssql -def MSSQLConnection(*args, **kw): - _warn('MssqlConnection is deprecated; use connectionForURI("mssql://...") or "from sqlobject.mssql import builder; MSSQLConnection = builder()"') - return _mssql.builder()(*args, **kw) |
From: <sub...@co...> - 2009-08-13 16:02:48
|
Author: phd Date: 2009-08-13 10:02:37 -0600 (Thu, 13 Aug 2009) New Revision: 3948 Modified: SQLObject/trunk/docs/News.txt SQLObject/trunk/sqlobject/main.py Log: Removed the last remaininig deprecated attribute. Modified: SQLObject/trunk/docs/News.txt =================================================================== --- SQLObject/trunk/docs/News.txt 2009-08-12 10:40:32 UTC (rev 3947) +++ SQLObject/trunk/docs/News.txt 2009-08-13 16:02:37 UTC (rev 3948) @@ -10,6 +10,11 @@ SQLObject (trunk) ================= +Features & Interface +-------------------- + +* Removed the last remaininig deprecated attribute. + SQLObject 0.11 ============== Modified: SQLObject/trunk/sqlobject/main.py =================================================================== --- SQLObject/trunk/sqlobject/main.py 2009-08-12 10:40:32 UTC (rev 3947) +++ SQLObject/trunk/sqlobject/main.py 2009-08-13 16:02:37 UTC (rev 3948) @@ -658,9 +658,9 @@ warnings_level = 1 exception_level = None # Current levels: -# 1) Actively deprecated in version after 0.9; removed after -# 2) Deprecated after 1 (0.9?) -# 3) Deprecated after 2 (0.10?) +# 1) Actively deprecated +# 2) Deprecated after 1 +# 3) Deprecated after 2 def deprecated(message, level=1, stacklevel=2): if exception_level is not None and exception_level <= level: @@ -814,8 +814,6 @@ classregistry.registry(cls.sqlmeta.registry).addClass(cls) - _expired = _sqlmeta_attr('expired', 1) - # @classmethod def _SO_setupSqlmeta(cls, new_attrs, is_base): """ @@ -866,7 +864,7 @@ been deprecated; they are moved to the sqlmeta class, and a deprecation warning is given. """ - for attr in ['_expired']: + for attr in (): if new_attrs.has_key(attr): deprecated("%r is deprecated and read-only; please do " "not use it in your classes until it is fully " |
From: <sub...@co...> - 2009-08-12 10:40:45
|
Author: phd Date: 2009-08-12 04:40:32 -0600 (Wed, 12 Aug 2009) New Revision: 3947 Modified: SQLObject/trunk/docs/News.txt Log: SQLObject 0.11 released 12 Aug 2009 Modified: SQLObject/trunk/docs/News.txt =================================================================== --- SQLObject/trunk/docs/News.txt 2009-08-12 10:18:24 UTC (rev 3946) +++ SQLObject/trunk/docs/News.txt 2009-08-12 10:40:32 UTC (rev 3947) @@ -13,6 +13,8 @@ SQLObject 0.11 ============== +Released 12 Aug 2009 + Features & Interface -------------------- |
From: <sub...@co...> - 2009-08-12 10:18:30
|
Author: phd Date: 2009-08-12 04:18:24 -0600 (Wed, 12 Aug 2009) New Revision: 3946 Modified: SQLObject/tags/0.11.0/setup.cfg SQLObject/tags/0.11.0/setup.py SQLObject/tags/0.11.0/sqlobject/__init__.py SQLObject/tags/0.11.0/sqlobject/main.py Log: Stable version 0.11.0. Modified: SQLObject/tags/0.11.0/setup.cfg =================================================================== --- SQLObject/tags/0.11.0/setup.cfg 2009-08-12 10:16:52 UTC (rev 3945) +++ SQLObject/tags/0.11.0/setup.cfg 2009-08-12 10:18:24 UTC (rev 3946) @@ -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/0.11.0/setup.py =================================================================== --- SQLObject/tags/0.11.0/setup.py 2009-08-12 10:16:52 UTC (rev 3945) +++ SQLObject/tags/0.11.0/setup.py 2009-08-12 10:18:24 UTC (rev 3946) @@ -21,7 +21,7 @@ """ setup(name="SQLObject", - version="0.11", + version="0.11.0", description="Object-Relational Manager, aka database wrapper", long_description="""\ SQLObject is a popular *Object Relational Manager* for providing an Modified: SQLObject/tags/0.11.0/sqlobject/__init__.py =================================================================== --- SQLObject/tags/0.11.0/sqlobject/__init__.py 2009-08-12 10:16:52 UTC (rev 3945) +++ SQLObject/tags/0.11.0/sqlobject/__init__.py 2009-08-12 10:18:24 UTC (rev 3946) @@ -1,5 +1,5 @@ """ -SQLObject 0.11 +SQLObject 0.11.0 """ from main import * Modified: SQLObject/tags/0.11.0/sqlobject/main.py =================================================================== --- SQLObject/tags/0.11.0/sqlobject/main.py 2009-08-12 10:16:52 UTC (rev 3945) +++ SQLObject/tags/0.11.0/sqlobject/main.py 2009-08-12 10:18:24 UTC (rev 3946) @@ -1,6 +1,6 @@ """ -SQLObject 0.11 --------------- +SQLObject 0.11.0 +---------------- :author: Ian Bicking <ia...@co...> |
From: <sub...@co...> - 2009-08-12 10:17:04
|
Author: phd Date: 2009-08-12 04:16:52 -0600 (Wed, 12 Aug 2009) New Revision: 3945 Added: SQLObject/tags/0.11.0/ Log: Tagging 0.11.0 Copied: SQLObject/tags/0.11.0 (from rev 3944, SQLObject/branches/0.11) |
From: <sub...@co...> - 2009-08-12 10:15:20
|
Author: phd Date: 2009-08-12 04:15:02 -0600 (Wed, 12 Aug 2009) New Revision: 3944 Modified: SQLObject/branches/0.11/docs/News.txt Log: SQLObject 0.11.0 released 12 Aug 2009. Modified: SQLObject/branches/0.11/docs/News.txt =================================================================== --- SQLObject/branches/0.11/docs/News.txt 2009-08-06 17:20:43 UTC (rev 3943) +++ SQLObject/branches/0.11/docs/News.txt 2009-08-12 10:15:02 UTC (rev 3944) @@ -10,6 +10,8 @@ SQLObject 0.11.0 ================ +Released 12 Aug 2009 + Features & Interface -------------------- |
From: <sub...@co...> - 2009-08-05 17:09:01
|
Author: phd Date: 2009-08-05 11:08:43 -0600 (Wed, 05 Aug 2009) New Revision: 3940 Modified: SQLObject/trunk/README.txt SQLObject/trunk/docs/News.txt SQLObject/trunk/setup.py SQLObject/trunk/sqlobject/__init__.py SQLObject/trunk/sqlobject/main.py Log: The trunk will be SQLObject 0.12. Modified: SQLObject/trunk/README.txt =================================================================== --- SQLObject/trunk/README.txt 2009-08-05 16:28:55 UTC (rev 3939) +++ SQLObject/trunk/README.txt 2009-08-05 17:08:43 UTC (rev 3940) @@ -1,4 +1,4 @@ -SQLObject 0.11 +SQLObject 0.12 ============== Thanks for looking at SQLObject. SQLObject is an object-relational Modified: SQLObject/trunk/docs/News.txt =================================================================== --- SQLObject/trunk/docs/News.txt 2009-08-05 16:28:55 UTC (rev 3939) +++ SQLObject/trunk/docs/News.txt 2009-08-05 17:08:43 UTC (rev 3940) @@ -10,6 +10,9 @@ SQLObject (trunk) ================= +SQLObject 0.11 +============== + Features & Interface -------------------- Modified: SQLObject/trunk/setup.py =================================================================== --- SQLObject/trunk/setup.py 2009-08-05 16:28:55 UTC (rev 3939) +++ SQLObject/trunk/setup.py 2009-08-05 17:08:43 UTC (rev 3940) @@ -21,7 +21,7 @@ """ setup(name="SQLObject", - version="0.11", + version="0.12", description="Object-Relational Manager, aka database wrapper", long_description="""\ SQLObject is a popular *Object Relational Manager* for providing an @@ -35,7 +35,7 @@ Supports MySQL, PostgreSQL, SQLite, Firebird, Sybase, MSSQL and MaxDB (SAPDB). For development see the `subversion repository -<http://svn.colorstudy.com/SQLObject/trunk#egg=SQLObject-0.11dev>`_ +<http://svn.colorstudy.com/SQLObject/trunk#egg=SQLObject-0.12dev>`_ """, classifiers=[ "Development Status :: 5 - Production/Stable", Modified: SQLObject/trunk/sqlobject/__init__.py =================================================================== --- SQLObject/trunk/sqlobject/__init__.py 2009-08-05 16:28:55 UTC (rev 3939) +++ SQLObject/trunk/sqlobject/__init__.py 2009-08-05 17:08:43 UTC (rev 3940) @@ -1,5 +1,5 @@ """ -SQLObject 0.11 +SQLObject 0.12 """ from main import * Modified: SQLObject/trunk/sqlobject/main.py =================================================================== --- SQLObject/trunk/sqlobject/main.py 2009-08-05 16:28:55 UTC (rev 3939) +++ SQLObject/trunk/sqlobject/main.py 2009-08-05 17:08:43 UTC (rev 3940) @@ -1,5 +1,5 @@ """ -SQLObject 0.11 +SQLObject 0.12 -------------- :author: Ian Bicking <ia...@co...> |
From: <sub...@co...> - 2009-08-05 16:29:10
|
Author: phd Date: 2009-08-05 10:28:55 -0600 (Wed, 05 Aug 2009) New Revision: 3939 Modified: SQLObject/tags/0.11.0b1/setup.cfg SQLObject/tags/0.11.0b1/setup.py SQLObject/tags/0.11.0b1/sqlobject/__init__.py SQLObject/tags/0.11.0b1/sqlobject/main.py Log: Version 0.11.0b1. Modified: SQLObject/tags/0.11.0b1/setup.cfg =================================================================== --- SQLObject/tags/0.11.0b1/setup.cfg 2009-08-05 16:27:33 UTC (rev 3938) +++ SQLObject/tags/0.11.0b1/setup.cfg 2009-08-05 16:28:55 UTC (rev 3939) @@ -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/0.11.0b1/setup.py =================================================================== --- SQLObject/tags/0.11.0b1/setup.py 2009-08-05 16:27:33 UTC (rev 3938) +++ SQLObject/tags/0.11.0b1/setup.py 2009-08-05 16:28:55 UTC (rev 3939) @@ -21,7 +21,7 @@ """ setup(name="SQLObject", - version="0.11", + version="0.11.0b1", description="Object-Relational Manager, aka database wrapper", long_description="""\ SQLObject is a popular *Object Relational Manager* for providing an @@ -35,7 +35,7 @@ Supports MySQL, PostgreSQL, SQLite, Firebird, Sybase, MSSQL and MaxDB (SAPDB). For development see the `subversion repository -<http://svn.colorstudy.com/SQLObject/trunk#egg=SQLObject-0.11dev>`_ +<http://svn.colorstudy.com/SQLObject/branches/0.11>`_ """, classifiers=[ "Development Status :: 5 - Production/Stable", Modified: SQLObject/tags/0.11.0b1/sqlobject/__init__.py =================================================================== --- SQLObject/tags/0.11.0b1/sqlobject/__init__.py 2009-08-05 16:27:33 UTC (rev 3938) +++ SQLObject/tags/0.11.0b1/sqlobject/__init__.py 2009-08-05 16:28:55 UTC (rev 3939) @@ -1,5 +1,5 @@ """ -SQLObject 0.11 +SQLObject 0.11.0b1 """ from main import * Modified: SQLObject/tags/0.11.0b1/sqlobject/main.py =================================================================== --- SQLObject/tags/0.11.0b1/sqlobject/main.py 2009-08-05 16:27:33 UTC (rev 3938) +++ SQLObject/tags/0.11.0b1/sqlobject/main.py 2009-08-05 16:28:55 UTC (rev 3939) @@ -1,6 +1,6 @@ """ -SQLObject 0.11 --------------- +SQLObject 0.11.0b1 +------------------ :author: Ian Bicking <ia...@co...> |
From: <sub...@co...> - 2009-08-05 16:28:02
|
Author: phd Date: 2009-08-05 10:27:33 -0600 (Wed, 05 Aug 2009) New Revision: 3938 Modified: SQLObject/branches/0.11/setup.py Log: branches/0.11. Modified: SQLObject/branches/0.11/setup.py =================================================================== --- SQLObject/branches/0.11/setup.py 2009-08-05 16:23:42 UTC (rev 3937) +++ SQLObject/branches/0.11/setup.py 2009-08-05 16:27:33 UTC (rev 3938) @@ -35,7 +35,7 @@ Supports MySQL, PostgreSQL, SQLite, Firebird, Sybase, MSSQL and MaxDB (SAPDB). For development see the `subversion repository -<http://svn.colorstudy.com/SQLObject/trunk#egg=SQLObject-0.11dev>`_ +<http://svn.colorstudy.com/SQLObject/branches/0.11>`_ """, classifiers=[ "Development Status :: 5 - Production/Stable", |
From: <sub...@co...> - 2009-08-05 16:24:12
|
Author: phd Date: 2009-08-05 10:23:42 -0600 (Wed, 05 Aug 2009) New Revision: 3937 Added: SQLObject/tags/0.11.0b1/ Log: Tagging 0.11.0b1 Copied: SQLObject/tags/0.11.0b1 (from rev 3936, SQLObject/branches/0.11) |
From: <sub...@co...> - 2009-08-05 16:13:08
|
Author: phd Date: 2009-08-05 10:12:47 -0600 (Wed, 05 Aug 2009) New Revision: 3936 Modified: SQLObject/branches/0.11/docs/News.txt Log: SQLObject 0.11. Modified: SQLObject/branches/0.11/docs/News.txt =================================================================== --- SQLObject/branches/0.11/docs/News.txt 2009-08-05 16:07:20 UTC (rev 3935) +++ SQLObject/branches/0.11/docs/News.txt 2009-08-05 16:12:47 UTC (rev 3936) @@ -7,8 +7,8 @@ .. _start: -SQLObject (trunk) -================= +SQLObject 0.11.0 +================ Features & Interface -------------------- |
From: <sub...@co...> - 2009-08-05 16:07:48
|
Author: phd Date: 2009-08-05 10:07:20 -0600 (Wed, 05 Aug 2009) New Revision: 3935 Added: SQLObject/branches/0.11/ Log: Branch 0.11 Copied: SQLObject/branches/0.11 (from rev 3934, SQLObject/trunk) |
From: <sub...@co...> - 2009-07-25 11:11:56
|
Author: phd Date: 2009-07-25 05:11:46 -0600 (Sat, 25 Jul 2009) New Revision: 3929 Removed: SQLObject/trunk/docs/FAQ.comments.txt SQLObject/trunk/docs/SQLObject.comments.txt SQLObject/trunk/docs/index.comments.txt SQLObject/trunk/docs/sqlobject-admin.comments.txt Modified: SQLObject/trunk/docs/rebuild Log: Merged revision 3928 from 0.10 branch: removed old (almost) empty doc files; build all *.txt. Deleted: SQLObject/trunk/docs/FAQ.comments.txt =================================================================== --- SQLObject/trunk/docs/FAQ.comments.txt 2009-07-25 11:09:01 UTC (rev 3928) +++ SQLObject/trunk/docs/FAQ.comments.txt 2009-07-25 11:11:46 UTC (rev 3929) @@ -1,9 +0,0 @@ -==== $(how-can-i-do-a-left-join) c + ----------------------------------------- -date: 2006-01-03T14:32:21 -email: b.n...@rl... -id: 1 -ip: 86.143.215.248 -username: bryan - -Ian, this works fine from Mozilla, but not from konqueror ... what exactly Deleted: SQLObject/trunk/docs/SQLObject.comments.txt =================================================================== --- SQLObject/trunk/docs/SQLObject.comments.txt 2009-07-25 11:09:01 UTC (rev 3928) +++ SQLObject/trunk/docs/SQLObject.comments.txt 2009-07-25 11:11:46 UTC (rev 3929) @@ -1,63 +0,0 @@ -==== $(left-join-and-other-joins) c ++ ----------------------------------------- -date: 2005-12-07T08:36:44 -email: mk...@em... -id: 3 -ip: 208.255.226.178 -username: Mike Kent - -It's probably just me, but I'm finding this part quite confusing. You'd use a left join to join two tables together, but this example refers to THREE tables, MyTable, Table1, and Table2. I haven't been able to grasp what's going on. -==== $(one-to-many-relationships) c ++++ ----------------------------------------- -date: 2005-12-07T08:46:22 -email: mk...@em... -id: 4 -ip: 208.255.226.178 -username: Mike Kent - -If I have this correctly: For a one-to-many relationship, you use 'ForeignKey' on the 'has one' side, and you use 'MultipleJoin' on the 'has many' side. I found this to be incredibly non-intuitive and confusing. How about 'hasOneOf' and 'hasManyOf'? Or would this cause a problem with a many-to-many relationship, since both sides would use 'hasManyOf'? -==== $(col-class-specifying-columns) c ++ c +++++ c ----------------------------------------- -date: 2005-12-07T08:52:14 -email: mk...@em... -id: 5 -ip: 208.255.226.178 -username: Mike Kent - -So if you declare a column as an alternateID, unique is implied, and we don't need to explicitly declare it?shouldn't this be protected??? -==== $(orderby) + ----------------------------------------- -date: 2005-12-08T10:47:35 -email: ch...@wo... -id: 9 -ip: 134.84.144.61 -username: Chad Walstrom - -Text turned grey here. This renders the text in the following Note unreadable unless you mouse-over. -==== $(selecting-multiple-objects) ----------------------------------------- -date: 2006-01-04T14:47:33 -email: jw...@jw... -id: 10 -ip: 128.197.24.59 -username: Joe - -Think about breaking these SELECT statements onto several lines. They're busting out of the page design now. -==== $(col-class-specifying-columns) c ++ c +++++ c + ----------------------------------------- -date: 2006-02-02T15:43:28 -email: Man -id: 11 -ip: 192.100.104.28 -username: Big - -StringCol's that are alternateID's must have a length property if you use them in MySQL. -==== $(relatedjoin-many-to-many) c ++++ ----------------------------------------- -date: 2006-05-18T14:17:19 -email: we...@or... -id: 12 -ip: 209.204.147.64 -username: Jonathan Wellons - -What is the advantage over traditional relations? Deleted: SQLObject/trunk/docs/index.comments.txt =================================================================== --- SQLObject/trunk/docs/index.comments.txt 2009-07-25 11:09:01 UTC (rev 3928) +++ SQLObject/trunk/docs/index.comments.txt 2009-07-25 11:11:46 UTC (rev 3929) @@ -1,16 +0,0 @@ -==== $(example) c ----------------------------------------- -date: 2006-01-31T06:42:16 -id: 2 -ip: 84.190.227.75 -username: MB - -Sie werden jeweils nach Doppelklick gespeichert. -==== $(example) c + ----------------------------------------- -date: 2006-01-31T06:42:36 -id: 3 -ip: 84.190.227.75 -username: MB - -Auch an unterschiedlichen Stellen geht das Modified: SQLObject/trunk/docs/rebuild =================================================================== --- SQLObject/trunk/docs/rebuild 2009-07-25 11:09:01 UTC (rev 3928) +++ SQLObject/trunk/docs/rebuild 2009-07-25 11:11:46 UTC (rev 3929) @@ -7,8 +7,7 @@ NORMAL="Authors DeveloperGuide FAQ Inheritance News SQLBuilder SQLObject SelectResults TODO Versioning Views - web/index web/links web/repository web/community - index community sqlobject-architecture sqlobject-admin" + community download index links sqlobject-admin sqlobject-architecture" for NAME in $NORMAL ; do if [ -e "$NAME.html" -a ! "$NAME.html" -ot "$NAME.txt" ] ; then @@ -19,5 +18,3 @@ rst2html.py --no-toc-backlinks --stylesheet=default.css --link-stylesheet \ -- "$NAME.txt" > "$NAME.html" done - -exec source-highlight -f html interface.py Deleted: SQLObject/trunk/docs/sqlobject-admin.comments.txt =================================================================== |
From: <sub...@co...> - 2009-07-25 11:09:11
|
Author: phd Date: 2009-07-25 05:09:01 -0600 (Sat, 25 Jul 2009) New Revision: 3928 Removed: SQLObject/branches/0.10/docs/FAQ.comments.txt SQLObject/branches/0.10/docs/SQLObject.comments.txt SQLObject/branches/0.10/docs/index.comments.txt SQLObject/branches/0.10/docs/sqlobject-admin.comments.txt Modified: SQLObject/branches/0.10/docs/rebuild Log: Removed old (almost) empty doc files; build all *.txt. Deleted: SQLObject/branches/0.10/docs/FAQ.comments.txt =================================================================== --- SQLObject/branches/0.10/docs/FAQ.comments.txt 2009-07-25 11:05:09 UTC (rev 3927) +++ SQLObject/branches/0.10/docs/FAQ.comments.txt 2009-07-25 11:09:01 UTC (rev 3928) @@ -1,9 +0,0 @@ -==== $(how-can-i-do-a-left-join) c + ----------------------------------------- -date: 2006-01-03T14:32:21 -email: b.n...@rl... -id: 1 -ip: 86.143.215.248 -username: bryan - -Ian, this works fine from Mozilla, but not from konqueror ... what exactly Deleted: SQLObject/branches/0.10/docs/SQLObject.comments.txt =================================================================== --- SQLObject/branches/0.10/docs/SQLObject.comments.txt 2009-07-25 11:05:09 UTC (rev 3927) +++ SQLObject/branches/0.10/docs/SQLObject.comments.txt 2009-07-25 11:09:01 UTC (rev 3928) @@ -1,63 +0,0 @@ -==== $(left-join-and-other-joins) c ++ ----------------------------------------- -date: 2005-12-07T08:36:44 -email: mk...@em... -id: 3 -ip: 208.255.226.178 -username: Mike Kent - -It's probably just me, but I'm finding this part quite confusing. You'd use a left join to join two tables together, but this example refers to THREE tables, MyTable, Table1, and Table2. I haven't been able to grasp what's going on. -==== $(one-to-many-relationships) c ++++ ----------------------------------------- -date: 2005-12-07T08:46:22 -email: mk...@em... -id: 4 -ip: 208.255.226.178 -username: Mike Kent - -If I have this correctly: For a one-to-many relationship, you use 'ForeignKey' on the 'has one' side, and you use 'MultipleJoin' on the 'has many' side. I found this to be incredibly non-intuitive and confusing. How about 'hasOneOf' and 'hasManyOf'? Or would this cause a problem with a many-to-many relationship, since both sides would use 'hasManyOf'? -==== $(col-class-specifying-columns) c ++ c +++++ c ----------------------------------------- -date: 2005-12-07T08:52:14 -email: mk...@em... -id: 5 -ip: 208.255.226.178 -username: Mike Kent - -So if you declare a column as an alternateID, unique is implied, and we don't need to explicitly declare it?shouldn't this be protected??? -==== $(orderby) + ----------------------------------------- -date: 2005-12-08T10:47:35 -email: ch...@wo... -id: 9 -ip: 134.84.144.61 -username: Chad Walstrom - -Text turned grey here. This renders the text in the following Note unreadable unless you mouse-over. -==== $(selecting-multiple-objects) ----------------------------------------- -date: 2006-01-04T14:47:33 -email: jw...@jw... -id: 10 -ip: 128.197.24.59 -username: Joe - -Think about breaking these SELECT statements onto several lines. They're busting out of the page design now. -==== $(col-class-specifying-columns) c ++ c +++++ c + ----------------------------------------- -date: 2006-02-02T15:43:28 -email: Man -id: 11 -ip: 192.100.104.28 -username: Big - -StringCol's that are alternateID's must have a length property if you use them in MySQL. -==== $(relatedjoin-many-to-many) c ++++ ----------------------------------------- -date: 2006-05-18T14:17:19 -email: we...@or... -id: 12 -ip: 209.204.147.64 -username: Jonathan Wellons - -What is the advantage over traditional relations? Deleted: SQLObject/branches/0.10/docs/index.comments.txt =================================================================== --- SQLObject/branches/0.10/docs/index.comments.txt 2009-07-25 11:05:09 UTC (rev 3927) +++ SQLObject/branches/0.10/docs/index.comments.txt 2009-07-25 11:09:01 UTC (rev 3928) @@ -1,16 +0,0 @@ -==== $(example) c ----------------------------------------- -date: 2006-01-31T06:42:16 -id: 2 -ip: 84.190.227.75 -username: MB - -Sie werden jeweils nach Doppelklick gespeichert. -==== $(example) c + ----------------------------------------- -date: 2006-01-31T06:42:36 -id: 3 -ip: 84.190.227.75 -username: MB - -Auch an unterschiedlichen Stellen geht das Modified: SQLObject/branches/0.10/docs/rebuild =================================================================== --- SQLObject/branches/0.10/docs/rebuild 2009-07-25 11:05:09 UTC (rev 3927) +++ SQLObject/branches/0.10/docs/rebuild 2009-07-25 11:09:01 UTC (rev 3928) @@ -7,8 +7,7 @@ NORMAL="Authors DeveloperGuide FAQ Inheritance News SQLBuilder SQLObject SelectResults TODO Versioning Views - web/index web/links web/repository web/community - index community sqlobject-architecture sqlobject-admin" + community download index links sqlobject-admin sqlobject-architecture" for NAME in $NORMAL ; do if [ -e "$NAME.html" -a ! "$NAME.html" -ot "$NAME.txt" ] ; then @@ -19,5 +18,3 @@ rst2html.py --no-toc-backlinks --stylesheet=default.css --link-stylesheet \ -- "$NAME.txt" > "$NAME.html" done - -exec source-highlight -f html interface.py Deleted: SQLObject/branches/0.10/docs/sqlobject-admin.comments.txt =================================================================== |
From: <sub...@co...> - 2009-07-25 11:05:17
|
Author: phd Date: 2009-07-25 05:05:09 -0600 (Sat, 25 Jul 2009) New Revision: 3927 Removed: SQLObject/branches/0.9/docs/SQLObject.comments.txt Modified: SQLObject/branches/0.9/docs/rebuild Log: Removed SQLObject.comments.txt. Deleted: SQLObject/branches/0.9/docs/SQLObject.comments.txt =================================================================== --- SQLObject/branches/0.9/docs/SQLObject.comments.txt 2009-07-25 11:01:07 UTC (rev 3926) +++ SQLObject/branches/0.9/docs/SQLObject.comments.txt 2009-07-25 11:05:09 UTC (rev 3927) @@ -1,63 +0,0 @@ -==== $(left-join-and-other-joins) c ++ ----------------------------------------- -date: 2005-12-07T08:36:44 -email: mk...@em... -id: 3 -ip: 208.255.226.178 -username: Mike Kent - -It's probably just me, but I'm finding this part quite confusing. You'd use a left join to join two tables together, but this example refers to THREE tables, MyTable, Table1, and Table2. I haven't been able to grasp what's going on. -==== $(one-to-many-relationships) c ++++ ----------------------------------------- -date: 2005-12-07T08:46:22 -email: mk...@em... -id: 4 -ip: 208.255.226.178 -username: Mike Kent - -If I have this correctly: For a one-to-many relationship, you use 'ForeignKey' on the 'has one' side, and you use 'MultipleJoin' on the 'has many' side. I found this to be incredibly non-intuitive and confusing. How about 'hasOneOf' and 'hasManyOf'? Or would this cause a problem with a many-to-many relationship, since both sides would use 'hasManyOf'? -==== $(col-class-specifying-columns) c ++ c +++++ c ----------------------------------------- -date: 2005-12-07T08:52:14 -email: mk...@em... -id: 5 -ip: 208.255.226.178 -username: Mike Kent - -So if you declare a column as an alternateID, unique is implied, and we don't need to explicitly declare it?shouldn't this be protected??? -==== $(orderby) + ----------------------------------------- -date: 2005-12-08T10:47:35 -email: ch...@wo... -id: 9 -ip: 134.84.144.61 -username: Chad Walstrom - -Text turned grey here. This renders the text in the following Note unreadable unless you mouse-over. -==== $(selecting-multiple-objects) ----------------------------------------- -date: 2006-01-04T14:47:33 -email: jw...@jw... -id: 10 -ip: 128.197.24.59 -username: Joe - -Think about breaking these SELECT statements onto several lines. They're busting out of the page design now. -==== $(col-class-specifying-columns) c ++ c +++++ c + ----------------------------------------- -date: 2006-02-02T15:43:28 -email: Man -id: 11 -ip: 192.100.104.28 -username: Big - -StringCol's that are alternateID's must have a length property if you use them in MySQL. -==== $(relatedjoin-many-to-many) c ++++ ----------------------------------------- -date: 2006-05-18T14:17:19 -email: we...@or... -id: 12 -ip: 209.204.147.64 -username: Jonathan Wellons - -What is the advantage over traditional relations? Modified: SQLObject/branches/0.9/docs/rebuild =================================================================== --- SQLObject/branches/0.9/docs/rebuild 2009-07-25 11:01:07 UTC (rev 3926) +++ SQLObject/branches/0.9/docs/rebuild 2009-07-25 11:05:09 UTC (rev 3927) @@ -6,8 +6,8 @@ export PYTHONPATH=$parent:$PYTHONPATH NORMAL="Authors DeveloperGuide FAQ Inheritance News - SQLBuilder SQLObject SQLObject.comments TODO Versioning - community download index links sqlobject-admin sqlobject-architecture" + SQLBuilder SQLObject TODO Versioning community download index + links sqlobject-admin sqlobject-architecture" for NAME in $NORMAL ; do if [ -e "$NAME.html" -a ! "$NAME.html" -ot "$NAME.txt" ] ; then |
From: <sub...@co...> - 2009-07-25 11:01:20
|
Author: phd Date: 2009-07-25 05:01:07 -0600 (Sat, 25 Jul 2009) New Revision: 3926 Removed: SQLObject/branches/0.9/docs/FAQ.comments.txt SQLObject/branches/0.9/docs/index.comments.txt SQLObject/branches/0.9/docs/sqlobject-admin.comments.txt Modified: SQLObject/branches/0.9/docs/rebuild Log: Removed old (almost) empty doc files; build all *.txt. Deleted: SQLObject/branches/0.9/docs/FAQ.comments.txt =================================================================== --- SQLObject/branches/0.9/docs/FAQ.comments.txt 2009-07-25 10:50:07 UTC (rev 3925) +++ SQLObject/branches/0.9/docs/FAQ.comments.txt 2009-07-25 11:01:07 UTC (rev 3926) @@ -1,9 +0,0 @@ -==== $(how-can-i-do-a-left-join) c + ----------------------------------------- -date: 2006-01-03T14:32:21 -email: b.n...@rl... -id: 1 -ip: 86.143.215.248 -username: bryan - -Ian, this works fine from Mozilla, but not from konqueror ... what exactly Deleted: SQLObject/branches/0.9/docs/index.comments.txt =================================================================== --- SQLObject/branches/0.9/docs/index.comments.txt 2009-07-25 10:50:07 UTC (rev 3925) +++ SQLObject/branches/0.9/docs/index.comments.txt 2009-07-25 11:01:07 UTC (rev 3926) @@ -1,16 +0,0 @@ -==== $(example) c ----------------------------------------- -date: 2006-01-31T06:42:16 -id: 2 -ip: 84.190.227.75 -username: MB - -Sie werden jeweils nach Doppelklick gespeichert. -==== $(example) c + ----------------------------------------- -date: 2006-01-31T06:42:36 -id: 3 -ip: 84.190.227.75 -username: MB - -Auch an unterschiedlichen Stellen geht das Modified: SQLObject/branches/0.9/docs/rebuild =================================================================== --- SQLObject/branches/0.9/docs/rebuild 2009-07-25 10:50:07 UTC (rev 3925) +++ SQLObject/branches/0.9/docs/rebuild 2009-07-25 11:01:07 UTC (rev 3926) @@ -5,10 +5,9 @@ echo "Adding $parent to \$PYTHONPATH" export PYTHONPATH=$parent:$PYTHONPATH -NORMAL="Authors DeveloperGuide FAQ Inheritance News SQLBuilder - SQLObject TODO Versioning - web/index web/links web/repository web/community - index community sqlobject-architecture sqlobject-admin" +NORMAL="Authors DeveloperGuide FAQ Inheritance News + SQLBuilder SQLObject SQLObject.comments TODO Versioning + community download index links sqlobject-admin sqlobject-architecture" for NAME in $NORMAL ; do if [ -e "$NAME.html" -a ! "$NAME.html" -ot "$NAME.txt" ] ; then @@ -19,5 +18,3 @@ rst2html.py --no-toc-backlinks --stylesheet=default.css --link-stylesheet \ -- "$NAME.txt" > "$NAME.html" done - -source-highlight -f html interface.py Deleted: SQLObject/branches/0.9/docs/sqlobject-admin.comments.txt =================================================================== |
From: <sub...@co...> - 2009-07-25 10:50:18
|
Author: phd Date: 2009-07-25 04:50:07 -0600 (Sat, 25 Jul 2009) New Revision: 3925 Removed: SQLObject/trunk/docs/News1.txt Modified: SQLObject/trunk/docs/News.txt SQLObject/trunk/docs/rebuild SQLObject/trunk/setup.cfg Log: Removed old news. Modified: SQLObject/trunk/docs/News.txt =================================================================== --- SQLObject/trunk/docs/News.txt 2009-07-25 10:44:06 UTC (rev 3924) +++ SQLObject/trunk/docs/News.txt 2009-07-25 10:50:07 UTC (rev 3925) @@ -311,7 +311,7 @@ Released 10 Jan 2008. -* A number of changes ported from `SQLObject 0.7.10`_. +* A number of changes ported from SQLObject 0.7.10. SQLObject 0.9.2 =============== @@ -325,7 +325,7 @@ * Fixed bugs in SQLiteConnection.guessColumn(). -* A number of changes ported from `SQLObject 0.7.9`_ and `SQLObject 0.8.6`_. +* A number of changes ported from SQLObject 0.7.9 and SQLObject 0.8.6. SQLObject 0.9.1 =============== @@ -337,7 +337,7 @@ * Fixed misspelled methods in col.py. -* A number of bugfixes ported from `SQLObject 0.7.8`_ and `SQLObject 0.8.5`_. +* A number of bugfixes ported from SQLObject 0.7.8 and SQLObject 0.8.5. SQLObject 0.9.0 =============== @@ -396,596 +396,6 @@ * idName can be inherited from the parent sqlmeta class. -SQLObject 0.8.7 -=============== - -Released 10 Jan 2008. - -* A number of changes ported from `SQLObject 0.7.10`_. - -SQLObject 0.8.6 -=============== - -Released 30 Oct 2007. - -* Removed SelectResults.__nonzero__, which was a design mistake. Raising an - exception in __nonzero__() is inconsistent with other iterators - (bool(iter([])) => True). - -* A number of changes ported from `SQLObject 0.7.9`_. - -SQLObject 0.8.5 -=============== - -Released 25 July 2007. - -Bug Fixes ---------- - -* Suppress the second RowUpdateSignal in .set() called from ._SO_setValue(). - -SQLObject 0.8.4 -=============== - -Released 10 May 2007. - -Bug Fixes ---------- - -* A number of bugfixes forward-ported from 0.7.7. - -SQLObject 0.8.3 -=============== - -Released 3 May 2007. - -Bug Fixes ---------- - -* A number of bugfixes forward-ported from 0.7.6. - -SQLObject 0.8.2 -=============== - -Released 11 Apr 2007. - -Bug Fixes ---------- - -* Fixed ConnectionHub.doInTransaction() - if the original connection was - processConnection - reset processConnection, not threadConnection. - -SQLObject 0.8.1 -=============== - -Released 19 Mar 2007. - -Bug Fixes ---------- - -* ID columns are reverted back from INT UNSIGNED to INT for MySQL to be in - accord with FOREIGN KEYs. - -* Fixed return value from Firebird/MaxdbConnection.createTable(). - -* Fixed and simplified DatabaseIndex.get(). - -* Fixed ConnectionHub.doInTransaction() - close low-level connection on - commit() to prevent connections leaking. - -SQLObject 0.8.0 -=============== - -Released 12 Feb 2007. - -Features & Interface --------------------- - -* It is now possible to create tables that reference each other. - Constraints (in the DBMSes that support constraints) are added after the - tables have been created. - -* Added ``createSQL`` as an option for sqlmeta. Here you can add - related SQL you want executed by sqlobject-admin create after table - creation. createSQL expects a string, list, or dictionary. If using - a dictionary the key should be a dbName value (ex. 'postgres') and - the value should be a string or list. Examples in - sqlobject/tests/test_sqlobject_admin.py or at - <http://sqlobject.org/sqlobject-admin.html#the-create-command> - -* Added method ``sqlhub.doInTransaction(callable, *args, **kwargs)``, - to be used like:: - - sqlhub.doInTransaction(process_request, os.environ) - - This will run ``process_request(os.environ)``. The return - value will be preserved. - -* Added method ``.getOne([default])`` to ``SelectResults`` (these are - the objects returned by ``.select()`` and ``.selectBy()``). This - returns a single object, when the query is expected to return only - one object. The single argument is the value to return when zero - results are found (more than one result is always an error). If no - default is given, it is an error if no such object exists. - -* Added a WSGI middleware (in ``sqlobject.wsgi_middleware``) for - configuring the database for the request. Also handles - transactions. Available as ``egg:SQLObject`` in Paste Deploy - configuration files. - -* New joins! ManyToMany and OneToMany; not fully documented yet, but still - more sensible and smarter. - -* SELECT FOR UPDATE - -* New module dberrors.py - a hierarchy of exceptions. Translation of DB API - module's exceptions to the new hierarchy is performed for SQLite and MySQL. - -* SQLiteConnection got a new keyword "factory" - a name or a reference to - a factory function that returns a connection class; useful for - implementing functions or aggregates. See test_select.py and - test_sqlite_factory.py for examples. - -* SQLObject now disallows columns with names that collide with existing - variables and methods, such as "_init", "expire", "set" and so on. - -Small Features --------------- - -* Configurable client character set (encoding) for MySQL. - -* Added a close option to .commit(), so you can close the transaction as - you commit it. - -* DecimalValidator. - -* Added .expireAll() methods to sqlmeta and connection objects, to expire - all instances in those cases. - -* String IDs. - -* FOREIGN KEY for MySQL. - -* Support for sqlite3 (a builtin module in Python 2.5). - -* SelectResults cannot be queried for truth value; in any case it was - meaningless - the result was always True; now __nonzero__() raises - NotImplementedError in case one tries bool(MyTable.select()) or - "if MyTable.select():..." - -* With empty parameters AND() and OR() returns None. - -* Allows to use set/frozenset sets/Set/ImmutableSet sets as sequences - passed to the IN operator. - -* ID columns are now INT UNSIGNED for MySQL. - -Bug Fixes ---------- - -* Fixed problem with sqlite and threads; connections are no longer shared - between threads for sqlite (except for :memory:). - -* The reference loop between SQLObject and SQLObjectState eliminated using - weak references. - -* Another round of bugfixes for MySQL errors 2006 and 2013 (SERVER_GONE, - SERVER_LOST). - -* Fixed a bug in MSSQLConnection caused by column names being unicode. - -* Fixed a bug in FirebirdConnection caused by column names having trailing - spaces. - -* Order by several columns with inheritance. - -* Fixed aggregators and accumulators with inheritance. - -SQLObject 0.7.10 -================ - -Released 10 Jan 2008. - -* With PySQLite2 do not use encode()/decode() from PySQLite1 - always use - base64 for BLOBs. - -* MySQLConnection doesn't convert query strings to unicode (but allows to - pass unicode query strings if the user build ones). DB URI parameter - sqlobject_encoding is no longer used. - -SQLObject 0.7.9 -=============== - -Released 30 Oct 2007. - -Bug Fixes ---------- - -* Remove 'limit' from SelectResults after setting start/end so .clone() - never sees limit again. - -* Fixed a bug in sqlbuilder._LikeQuoted() - call sqlrepr() on the - expression to escape single quotes if the expression is a string. - -* Fixed StringCol and UnicodeCol: use sqlType with MSSQL. - -* Fixed startswith/endswith/contains for UnicodeCol. - -Other Changes -------------- - -* Changed the default value for 'varchar' in BLOBColumns from 'auto' to False - (so that the default type for the columns in MySQL is BLOB, not TEXT). - -* Changed the implementation type in BoolCol under MySQL from TINYINT to - BOOL (which is a synonym for TINYINT(1)). - -SQLObject 0.7.8 -=============== - -Released 25 July 2007. - -Bug Fixes ---------- - -* Replaced calls to style.dbColumnToPythonAttr() in joins.py by name/dbName - lookup in case the user named columns differently using dbName. - -* Minor correction in the tests: we fully support EnumCol in Postgres. - -* MySQLConnection now recognizes Enum, Double and Time columns when drawing the - database scheme from DB. - -* Minor fix in FirebirdConnection.fromDatabase. - -* Fixed a bug with default field values for columns for Firebird connection. - -* Fixed a bug in col.createSQL(). - -* Fixed a bug in converting date/time for years < 1000 (time.strptime() - requires exactly 4 digits for %Y, hence a year < 1000 must be 0-padded). - -Other Changes -------------- - -* Changed string quoting style for PostgreSQL and MySQL from \\' to ''. - -SQLObject 0.7.7 -=============== - -Released 10 May 2007. - -Bug Fixes ---------- - -* Fixed a bug in SQLRelatedJoin that ignored per-instance connection. - -* Fixed a bug in MySQL connection in case there is no charset in the DB URI. - -SQLObject 0.7.6 -=============== - -Released 3 May 2007. - -Bug Fixes ---------- - -* Fixed a longstanding bug with .select() ignoring 'limit' parameter. - -* Fixed a bug with absent comma in JOINs. - -* Fixed sqlbuilder - .startswith(), .endswith() and .contains() assumed - their parameter must be a string; now you can pass an SQLExpression: - Table.q.name.contains(func.upper('a')), for example. - -* Fixed a longstanding bug in sqlbuilder.Select() with groupBy being a - sequence. - -* Fixed a bug with Aliases in JOINs. - -* Yet another patch to properly initialize MySQL connection encoding. - -* Fixed a minor comparison problem in test_decimal.py. - -* More documentation about orderBy. - -SQLObject 0.7.5 -=============== - -Released 11 Apr 2007. - -Bug Fixes ---------- - -* Fixed test_deep_inheritance.py - setup classes in the correct order - (required for Postgres 8.0+ which is strict about referential integrity). - -* Fixed a bug in DateValidator caused by datetime being a subclass of date. - -SQLObject 0.7.4 -=============== - -Released 19 Mar 2007. - -Small Features --------------- - -* For MySQLdb 1.2.2+ call ping(True) on the connection to allow - autoreconnect after a timeout. - -Bug Fixes ---------- - -* Another round of changes to create/drop the tables in the right order - in the command-line client `sqlobject-admin`. - -* Fixed a bug in UnicodeField - allow comparison with None. - -SQLObject 0.7.3 -=============== - -Released 30 Jan 2007. - -Bug Fixes ---------- - -* Allow multiple MSSQL connections. - -* Psycopg1 requires port to be a string; psycopg2 requires port to be an int. - -* Fixed a bug in MSSQLConnection caused by column names being unicode. - -* Fixed a bug in FirebirdConnection caused by column names having trailing - spaces. - -* Fixed a missed import in firebirdconnection.py. - -* Remove a leading slash in FirebirdConnection. - -* Fixed a bug in deep Inheritance tree. - -SQLObject 0.7.2 -=============== - -Released 20 Nov 2006. - -Features & Interface --------------------- - -* sqlbuilder.Select now supports JOINs exactly like SQLObject.select. - -* destroySelf() removes the object from related joins. - -Bug Fixes ---------- - -* Fixed a number of unicode-related problems with newer MySQLdb. - -* If the DB API driver returns timedelta instead of time (MySQLdb does - this) it is converted to time; but if the timedelta has days an exception - is raised. - -* Fixed a number of bugs in InheritableSQLObject related to foreign keys. - -* Fixed a bug in InheritableSQLObject related to the order of tableRegistry - dictionary. - -* A bug fix that allows to use SQLObject with DateTime from Zope. - -Documentation Added -------------------- - -* Added "How can I define my own intermediate table in my Many-to-Many - relationship?" to FAQ. - -SQLObject 0.7.1 -=============== - -Released 25 Sep 2006. - -Features & Interface --------------------- - -* Added support for psycopg2_ - -.. _psycopg2: http://initd.org/projects/psycopg2 - -* Added support for MSSQL. - -* Added ``TimeCol``. - -* ``RelatedJoin`` and ``SQLRelatedJoin`` objects have a - ``createRelatedTable`` keyword argument (default ``True``). If - ``False``, then the related table won't be automatically created; - instead you must manually create it (e.g., with explicit SQLObject - classes for the joins). - -* Implemented ``RLIKE`` (regular expression LIKE). - -* Moved _idSequence to sqlmeta.idSequence. - -Small Features --------------- - -* Select over RelatedJoin. - -* SQLite foreign keys. - -* Postgres DB URIs with a non-default path to unix socket. - -* Allow the use of foreign keys in selects. - -* Implemented addColumn() for SQLite. - -* With PySQLite2 use encode()/decode() from PySQLite1 for BLOBCol if available; else use base64. - -Bug Fixes ---------- - -* Fixed a longstanding problem with UnicodeCol - at last you can use unicode - strings in .select() and .selectBy() queries. There are some limitations, - though; see the description of the UnicodeCol_. - -.. _UnicodeCol: SQLObject.html#column-types - -* Cull patch (clear cache). - -* .destroySelf() inside a transaction. - -* Synchronize main connection cache during transaction commit. - -* Ordering joins with NULLs. - -* Fixed bugs with plain/non-plain setters. - -* Lots of other bug fixes. - -SQLObject 0.7.0 -=============== - -Features & Interface --------------------- - -* Inheritance. See Inheritance.html_ - -.. _Inheritance.html: Inheritance.html - -* Date/time validators, converters, tests. - -* Both `mxDateTime - <http://www.egenix.com/files/python/mxDateTime.html>`_ and `datetime - <http://python.org/doc/current/lib/module-datetime.html>`_ supported - for ``DateTimeCol``. - -* Added ``BLOBCol``, for binary data. - -* Added ``PickleCol``, to transparently pickle and unpickle data from - column. - -* New `documented reflection interface - <http://svn.colorstudy.com/SQLObject/docs/interface.py>`_, using the - new ``.sqlmeta`` class/instance. Most special attributes that - started with ``_`` were moved into ``sqlmeta`` (with leading - underscore removed). - -* New aggregate functions for select results, like - ``cls.select().max(columnName)``: ``.max()``, ``.min()``, - ``.avg()``. - -* ``ConnectionHub`` aka ``sqlhub`` (@@: Needs documentation) - -* Command-line client `sqlobject-admin - <http://sqlobject.org/docs/sqlobject-admin.html>`_. - -* ``StringCol`` has ``char_binary`` attribute, for explicit case - handling in MySQL. - -* Various joins now supported (LEFT, RIGHT, STRAIGHT, INNER, OUTER, - CROSS): see `documentation - <http://sqlobject.org/docs/SQLObject.html#left-join-and-other-joins>`_. - Aliases for joining a table with itself. - -* Subqueries/subselects (`see docs - <http://sqlobject.org/docs/SQLObject.html#subqueries-subselects>`_). - -* Select results support ``.filter(extra_query)`` - -* ``SQLMultipleJoin`` and ``SQLRelatedJoin``, like ``MultipleJoin`` - and ``RelatedJoin``, except return select results (@@: Document). - -* `SingleJoin - <http://sqlobject.org/docs/SQLObject.html#singlejoin-one-to-one>`_. - -* Columns retain their order from the class definition to table - creation. - -* SQLObject now depends on the `FormEncode <http://formencode.org>`_ - library, and internal conversion/validation is done through - FormEncode (was previously using old fork of FormEncode). - -* Column instances can have attributes set on them (generally for - annotating columns with extra data). - -Other Changes -------------- - -* When iterating over select results, a list is now immediately - created with the full list of instances being selected. Before - instances were created on demand, as select results were - pulled out row-by-row. The previous lazy behavior is available with - the method ``lazyIter``, used like ``for obj in - MyClass.select().lazyIter(): ...``. - -* Test framework now uses `py.test - <http://codespeak.net/py/current/doc/test.html>`_. - -* SQLObject now uses a simpler metaclass - (``sqlobject.declarative.DeclarativeMeta``). - -* autoCommit and queryIns ?? (@@: expand) - -* Deprecation (@@: document) - -* Use `setuptools - <http://peak.telecommunity.com/DevCenter/setuptools>`_ for packaging - and installation. - -Small Features --------------- - -* ``IntValidator`` for testing ``IntCol`` inputs. - -* Base style (``sqlobject.styles.Style``) is now a usable no-op style. - -* SQLite in-memory databases allowed with ``sqlite:/:memory:`` - -* Keyword parameters allowed to ``connectionForURI`` (like - ``debug=True``). - -* More parameters passed to MySQL connections (unix_socket, - named_pipe, init_command, read_default_file, read_default_group, - connect_time, compress, named_pipe, use_unicode, client_flag, - local_infile). - -* ``DateTimeCol.now`` is a function for producing the current date, - using whatever date/time module you are using (good for use as a - default). - -* Inherited classes fetched more efficiently (fewer queries). - -* Decimal converter to create `decimal objects - <http://python.org/doc/current/lib/module-decimal.html>`_. - -* Repository rearranged (now in - ``http://svn.colorstudy.com/SQLObject/trunk``). - -Bug Fixes ---------- - -* Tables with no columns can work. Why would you have a table without - a column? We do not know, we try only to serve. - -* Sybase ``_fromDatabase`` fixed. - -* Various fixes to support most recent ``MySQLdb`` adapter, and - ``pysqlite`` adapters. - -* URI parsing improved, including Windows paths (for use with SQLite). - -* ``selectBy(column=None)`` creates ``IS NULL`` query. - -* ``selectBy(foreignKey=value)`` now supported (not just selecting by - foreign key ID). - -* ``cascade='null'`` wasn't working properly (was cascading all - deletes, not nullifying!). - -* Lots of other bug fixes. - -`Older news`__ - -.. __: News1.html - .. image:: http://sflogo.sourceforge.net/sflogo.php?group_id=74338&type=10 :target: http://sourceforge.net/projects/sqlobject :class: noborder Deleted: SQLObject/trunk/docs/News1.txt =================================================================== --- SQLObject/trunk/docs/News1.txt 2009-07-25 10:44:06 UTC (rev 3924) +++ SQLObject/trunk/docs/News1.txt 2009-07-25 10:50:07 UTC (rev 3925) @@ -1,465 +0,0 @@ -++++ -News -++++ - -.. contents:: Contents: - :backlinks: none - -.. _start: - -SQLObject 0.6.1 -=============== - -Interface Changes ------------------ - -* The long broken and unused ``DBMConnection`` has been removed. - -* Added a connection parameter to all class methods (patch 974755) - -* Connection objects have a ``.module`` attribute, which points to - the DB-API module. This is useful for getting access to the - exception objects. - -Features --------- - -* New ``UnicodeCol()`` that converts to and from Unicode - in the database. See docs_. - -.. _docs: SQLObject.html#subclasses-of-col - -* Added indexing (from Jeremy Fitzhardinge). See `the - documentation`__ for more. - -.. __: SQLObject.html#indexes - -* All connections are explicitly closed, not just garbage collected. - Many database drivers don't close database connections properly when - the connection object is garbage collected. - -* New ``distinct`` option to selects, like ``MyClass.select(..., - distinct=True)`` - -* You can now do - ``MyClass.selectBy(joinedTable=joinedTableInstance)``, where before - you had to do - ``MyClass.selectBy(joinedTableID=joinedTableInstance.id)``. (From - Dave Cook) - -SQLObject 0.6 -============= - -Interface Changes ------------------ - -* Lazy updates. Add ``_lazyUpdate=True`` to your class, and updates - will only be written when you call ``obj.syncUpdate()`` or - ``obj.sync()`` (``sync`` also refetches the data from the database, - which ``syncUpdate`` does not do). When enabled, instances have a - property ``dirty``, which indicates if they have pending updates. - Inserts are still done immediately. - -* Separated database drivers (PostgresConnection, MySQLConnection, - etc.) into separate packages. You can access the driver through - URIs, like ``mysql://user:pass@host/dbname`` -- to set drivers after - class creation you should use `sqlobject.connectionForURI()`. - -* The ``SQLObject`` package has been renamed to ``sqlobject``. This - makes it similar to several other packages, and emphasizes the - distinction between the ``sqlobject`` package and the ``SQLObject`` - class. - -* Class instantiation now creates new rows (like `.new()` used to - do), and the `.get()` method now retrieves objects that already have - rows (like class instantiation used to do). - -* We're now using a Subversion repository instead of CVS. It is - located at http://svn.colorstudy.com/trunk/SQLObject - -* If you pass ``forceDBName=True`` to the ``*Col`` constructors, then - your column name doesn't have to be restricted to a-z, 0-9, and _. - -* ``*Col`` constructors now support cascade: ``cascade=None`` - (default) means no constraint; ``cascade=True`` means that if the - foreign key is deleted, the object will be deleted; - ``cascade=False`` means that the delete will fail; - ``cascade="null"`` means that the column will be set to NULL. The - constraints are only implemented in the DBMS, not in SQLObject - (i.e., they will not work in databases like MySQL and SQLite). - -* New ``_create(id, **kw)`` method that can be overridden to intercept - and modify attempts to insert rows in the database. - -* You can specify ``_idType`` in your class, like ``_idType = str``. - The default type is ``int``; i.e., IDs are coerced to integers. - This is a temporary interface; a more general specifier for primary - keys will be added later. - -* New classmethod ``createTableSQL()`` method for SQLObject classes, - which returns the SQL that can be used to create the table. Analog - to ``createTable()``. - -Bugs ----- - -* SQLite booleans fixed. - -* You can now use ``sqlite:/:memory:`` to store the database in - memory. - -* Some bugs resolved when caching is turned off (SF 956847) - -SQLObject 0.5.3 -=============== - -Bugs ----- - -* Python 2.2 booleans fixed (SF: 903488) - -* Longs (e.g., ``1L``) get converted properly (SF: 939965) - -SQLObject 0.5.2 -=============== - -We're now using Subversion instead of CVS. The repository is located -at svn://colorstudy.com/trunk/SQLObject - -Interface Changes ------------------ - -* If you commit or rollback a transaction, you must call - ``trans.begin()`` to restart the transaction. Any database access on - the transaction inbetween commit/rollback and being will result in an - AssertionError. (It's also acceptable to create a new transaction - object instead of reusing the old one, but objects in that - transaction will be invalid) - -Bugs ----- - -* Using .select() would hold on to a connection, and also release it - back to the connection pool. Very un-threadsafe and all-around - bad. -* Fixed bug which did not release connections after database (query) - error. -* When setting columns that use validators, the Pythonic - (vs. database) representation wasn't being stored in the column. - Now we roundtrip (through toPython and fromPython) the values when - they get set. -* PostgreConnection is back to using sequences for ID generation, - instead of oids. Long explanation -- oids can be unindexed in some - versions of Postgres, or not even exist. -* When turning caching off and using transactions, got an attribute - error on rollback. -* Rollback or commit didn't find objects that were expired from the - cache but still in memory. -* Rollback or commit didn't free the connection object, so as you - created more transactions it stole connections and didn't put them - back in the pool. - -SQLObject 0.5.1 -=============== - -Released: 12-Nov-2003 - -Interface Changes ------------------ - -* Select results no longer have a __len__ method (i.e., you can't do - ``len(Person.select(Person.q.firstName=='Bob'))``). There is now a - ``.count()`` method instead. ``__len__`` gets called implicitly in - several circumstances, like ``list()``, which causes potentially - expensive queries to ``COUNT(*)``. - -Bugs ----- - -* Objects retrieved from a join now respect the transaction context of - the original instance. -* ``.select().reversed()`` works. - -SQLObject 0.5 -============= - -Released: 1-Nov-2003 - -Features --------- - -* Firebird_ support. - -* Database-specific literal quoting (motivation: MySQL and Postgres - use backslashes, Firebird and SQLite do not). - -* Generic conversion/validation can be added to columns. - -* BoolCol for portable boolean columns (BOOL on Postgres, INT on - MySQL, etc.) - -* Non-integer IDs. (Automatic table creation is not supported for - non-integer IDs) - -* Explicit IDs for new instances/rows (required for non-integer IDs). - -* Instances can be synced with the database (in case there have been - updates to the object since it was first fetched). - -* Instances can be expired, so that they will be synced when they are - next accessed. - -.. _Firebird: http://firebird.sourceforge.net/ - -Interface Changes ------------------ - -* `SQLBuilder.sqlRepr` renamed to `SQLBuilder.sqlrepr`, signature - changed to ``sqlrepr(value, databaseName)`` to quote ``value``, - where ``databaseName`` is one of ``"mysql"``, ``"postgres"``, - ``"sqlite"``, ``"firebird"``. - -* ``sqlRepr`` magic method renamed to ``__sqlrepr__``, and takes new - ``databaseName`` argument. - -* When using explicit booleans, use ``Col.TRUE`` and ``Col.FALSE`` for - backward compatibility with Python 2.2. This is not required for - ``BoolCol``, however (which converts all true values to TRUE and - false values to FALSE) - -* SQLObject has a ``sqlrepr`` method, so you can construct queries - with something like ``"WHERE last_name = %s" % - Person.sqlrepr('Bob')`` - -Bugs ----- - -* Released all locks with ``finally:``, so that bugs won't cause - frozen locks. - -* Tons of transaction fixes. Transactions pretty much work. - -* A class can have multiple foreign keys pointing to the same table - (e.g., ``spouse = ForeignKey("Person"); supervisor = - ForeignKey("Person")``) - -SQLObject 0.4 -============= - -Features --------- - -* You can specify columns in a new, preferred manner:: - - class SomeObject(SQLObject): - someColumn = Col() - - Equivalent to:: - - class SomeObject(SQLObject): - _columns = [Col('someColumn')] - - Ditto joins. - -* Cache objects have a clear method, which empties all objects. - However, weak references to objects *are* maintained, so the - integrity of the cache can be ensured. - -* SQLObject subclasses can be further subclassed, adding or removing - column definitions (as well as changing settings like connection, - style, etc). Each class still refers to a single concrete table in - the database -- the class hierarchy is not represented in the - database. - -* Each SQLObject subclass can have an associated style, as given in - the `_style` attribute. This object is used to map between Python - and database names (e.g., the column name for a Python attribute). - Some samples are available in the `Style` module. - -* Postgres support for `_fromDatabase` (reading a table definition from - the database, and creating a class from that). - -* Postgres id columns more permissive, you don't have to create a - specially named sequence (or implicitly create that sequence through - ``SERIAL``). lastoid is used instead. - -* MySQL uses ``localhost`` as the default host, and the empty string - as the default password. - -* Added functions for use with queries: `ISNULL`, `ISNOTNULL`. ``==`` - and ``!=`` can be used with None, and is translated into `ISNULL`, - `ISNOTNULL`. - -* Classes can be part of a specific registry. Since classes are - referred to by name in several places, the names have to be unique. - This can be problematic, so you can add a class variable `_registry`, - the value of which should be a string. Classes references are - assumed to be inside that registry, and class names need only be - unique among classes in that registry. - -* ``SomeClass.select()`` selects all, instead of using - ``SomeClass.select('all')``. You can also use None instead of - ``'all'``. - -* Trying to fetch non-existent objects raises `SQLObjectNotFound`, - which is a subclass of the builtin exception `LookupError`. - This may not be raised if `_cacheValues` is False and you use - the ID to fetch an object (but alternateID fetches will raise - the exception in either case). - -* Can order by descending order, with the `reversed` option to - the `select` method, or by prefixing the column with a ``"-"``. - -* Ordering with joins works better -- you can order with multiple - columns, as well as descending ordering. - -Col and Join -~~~~~~~~~~~~ - -* `Join` constructors have an argument `orderBy`, which is the name - of a Python attribute to sort results by. If not given, the - appropriate class's `_defaultOrder` will be used. None implies - no sorting (and ``orderBy=None`` will override `_defaultOrder`). - -* `ForeignKey` class (subclass of `Col`), for somewhat easier/clearer - declaration of foreign keys. - -* `Col` (and subclasses) can take a `sqlType` argument, which is used - in table definitions. E.g., ``Col(sqlType="BOOLEAN")`` can be used - to create a ``BOOLEAN`` column, even though no `BooleanCol` exists. - -* `alternateID` (a specifier for columns) implies ``NOT NULL``. Also - implies ``UNIQUE``. - -* `unique` (a specifier for columns) added. - -* `DecimalCol` and `CurrencyCol` added. - -* `EnumCol` uses constraints on Postgres (if you use `createTable`). - -Bugs ----- - -* `DateTimeCol` uses ``TIMESTAMP`` for Postgres. Note that the - Python type name is used for column names, not necessarily the - SQL standard name. - -* Foreign key column names are slightly more permissive. They still - need to end in ``id``, but it's case insensitive. - -* _defaultOrder should be the python attribute's name, not the database - name. - -* SomeClass.q.colName uses proper Python attributes for colName, and - proper database names when executed in the database. - -* SQLite select results back to being proper iterator. - -* SomeClass.q.colName now does proper translation to database names, - using dbName, etc., instead of being entirely algorithm-driven. - -* Raise `TypeError` if you pass an unknown argument to the `new` - method. - -* You can override the _get_* or _set_* version of a property without - overriding the other. - -* Python 2.3 compatible. - -* Trying to use ``Col('id')`` or ``id = Col()`` will raise an - exception, instead of just acting funky. - -* ``ForeignKey`` columns return None if the associated column is - NULL in the database (used to just act weird). - -* Instantiating an object with an id of None will give an error, - instead of just acting weird. - -Internal --------- - -* `Col` class separated into `Col` and `SOCol` (and same for all other - `*Col` classes). `Col` defines a column, `SOCol` is that definition - bound to a particular SQLObject class. - -* Instance variable ``_SO_columns`` holds the `SOCol` instances. - -SQLObject 0.3 -============= - -Features --------- - -* Table creation (SQL schema generation) via new class method - `createTable`. And of course a `dropTable` method to go with. - -* Add and remove columns at runtime, optionally modifying the - schema in the database (via ``ALTER``). (Does not work in - SQLite) - -* New column classes (see `Col` module), indicates type - -* Classes can be created by parsing an already existant table - (MySQL only). - -* Objects are not cached indefinitely. Cached objects are expired - into a weak dictionary (it allows objects to be garbage collected if - nowhere else in the program is using the object, but until it is - collected it's still available to the cache). Some cache control, - pass ``nocache=True`` to your connection object to eliminate as much - caching as possible. See `Cache` module for a bit more. - -* New DBMConnection, implements a database-like backend without any - database to speak of, including queries (so long as you use - `SQLBuilder` and don't generate your where clauses manually). - Actual SQL generation is done entirely by the database connection, - allowing portability across very different backends. - -* Postgres table IDs should be created with type ``SERIAL`` (which - implicitly creates a sequence). - -* New `_defaultOrder` class variable gives a default for the - `orderBy` parameter to `select` queries. - -Bugs ----- - -* LIMIT/OFFSET (select result slicing) works in Postgres and SQLite. - -* ``tableExists`` method from DBConnection works in same. - -* mxDateTime not required (never should have been, always just an - option). - -SQLObject 0.2.1 -=============== - -Bugs ----- - -* Fixed caching of new objects - -Features --------- - -* SQLite_ support - -* Select statements are lazily generated, retrieve full rows for - speed, and are slicable (`select docs`_). - -* `alternateID` option for `Col` objects -- select individual objects - via UNIQUE columns, e.g., a username (`Col docs`_). - -.. _SQLite: http://sqlite.org/ - -.. _select docs: SQLObject.html#selecting-multiple-objects - -.. _Col docs: SQLObject.html#col-class-specifying-columns - -.. image:: http://sflogo.sourceforge.net/sflogo.php?group_id=74338&type=10 - :target: http://sourceforge.net/projects/sqlobject - :class: noborder - :align: center - :height: 15 - :width: 80 - :alt: Get SQLObject at SourceForge.net. Fast, secure and Free Open Source software downloads Modified: SQLObject/trunk/docs/rebuild =================================================================== --- SQLObject/trunk/docs/rebuild 2009-07-25 10:44:06 UTC (rev 3924) +++ SQLObject/trunk/docs/rebuild 2009-07-25 10:50:07 UTC (rev 3925) @@ -5,7 +5,7 @@ echo "Adding $parent to \$PYTHONPATH" export PYTHONPATH=$parent:$PYTHONPATH -NORMAL="Authors DeveloperGuide FAQ Inheritance News News1 +NORMAL="Authors DeveloperGuide FAQ Inheritance News SQLBuilder SQLObject SelectResults TODO Versioning Views web/index web/links web/repository web/community index community sqlobject-architecture sqlobject-admin" Modified: SQLObject/trunk/setup.cfg =================================================================== --- SQLObject/trunk/setup.cfg 2009-07-25 10:44:06 UTC (rev 3924) +++ SQLObject/trunk/setup.cfg 2009-07-25 10:50:07 UTC (rev 3925) @@ -12,7 +12,7 @@ [pudge] theme = pythonpaste.org docs = docs/index.txt docs/Authors.txt docs/DeveloperGuide.txt docs/FAQ.txt - docs/Inheritance.txt docs/News.txt docs/News1.txt docs/SQLBuilder.txt + docs/Inheritance.txt docs/News.txt docs/SQLBuilder.txt docs/SQLObject.txt docs/SelectResults.txt docs/TODO.txt docs/Versioning.txt docs/Views.txt docs/community.txt docs/download.txt docs/links.txt docs/sqlobject-admin.txt docs/sqlobject-architecture.txt |
From: <sub...@co...> - 2009-07-25 10:44:18
|
Author: phd Date: 2009-07-25 04:44:06 -0600 (Sat, 25 Jul 2009) New Revision: 3924 Removed: SQLObject/branches/0.10/docs/News1.txt Modified: SQLObject/branches/0.10/docs/News.txt SQLObject/branches/0.10/docs/rebuild SQLObject/branches/0.10/setup.cfg Log: Removed old news. Modified: SQLObject/branches/0.10/docs/News.txt =================================================================== --- SQLObject/branches/0.10/docs/News.txt 2009-07-25 10:38:40 UTC (rev 3923) +++ SQLObject/branches/0.10/docs/News.txt 2009-07-25 10:44:06 UTC (rev 3924) @@ -265,7 +265,7 @@ Released 10 Jan 2008. -* A number of changes ported from `SQLObject 0.7.10`_. +* A number of changes ported from SQLObject 0.7.10. SQLObject 0.9.2 =============== @@ -279,7 +279,7 @@ * Fixed bugs in SQLiteConnection.guessColumn(). -* A number of changes ported from `SQLObject 0.7.9`_ and `SQLObject 0.8.6`_. +* A number of changes ported from SQLObject 0.7.9 and `SQLObject 0.8.6`_. SQLObject 0.9.1 =============== @@ -291,7 +291,7 @@ * Fixed misspelled methods in col.py. -* A number of bugfixes ported from `SQLObject 0.7.8`_ and `SQLObject 0.8.5`_. +* A number of bugfixes ported from SQLObject 0.7.8 and `SQLObject 0.8.5`_. SQLObject 0.9.0 =============== @@ -355,7 +355,7 @@ Released 10 Jan 2008. -* A number of changes ported from `SQLObject 0.7.10`_. +* A number of changes ported from SQLObject 0.7.10. SQLObject 0.8.6 =============== @@ -366,7 +366,7 @@ exception in __nonzero__() is inconsistent with other iterators (bool(iter([])) => True). -* A number of changes ported from `SQLObject 0.7.9`_. +* A number of changes ported from SQLObject 0.7.9. SQLObject 0.8.5 =============== @@ -535,411 +535,6 @@ * Fixed aggregators and accumulators with inheritance. -SQLObject 0.7.10 -================ - -Released 10 Jan 2008. - -* With PySQLite2 do not use encode()/decode() from PySQLite1 - always use - base64 for BLOBs. - -* MySQLConnection doesn't convert query strings to unicode (but allows to - pass unicode query strings if the user build ones). DB URI parameter - sqlobject_encoding is no longer used. - -SQLObject 0.7.9 -=============== - -Released 30 Oct 2007. - -Bug Fixes ---------- - -* Remove 'limit' from SelectResults after setting start/end so .clone() - never sees limit again. - -* Fixed a bug in sqlbuilder._LikeQuoted() - call sqlrepr() on the - expression to escape single quotes if the expression is a string. - -* Fixed StringCol and UnicodeCol: use sqlType with MSSQL. - -* Fixed startswith/endswith/contains for UnicodeCol. - -Other Changes -------------- - -* Changed the default value for 'varchar' in BLOBColumns from 'auto' to False - (so that the default type for the columns in MySQL is BLOB, not TEXT). - -* Changed the implementation type in BoolCol under MySQL from TINYINT to - BOOL (which is a synonym for TINYINT(1)). - -SQLObject 0.7.8 -=============== - -Released 25 July 2007. - -Bug Fixes ---------- - -* Replaced calls to style.dbColumnToPythonAttr() in joins.py by name/dbName - lookup in case the user named columns differently using dbName. - -* Minor correction in the tests: we fully support EnumCol in Postgres. - -* MySQLConnection now recognizes Enum, Double and Time columns when drawing the - database scheme from DB. - -* Minor fix in FirebirdConnection.fromDatabase. - -* Fixed a bug with default field values for columns for Firebird connection. - -* Fixed a bug in col.createSQL(). - -* Fixed a bug in converting date/time for years < 1000 (time.strptime() - requires exactly 4 digits for %Y, hence a year < 1000 must be 0-padded). - -Other Changes -------------- - -* Changed string quoting style for PostgreSQL and MySQL from \\' to ''. - -SQLObject 0.7.7 -=============== - -Released 10 May 2007. - -Bug Fixes ---------- - -* Fixed a bug in SQLRelatedJoin that ignored per-instance connection. - -* Fixed a bug in MySQL connection in case there is no charset in the DB URI. - -SQLObject 0.7.6 -=============== - -Released 3 May 2007. - -Bug Fixes ---------- - -* Fixed a longstanding bug with .select() ignoring 'limit' parameter. - -* Fixed a bug with absent comma in JOINs. - -* Fixed sqlbuilder - .startswith(), .endswith() and .contains() assumed - their parameter must be a string; now you can pass an SQLExpression: - Table.q.name.contains(func.upper('a')), for example. - -* Fixed a longstanding bug in sqlbuilder.Select() with groupBy being a - sequence. - -* Fixed a bug with Aliases in JOINs. - -* Yet another patch to properly initialize MySQL connection encoding. - -* Fixed a minor comparison problem in test_decimal.py. - -* More documentation about orderBy. - -SQLObject 0.7.5 -=============== - -Released 11 Apr 2007. - -Bug Fixes ---------- - -* Fixed test_deep_inheritance.py - setup classes in the correct order - (required for Postgres 8.0+ which is strict about referential integrity). - -* Fixed a bug in DateValidator caused by datetime being a subclass of date. - -SQLObject 0.7.4 -=============== - -Released 19 Mar 2007. - -Small Features --------------- - -* For MySQLdb 1.2.2+ call ping(True) on the connection to allow - autoreconnect after a timeout. - -Bug Fixes ---------- - -* Another round of changes to create/drop the tables in the right order - in the command-line client `sqlobject-admin`. - -* Fixed a bug in UnicodeField - allow comparison with None. - -SQLObject 0.7.3 -=============== - -Released 30 Jan 2007. - -Bug Fixes ---------- - -* Allow multiple MSSQL connections. - -* Psycopg1 requires port to be a string; psycopg2 requires port to be an int. - -* Fixed a bug in MSSQLConnection caused by column names being unicode. - -* Fixed a bug in FirebirdConnection caused by column names having trailing - spaces. - -* Fixed a missed import in firebirdconnection.py. - -* Remove a leading slash in FirebirdConnection. - -* Fixed a bug in deep Inheritance tree. - -SQLObject 0.7.2 -=============== - -Released 20 Nov 2006. - -Features & Interface --------------------- - -* sqlbuilder.Select now supports JOINs exactly like SQLObject.select. - -* destroySelf() removes the object from related joins. - -Bug Fixes ---------- - -* Fixed a number of unicode-related problems with newer MySQLdb. - -* If the DB API driver returns timedelta instead of time (MySQLdb does - this) it is converted to time; but if the timedelta has days an exception - is raised. - -* Fixed a number of bugs in InheritableSQLObject related to foreign keys. - -* Fixed a bug in InheritableSQLObject related to the order of tableRegistry - dictionary. - -* A bug fix that allows to use SQLObject with DateTime from Zope. - -Documentation Added -------------------- - -* Added "How can I define my own intermediate table in my Many-to-Many - relationship?" to FAQ. - -SQLObject 0.7.1 -=============== - -Released 25 Sep 2006. - -Features & Interface --------------------- - -* Added support for psycopg2_ - -.. _psycopg2: http://initd.org/projects/psycopg2 - -* Added support for MSSQL. - -* Added ``TimeCol``. - -* ``RelatedJoin`` and ``SQLRelatedJoin`` objects have a - ``createRelatedTable`` keyword argument (default ``True``). If - ``False``, then the related table won't be automatically created; - instead you must manually create it (e.g., with explicit SQLObject - classes for the joins). - -* Implemented ``RLIKE`` (regular expression LIKE). - -* Moved _idSequence to sqlmeta.idSequence. - -Small Features --------------- - -* Select over RelatedJoin. - -* SQLite foreign keys. - -* Postgres DB URIs with a non-default path to unix socket. - -* Allow the use of foreign keys in selects. - -* Implemented addColumn() for SQLite. - -* With PySQLite2 use encode()/decode() from PySQLite1 for BLOBCol if available; else use base64. - -Bug Fixes ---------- - -* Fixed a longstanding problem with UnicodeCol - at last you can use unicode - strings in .select() and .selectBy() queries. There are some limitations, - though; see the description of the UnicodeCol_. - -.. _UnicodeCol: SQLObject.html#column-types - -* Cull patch (clear cache). - -* .destroySelf() inside a transaction. - -* Synchronize main connection cache during transaction commit. - -* Ordering joins with NULLs. - -* Fixed bugs with plain/non-plain setters. - -* Lots of other bug fixes. - -SQLObject 0.7.0 -=============== - -Features & Interface --------------------- - -* Inheritance. See Inheritance.html_ - -.. _Inheritance.html: Inheritance.html - -* Date/time validators, converters, tests. - -* Both `mxDateTime - <http://www.egenix.com/files/python/mxDateTime.html>`_ and `datetime - <http://python.org/doc/current/lib/module-datetime.html>`_ supported - for ``DateTimeCol``. - -* Added ``BLOBCol``, for binary data. - -* Added ``PickleCol``, to transparently pickle and unpickle data from - column. - -* New `documented reflection interface - <http://svn.colorstudy.com/SQLObject/docs/interface.py>`_, using the - new ``.sqlmeta`` class/instance. Most special attributes that - started with ``_`` were moved into ``sqlmeta`` (with leading - underscore removed). - -* New aggregate functions for select results, like - ``cls.select().max(columnName)``: ``.max()``, ``.min()``, - ``.avg()``. - -* ``ConnectionHub`` aka ``sqlhub`` (@@: Needs documentation) - -* Command-line client `sqlobject-admin - <http://sqlobject.org/docs/sqlobject-admin.html>`_. - -* ``StringCol`` has ``char_binary`` attribute, for explicit case - handling in MySQL. - -* Various joins now supported (LEFT, RIGHT, STRAIGHT, INNER, OUTER, - CROSS): see `documentation - <http://sqlobject.org/docs/SQLObject.html#left-join-and-other-joins>`_. - Aliases for joining a table with itself. - -* Subqueries/subselects (`see docs - <http://sqlobject.org/docs/SQLObject.html#subqueries-subselects>`_). - -* Select results support ``.filter(extra_query)`` - -* ``SQLMultipleJoin`` and ``SQLRelatedJoin``, like ``MultipleJoin`` - and ``RelatedJoin``, except return select results (@@: Document). - -* `SingleJoin - <http://sqlobject.org/docs/SQLObject.html#singlejoin-one-to-one>`_. - -* Columns retain their order from the class definition to table - creation. - -* SQLObject now depends on the `FormEncode <http://formencode.org>`_ - library, and internal conversion/validation is done through - FormEncode (was previously using old fork of FormEncode). - -* Column instances can have attributes set on them (generally for - annotating columns with extra data). - -Other Changes -------------- - -* When iterating over select results, a list is now immediately - created with the full list of instances being selected. Before - instances were created on demand, as select results were - pulled out row-by-row. The previous lazy behavior is available with - the method ``lazyIter``, used like ``for obj in - MyClass.select().lazyIter(): ...``. - -* Test framework now uses `py.test - <http://codespeak.net/py/current/doc/test.html>`_. - -* SQLObject now uses a simpler metaclass - (``sqlobject.declarative.DeclarativeMeta``). - -* autoCommit and queryIns ?? (@@: expand) - -* Deprecation (@@: document) - -* Use `setuptools - <http://peak.telecommunity.com/DevCenter/setuptools>`_ for packaging - and installation. - -Small Features --------------- - -* ``IntValidator`` for testing ``IntCol`` inputs. - -* Base style (``sqlobject.styles.Style``) is now a usable no-op style. - -* SQLite in-memory databases allowed with ``sqlite:/:memory:`` - -* Keyword parameters allowed to ``connectionForURI`` (like - ``debug=True``). - -* More parameters passed to MySQL connections (unix_socket, - named_pipe, init_command, read_default_file, read_default_group, - connect_time, compress, named_pipe, use_unicode, client_flag, - local_infile). - -* ``DateTimeCol.now`` is a function for producing the current date, - using whatever date/time module you are using (good for use as a - default). - -* Inherited classes fetched more efficiently (fewer queries). - -* Decimal converter to create `decimal objects - <http://python.org/doc/current/lib/module-decimal.html>`_. - -* Repository rearranged (now in - ``http://svn.colorstudy.com/SQLObject/trunk``). - -Bug Fixes ---------- - -* Tables with no columns can work. Why would you have a table without - a column? We do not know, we try only to serve. - -* Sybase ``_fromDatabase`` fixed. - -* Various fixes to support most recent ``MySQLdb`` adapter, and - ``pysqlite`` adapters. - -* URI parsing improved, including Windows paths (for use with SQLite). - -* ``selectBy(column=None)`` creates ``IS NULL`` query. - -* ``selectBy(foreignKey=value)`` now supported (not just selecting by - foreign key ID). - -* ``cascade='null'`` wasn't working properly (was cascading all - deletes, not nullifying!). - -* Lots of other bug fixes. - -`Older news`__ - -.. __: News1.html - .. image:: http://sflogo.sourceforge.net/sflogo.php?group_id=74338&type=10 :target: http://sourceforge.net/projects/sqlobject :class: noborder Deleted: SQLObject/branches/0.10/docs/News1.txt =================================================================== --- SQLObject/branches/0.10/docs/News1.txt 2009-07-25 10:38:40 UTC (rev 3923) +++ SQLObject/branches/0.10/docs/News1.txt 2009-07-25 10:44:06 UTC (rev 3924) @@ -1,465 +0,0 @@ -++++ -News -++++ - -.. contents:: Contents: - :backlinks: none - -.. _start: - -SQLObject 0.6.1 -=============== - -Interface Changes ------------------ - -* The long broken and unused ``DBMConnection`` has been removed. - -* Added a connection parameter to all class methods (patch 974755) - -* Connection objects have a ``.module`` attribute, which points to - the DB-API module. This is useful for getting access to the - exception objects. - -Features --------- - -* New ``UnicodeCol()`` that converts to and from Unicode - in the database. See docs_. - -.. _docs: SQLObject.html#subclasses-of-col - -* Added indexing (from Jeremy Fitzhardinge). See `the - documentation`__ for more. - -.. __: SQLObject.html#indexes - -* All connections are explicitly closed, not just garbage collected. - Many database drivers don't close database connections properly when - the connection object is garbage collected. - -* New ``distinct`` option to selects, like ``MyClass.select(..., - distinct=True)`` - -* You can now do - ``MyClass.selectBy(joinedTable=joinedTableInstance)``, where before - you had to do - ``MyClass.selectBy(joinedTableID=joinedTableInstance.id)``. (From - Dave Cook) - -SQLObject 0.6 -============= - -Interface Changes ------------------ - -* Lazy updates. Add ``_lazyUpdate=True`` to your class, and updates - will only be written when you call ``obj.syncUpdate()`` or - ``obj.sync()`` (``sync`` also refetches the data from the database, - which ``syncUpdate`` does not do). When enabled, instances have a - property ``dirty``, which indicates if they have pending updates. - Inserts are still done immediately. - -* Separated database drivers (PostgresConnection, MySQLConnection, - etc.) into separate packages. You can access the driver through - URIs, like ``mysql://user:pass@host/dbname`` -- to set drivers after - class creation you should use `sqlobject.connectionForURI()`. - -* The ``SQLObject`` package has been renamed to ``sqlobject``. This - makes it similar to several other packages, and emphasizes the - distinction between the ``sqlobject`` package and the ``SQLObject`` - class. - -* Class instantiation now creates new rows (like `.new()` used to - do), and the `.get()` method now retrieves objects that already have - rows (like class instantiation used to do). - -* We're now using a Subversion repository instead of CVS. It is - located at http://svn.colorstudy.com/trunk/SQLObject - -* If you pass ``forceDBName=True`` to the ``*Col`` constructors, then - your column name doesn't have to be restricted to a-z, 0-9, and _. - -* ``*Col`` constructors now support cascade: ``cascade=None`` - (default) means no constraint; ``cascade=True`` means that if the - foreign key is deleted, the object will be deleted; - ``cascade=False`` means that the delete will fail; - ``cascade="null"`` means that the column will be set to NULL. The - constraints are only implemented in the DBMS, not in SQLObject - (i.e., they will not work in databases like MySQL and SQLite). - -* New ``_create(id, **kw)`` method that can be overridden to intercept - and modify attempts to insert rows in the database. - -* You can specify ``_idType`` in your class, like ``_idType = str``. - The default type is ``int``; i.e., IDs are coerced to integers. - This is a temporary interface; a more general specifier for primary - keys will be added later. - -* New classmethod ``createTableSQL()`` method for SQLObject classes, - which returns the SQL that can be used to create the table. Analog - to ``createTable()``. - -Bugs ----- - -* SQLite booleans fixed. - -* You can now use ``sqlite:/:memory:`` to store the database in - memory. - -* Some bugs resolved when caching is turned off (SF 956847) - -SQLObject 0.5.3 -=============== - -Bugs ----- - -* Python 2.2 booleans fixed (SF: 903488) - -* Longs (e.g., ``1L``) get converted properly (SF: 939965) - -SQLObject 0.5.2 -=============== - -We're now using Subversion instead of CVS. The repository is located -at svn://colorstudy.com/trunk/SQLObject - -Interface Changes ------------------ - -* If you commit or rollback a transaction, you must call - ``trans.begin()`` to restart the transaction. Any database access on - the transaction inbetween commit/rollback and being will result in an - AssertionError. (It's also acceptable to create a new transaction - object instead of reusing the old one, but objects in that - transaction will be invalid) - -Bugs ----- - -* Using .select() would hold on to a connection, and also release it - back to the connection pool. Very un-threadsafe and all-around - bad. -* Fixed bug which did not release connections after database (query) - error. -* When setting columns that use validators, the Pythonic - (vs. database) representation wasn't being stored in the column. - Now we roundtrip (through toPython and fromPython) the values when - they get set. -* PostgreConnection is back to using sequences for ID generation, - instead of oids. Long explanation -- oids can be unindexed in some - versions of Postgres, or not even exist. -* When turning caching off and using transactions, got an attribute - error on rollback. -* Rollback or commit didn't find objects that were expired from the - cache but still in memory. -* Rollback or commit didn't free the connection object, so as you - created more transactions it stole connections and didn't put them - back in the pool. - -SQLObject 0.5.1 -=============== - -Released: 12-Nov-2003 - -Interface Changes ------------------ - -* Select results no longer have a __len__ method (i.e., you can't do - ``len(Person.select(Person.q.firstName=='Bob'))``). There is now a - ``.count()`` method instead. ``__len__`` gets called implicitly in - several circumstances, like ``list()``, which causes potentially - expensive queries to ``COUNT(*)``. - -Bugs ----- - -* Objects retrieved from a join now respect the transaction context of - the original instance. -* ``.select().reversed()`` works. - -SQLObject 0.5 -============= - -Released: 1-Nov-2003 - -Features --------- - -* Firebird_ support. - -* Database-specific literal quoting (motivation: MySQL and Postgres - use backslashes, Firebird and SQLite do not). - -* Generic conversion/validation can be added to columns. - -* BoolCol for portable boolean columns (BOOL on Postgres, INT on - MySQL, etc.) - -* Non-integer IDs. (Automatic table creation is not supported for - non-integer IDs) - -* Explicit IDs for new instances/rows (required for non-integer IDs). - -* Instances can be synced with the database (in case there have been - updates to the object since it was first fetched). - -* Instances can be expired, so that they will be synced when they are - next accessed. - -.. _Firebird: http://firebird.sourceforge.net/ - -Interface Changes ------------------ - -* `SQLBuilder.sqlRepr` renamed to `SQLBuilder.sqlrepr`, signature - changed to ``sqlrepr(value, databaseName)`` to quote ``value``, - where ``databaseName`` is one of ``"mysql"``, ``"postgres"``, - ``"sqlite"``, ``"firebird"``. - -* ``sqlRepr`` magic method renamed to ``__sqlrepr__``, and takes new - ``databaseName`` argument. - -* When using explicit booleans, use ``Col.TRUE`` and ``Col.FALSE`` for - backward compatibility with Python 2.2. This is not required for - ``BoolCol``, however (which converts all true values to TRUE and - false values to FALSE) - -* SQLObject has a ``sqlrepr`` method, so you can construct queries - with something like ``"WHERE last_name = %s" % - Person.sqlrepr('Bob')`` - -Bugs ----- - -* Released all locks with ``finally:``, so that bugs won't cause - frozen locks. - -* Tons of transaction fixes. Transactions pretty much work. - -* A class can have multiple foreign keys pointing to the same table - (e.g., ``spouse = ForeignKey("Person"); supervisor = - ForeignKey("Person")``) - -SQLObject 0.4 -============= - -Features --------- - -* You can specify columns in a new, preferred manner:: - - class SomeObject(SQLObject): - someColumn = Col() - - Equivalent to:: - - class SomeObject(SQLObject): - _columns = [Col('someColumn')] - - Ditto joins. - -* Cache objects have a clear method, which empties all objects. - However, weak references to objects *are* maintained, so the - integrity of the cache can be ensured. - -* SQLObject subclasses can be further subclassed, adding or removing - column definitions (as well as changing settings like connection, - style, etc). Each class still refers to a single concrete table in - the database -- the class hierarchy is not represented in the - database. - -* Each SQLObject subclass can have an associated style, as given in - the `_style` attribute. This object is used to map between Python - and database names (e.g., the column name for a Python attribute). - Some samples are available in the `Style` module. - -* Postgres support for `_fromDatabase` (reading a table definition from - the database, and creating a class from that). - -* Postgres id columns more permissive, you don't have to create a - specially named sequence (or implicitly create that sequence through - ``SERIAL``). lastoid is used instead. - -* MySQL uses ``localhost`` as the default host, and the empty string - as the default password. - -* Added functions for use with queries: `ISNULL`, `ISNOTNULL`. ``==`` - and ``!=`` can be used with None, and is translated into `ISNULL`, - `ISNOTNULL`. - -* Classes can be part of a specific registry. Since classes are - referred to by name in several places, the names have to be unique. - This can be problematic, so you can add a class variable `_registry`, - the value of which should be a string. Classes references are - assumed to be inside that registry, and class names need only be - unique among classes in that registry. - -* ``SomeClass.select()`` selects all, instead of using - ``SomeClass.select('all')``. You can also use None instead of - ``'all'``. - -* Trying to fetch non-existent objects raises `SQLObjectNotFound`, - which is a subclass of the builtin exception `LookupError`. - This may not be raised if `_cacheValues` is False and you use - the ID to fetch an object (but alternateID fetches will raise - the exception in either case). - -* Can order by descending order, with the `reversed` option to - the `select` method, or by prefixing the column with a ``"-"``. - -* Ordering with joins works better -- you can order with multiple - columns, as well as descending ordering. - -Col and Join -~~~~~~~~~~~~ - -* `Join` constructors have an argument `orderBy`, which is the name - of a Python attribute to sort results by. If not given, the - appropriate class's `_defaultOrder` will be used. None implies - no sorting (and ``orderBy=None`` will override `_defaultOrder`). - -* `ForeignKey` class (subclass of `Col`), for somewhat easier/clearer - declaration of foreign keys. - -* `Col` (and subclasses) can take a `sqlType` argument, which is used - in table definitions. E.g., ``Col(sqlType="BOOLEAN")`` can be used - to create a ``BOOLEAN`` column, even though no `BooleanCol` exists. - -* `alternateID` (a specifier for columns) implies ``NOT NULL``. Also - implies ``UNIQUE``. - -* `unique` (a specifier for columns) added. - -* `DecimalCol` and `CurrencyCol` added. - -* `EnumCol` uses constraints on Postgres (if you use `createTable`). - -Bugs ----- - -* `DateTimeCol` uses ``TIMESTAMP`` for Postgres. Note that the - Python type name is used for column names, not necessarily the - SQL standard name. - -* Foreign key column names are slightly more permissive. They still - need to end in ``id``, but it's case insensitive. - -* _defaultOrder should be the python attribute's name, not the database - name. - -* SomeClass.q.colName uses proper Python attributes for colName, and - proper database names when executed in the database. - -* SQLite select results back to being proper iterator. - -* SomeClass.q.colName now does proper translation to database names, - using dbName, etc., instead of being entirely algorithm-driven. - -* Raise `TypeError` if you pass an unknown argument to the `new` - method. - -* You can override the _get_* or _set_* version of a property without - overriding the other. - -* Python 2.3 compatible. - -* Trying to use ``Col('id')`` or ``id = Col()`` will raise an - exception, instead of just acting funky. - -* ``ForeignKey`` columns return None if the associated column is - NULL in the database (used to just act weird). - -* Instantiating an object with an id of None will give an error, - instead of just acting weird. - -Internal --------- - -* `Col` class separated into `Col` and `SOCol` (and same for all other - `*Col` classes). `Col` defines a column, `SOCol` is that definition - bound to a particular SQLObject class. - -* Instance variable ``_SO_columns`` holds the `SOCol` instances. - -SQLObject 0.3 -============= - -Features --------- - -* Table creation (SQL schema generation) via new class method - `createTable`. And of course a `dropTable` method to go with. - -* Add and remove columns at runtime, optionally modifying the - schema in the database (via ``ALTER``). (Does not work in - SQLite) - -* New column classes (see `Col` module), indicates type - -* Classes can be created by parsing an already existant table - (MySQL only). - -* Objects are not cached indefinitely. Cached objects are expired - into a weak dictionary (it allows objects to be garbage collected if - nowhere else in the program is using the object, but until it is - collected it's still available to the cache). Some cache control, - pass ``nocache=True`` to your connection object to eliminate as much - caching as possible. See `Cache` module for a bit more. - -* New DBMConnection, implements a database-like backend without any - database to speak of, including queries (so long as you use - `SQLBuilder` and don't generate your where clauses manually). - Actual SQL generation is done entirely by the database connection, - allowing portability across very different backends. - -* Postgres table IDs should be created with type ``SERIAL`` (which - implicitly creates a sequence). - -* New `_defaultOrder` class variable gives a default for the - `orderBy` parameter to `select` queries. - -Bugs ----- - -* LIMIT/OFFSET (select result slicing) works in Postgres and SQLite. - -* ``tableExists`` method from DBConnection works in same. - -* mxDateTime not required (never should have been, always just an - option). - -SQLObject 0.2.1 -=============== - -Bugs ----- - -* Fixed caching of new objects - -Features --------- - -* SQLite_ support - -* Select statements are lazily generated, retrieve full rows for - speed, and are slicable (`select docs`_). - -* `alternateID` option for `Col` objects -- select individual objects - via UNIQUE columns, e.g., a username (`Col docs`_). - -.. _SQLite: http://sqlite.org/ - -.. _select docs: SQLObject.html#selecting-multiple-objects - -.. _Col docs: SQLObject.html#col-class-specifying-columns - -.. image:: http://sflogo.sourceforge.net/sflogo.php?group_id=74338&type=10 - :target: http://sourceforge.net/projects/sqlobject - :class: noborder - :align: center - :height: 15 - :width: 80 - :alt: Get SQLObject at SourceForge.net. Fast, secure and Free Open Source software downloads Modified: SQLObject/branches/0.10/docs/rebuild =================================================================== --- SQLObject/branches/0.10/docs/rebuild 2009-07-25 10:38:40 UTC (rev 3923) +++ SQLObject/branches/0.10/docs/rebuild 2009-07-25 10:44:06 UTC (rev 3924) @@ -5,7 +5,7 @@ echo "Adding $parent to \$PYTHONPATH" export PYTHONPATH=$parent:$PYTHONPATH -NORMAL="Authors DeveloperGuide FAQ Inheritance News News1 +NORMAL="Authors DeveloperGuide FAQ Inheritance News SQLBuilder SQLObject SelectResults TODO Versioning Views web/index web/links web/repository web/community index community sqlobject-architecture sqlobject-admin" Modified: SQLObject/branches/0.10/setup.cfg =================================================================== --- SQLObject/branches/0.10/setup.cfg 2009-07-25 10:38:40 UTC (rev 3923) +++ SQLObject/branches/0.10/setup.cfg 2009-07-25 10:44:06 UTC (rev 3924) @@ -12,7 +12,7 @@ [pudge] theme = pythonpaste.org docs = docs/index.txt docs/Authors.txt docs/DeveloperGuide.txt docs/FAQ.txt - docs/Inheritance.txt docs/News.txt docs/News1.txt docs/SQLBuilder.txt + docs/Inheritance.txt docs/News.txt docs/SQLBuilder.txt docs/SQLObject.txt docs/SelectResults.txt docs/TODO.txt docs/Versioning.txt docs/Views.txt docs/community.txt docs/download.txt docs/links.txt docs/sqlobject-admin.txt docs/sqlobject-architecture.txt |
From: <sub...@co...> - 2009-07-25 10:38:51
|
Author: phd Date: 2009-07-25 04:38:40 -0600 (Sat, 25 Jul 2009) New Revision: 3923 Modified: SQLObject/branches/0.9/docs/News.txt Log: Removed old news. Modified: SQLObject/branches/0.9/docs/News.txt =================================================================== --- SQLObject/branches/0.9/docs/News.txt 2009-07-23 14:10:21 UTC (rev 3922) +++ SQLObject/branches/0.9/docs/News.txt 2009-07-25 10:38:40 UTC (rev 3923) @@ -151,7 +151,7 @@ Released 10 Jan 2008. -* A number of changes ported from `SQLObject 0.7.10`_. +* A number of changes ported from SQLObject 0.7.10. SQLObject 0.9.2 =============== @@ -165,7 +165,7 @@ * Fixed bugs in SQLiteConnection.guessColumn(). -* A number of changes ported from `SQLObject 0.7.9`_ and `SQLObject 0.8.6`_. +* A number of changes ported from SQLObject 0.7.9 and SQLObject 0.8.6. SQLObject 0.9.1 =============== @@ -177,7 +177,7 @@ * Fixed misspelled methods in col.py. -* A number of bugfixes ported from `SQLObject 0.7.8`_ and `SQLObject 0.8.5`_. +* A number of bugfixes ported from SQLObject 0.7.8 and SQLObject 0.8.5`_. SQLObject 0.9.0 =============== @@ -241,7 +241,7 @@ Released 10 Jan 2008. -* A number of changes ported from `SQLObject 0.7.10`_. +* A number of changes ported from SQLObject 0.7.10. SQLObject 0.8.6 =============== @@ -252,7 +252,7 @@ exception in __nonzero__() is inconsistent with other iterators (bool(iter([])) => True). -* A number of changes ported from `SQLObject 0.7.9`_. +* A number of changes ported from SQLObject 0.7.9. SQLObject 0.8.5 =============== @@ -266,7 +266,7 @@ * Suppress the second RowUpdateSignal in .set() called from ._SO_setValue(). -* A number of bugfixes ported from `SQLObject 0.7.8`_. +* A number of bugfixes ported from SQLObject 0.7.8. SQLObject 0.8.4 =============== @@ -425,856 +425,6 @@ * Fixed aggregators and accumulators with inheritance. -SQLObject 0.7.10 -================ - -Released 10 Jan 2008. - -* With PySQLite2 do not use encode()/decode() from PySQLite1 - always use - base64 for BLOBs. - -* MySQLConnection doesn't convert query strings to unicode (but allows to - pass unicode query strings if the user build ones). DB URI parameter - sqlobject_encoding is no longer used. - -SQLObject 0.7.9 -=============== - -Released 30 Oct 2007. - -Bug Fixes ---------- - -* Remove 'limit' from SelectResults after setting start/end so .clone() - never sees limit again. - -* Fixed a bug in sqlbuilder._LikeQuoted() - call sqlrepr() on the - expression to escape single quotes if the expression is a string. - -* Fixed StringCol and UnicodeCol: use sqlType with MSSQL. - -* Fixed startswith/endswith/contains for UnicodeCol. - -Other Changes -------------- - -* Changed the default value for 'varchar' in BLOBColumns from 'auto' to False - (so that the default type for the columns in MySQL is BLOB, not TEXT). - -* Changed the implementation type in BoolCol under MySQL from TINYINT to - BOOL (which is a synonym for TINYINT(1)). - -SQLObject 0.7.8 -=============== - -Released 25 July 2007. - -Bug Fixes ---------- - -* Replaced calls to style.dbColumnToPythonAttr() in joins.py by name/dbName - lookup in case the user named columns differently using dbName. - -* Minor correction in the tests: we fully support EnumCol in Postgres. - -* MySQLConnection now recognizes Enum, Double and Time columns when drawing the - database scheme from DB. - -* Minor fix in FirebirdConnection.fromDatabase. - -* Fixed a bug with default field values for columns for Firebird connection. - -* Fixed a bug in col.createSQL(). - -* Fixed a bug in converting date/time for years < 1000 (time.strptime() - requires exactly 4 digits for %Y, hence a year < 1000 must be 0-padded). - -Other Changes -------------- - -* Changed string quoting style for PostgreSQL and MySQL from \\' to ''. - -SQLObject 0.7.7 -=============== - -Released 10 May 2007. - -Bug Fixes ---------- - -* Fixed a bug in SQLRelatedJoin that ignored per-instance connection. - -* Fixed a bug in MySQL connection in case there is no charset in the DB URI. - -SQLObject 0.7.6 -=============== - -Released 3 May 2007. - -Bug Fixes ---------- - -* Fixed a longstanding bug with .select() ignoring 'limit' parameter. - -* Fixed a bug with absent comma in JOINs. - -* Fixed sqlbuilder - .startswith(), .endswith() and .contains() assumed - their parameter must be a string; now you can pass an SQLExpression: - Table.q.name.contains(func.upper('a')), for example. - -* Fixed a longstanding bug in sqlbuilder.Select() with groupBy being a - sequence. - -* Fixed a bug with Aliases in JOINs. - -* Yet another patch to properly initialize MySQL connection encoding. - -* Fixed a minor comparison problem in test_decimal.py. - -* More documentation about orderBy. - -SQLObject 0.7.5 -=============== - -Released 11 Apr 2007. - -Bug Fixes ---------- - -* Fixed test_deep_inheritance.py - setup classes in the correct order - (required for Postgres 8.0+ which is strict about referential integrity). - -* Fixed a bug in DateValidator caused by datetime being a subclass of date. - -SQLObject 0.7.4 -=============== - -Released 19 Mar 2007. - -Small Features --------------- - -* For MySQLdb 1.2.2+ call ping(True) on the connection to allow - autoreconnect after a timeout. - -Bug Fixes ---------- - -* Another round of changes to create/drop the tables in the right order - in the command-line client `sqlobject-admin`. - -* Fixed a bug in UnicodeField - allow comparison with None. - -SQLObject 0.7.3 -=============== - -Released 30 Jan 2007. - -Bug Fixes ---------- - -* Allow multiple MSSQL connections. - -* Psycopg1 requires port to be a string; psycopg2 requires port to be an int. - -* Fixed a bug in MSSQLConnection caused by column names being unicode. - -* Fixed a bug in FirebirdConnection caused by column names having trailing - spaces. - -* Fixed a missed import in firebirdconnection.py. - -* Remove a leading slash in FirebirdConnection. - -* Fixed a bug in deep Inheritance tree. - -SQLObject 0.7.2 -=============== - -Released 20 Nov 2006. - -Features & Interface --------------------- - -* sqlbuilder.Select now supports JOINs exactly like SQLObject.select. - -* destroySelf() removes the object from related joins. - -Bug Fixes ---------- - -* Fixed a number of unicode-related problems with newer MySQLdb. - -* If the DB API driver returns timedelta instead of time (MySQLdb does - this) it is converted to time; but if the timedelta has days an exception - is raised. - -* Fixed a number of bugs in InheritableSQLObject related to foreign keys. - -* Fixed a bug in InheritableSQLObject related to the order of tableRegistry - dictionary. - -* A bug fix that allows to use SQLObject with DateTime from Zope. - -Documentation Added -------------------- - -* Added "How can I define my own intermediate table in my Many-to-Many - relationship?" to FAQ. - -SQLObject 0.7.1 -=============== - -Released 25 Sep 2006. - -Features & Interface --------------------- - -* Added support for psycopg2_ - -.. _psycopg2: http://initd.org/projects/psycopg2 - -* Added support for MSSQL. - -* Added ``TimeCol``. - -* ``RelatedJoin`` and ``SQLRelatedJoin`` objects have a - ``createRelatedTable`` keyword argument (default ``True``). If - ``False``, then the related table won't be automatically created; - instead you must manually create it (e.g., with explicit SQLObject - classes for the joins). - -* Implemented ``RLIKE`` (regular expression LIKE). - -* Moved _idSequence to sqlmeta.idSequence. - -Small Features --------------- - -* Select over RelatedJoin. - -* SQLite foreign keys. - -* Postgres DB URIs with a non-default path to unix socket. - -* Allow the use of foreign keys in selects. - -* Implemented addColumn() for SQLite. - -* With PySQLite2 use encode()/decode() from PySQLite1 for BLOBCol if available; else use base64. - -Bug Fixes ---------- - -* Fixed a longstanding problem with UnicodeCol - at last you can use unicode - strings in .select() and .selectBy() queries. There are some limitations, - though; see the description of the UnicodeCol_. - -.. _UnicodeCol: SQLObject.html#column-types - -* Cull patch (clear cache). - -* .destroySelf() inside a transaction. - -* Synchronize main connection cache during transaction commit. - -* Ordering joins with NULLs. - -* Fixed bugs with plain/non-plain setters. - -* Lots of other bug fixes. - -SQLObject 0.7.0 -=============== - -Features & Interface --------------------- - -* Inheritance. See Inheritance.html_ - -.. _Inheritance.html: Inheritance.html - -* Date/time validators, converters, tests. - -* Both `mxDateTime - <http://www.egenix.com/files/python/mxDateTime.html>`_ and `datetime - <http://python.org/doc/current/lib/module-datetime.html>`_ supported - for ``DateTimeCol``. - -* Added ``BLOBCol``, for binary data. - -* Added ``PickleCol``, to transparently pickle and unpickle data from - column. - -* New `documented reflection interface - <http://svn.colorstudy.com/SQLObject/docs/interface.py>`_, using the - new ``.sqlmeta`` class/instance. Most special attributes that - started with ``_`` were moved into ``sqlmeta`` (with leading - underscore removed). - -* New aggregate functions for select results, like - ``cls.select().max(columnName)``: ``.max()``, ``.min()``, - ``.avg()``. - -* ``ConnectionHub`` aka ``sqlhub`` (@@: Needs documentation) - -* Command-line client `sqlobject-admin - <http://sqlobject.org/docs/sqlobject-admin.html>`_. - -* ``StringCol`` has ``char_binary`` attribute, for explicit case - handling in MySQL. - -* Various joins now supported (LEFT, RIGHT, STRAIGHT, INNER, OUTER, - CROSS): see `documentation - <http://sqlobject.org/docs/SQLObject.html#left-join-and-other-joins>`_. - Aliases for joining a table with itself. - -* Subqueries/subselects (`see docs - <http://sqlobject.org/docs/SQLObject.html#subqueries-subselects>`_). - -* Select results support ``.filter(extra_query)`` - -* ``SQLMultipleJoin`` and ``SQLRelatedJoin``, like ``MultipleJoin`` - and ``RelatedJoin``, except return select results (@@: Document). - -* `SingleJoin - <http://sqlobject.org/docs/SQLObject.html#singlejoin-one-to-one>`_. - -* Columns retain their order from the class definition to table - creation. - -* SQLObject now depends on the `FormEncode <http://formencode.org>`_ - library, and internal conversion/validation is done through - FormEncode (was previously using old fork of FormEncode). - -* Column instances can have attributes set on them (generally for - annotating columns with extra data). - -Other Changes -------------- - -* When iterating over select results, a list is now immediately - created with the full list of instances being selected. Before - instances were created on demand, as select results were - pulled out row-by-row. The previous lazy behavior is available with - the method ``lazyIter``, used like ``for obj in - MyClass.select().lazyIter(): ...``. - -* Test framework now uses `py.test - <http://codespeak.net/py/current/doc/test.html>`_. - -* SQLObject now uses a simpler metaclass - (``sqlobject.declarative.DeclarativeMeta``). - -* autoCommit and queryIns ?? (@@: expand) - -* Deprecation (@@: document) - -* Use `setuptools - <http://peak.telecommunity.com/DevCenter/setuptools>`_ for packaging - and installation. - -Small Features --------------- - -* ``IntValidator`` for testing ``IntCol`` inputs. - -* Base style (``sqlobject.styles.Style``) is now a usable no-op style. - -* SQLite in-memory databases allowed with ``sqlite:/:memory:`` - -* Keyword parameters allowed to ``connectionForURI`` (like - ``debug=True``). - -* More parameters passed to MySQL connections (unix_socket, - named_pipe, init_command, read_default_file, read_default_group, - connect_time, compress, named_pipe, use_unicode, client_flag, - local_infile). - -* ``DateTimeCol.now`` is a function for producing the current date, - using whatever date/time module you are using (good for use as a - default). - -* Inherited classes fetched more efficiently (fewer queries). - -* Decimal converter to create `decimal objects - <http://python.org/doc/current/lib/module-decimal.html>`_. - -* Repository rearranged (now in - ``http://svn.colorstudy.com/SQLObject/trunk``). - -Bug Fixes ---------- - -* Tables with no columns can work. Why would you have a table without - a column? We do not know, we try only to serve. - -* Sybase ``_fromDatabase`` fixed. - -* Various fixes to support most recent ``MySQLdb`` adapter, and - ``pysqlite`` adapters. - -* URI parsing improved, including Windows paths (for use with SQLite). - -* ``selectBy(column=None)`` creates ``IS NULL`` query. - -* ``selectBy(foreignKey=value)`` now supported (not just selecting by - foreign key ID). - -* ``cascade='null'`` wasn't working properly (was cascading all - deletes, not nullifying!). - -* Lots of other bug fixes. - -SQLObject 0.6.1 -=============== - -Interface Changes ------------------ - -* The long broken and unused ``DBMConnection`` has been removed. - -* Added a connection parameter to all class methods (patch 974755) - -* Connection objects have a ``.module`` attribute, which points to - the DB-API module. This is useful for getting access to the - exception objects. - -Features --------- - -* New ``UnicodeCol()`` that converts to and from Unicode - in the database. See docs_. - -.. _docs: SQLObject.html#subclasses-of-col - -* Added indexing (from Jeremy Fitzhardinge). See `the - documentation`__ for more. - -.. __: SQLObject.html#indexes - -* All connections are explicitly closed, not just garbage collected. - Many database drivers don't close database connections properly when - the connection object is garbage collected. - -* New ``distinct`` option to selects, like ``MyClass.select(..., - distinct=True)`` - -* You can now do - ``MyClass.selectBy(joinedTable=joinedTableInstance)``, where before - you had to do - ``MyClass.selectBy(joinedTableID=joinedTableInstance.id)``. (From - Dave Cook) - -SQLObject 0.6 -============= - -Interface Changes ------------------ - -* Lazy updates. Add ``_lazyUpdate=True`` to your class, and updates - will only be written when you call ``obj.syncUpdate()`` or - ``obj.sync()`` (``sync`` also refetches the data from the database, - which ``syncUpdate`` does not do). When enabled, instances have a - property ``dirty``, which indicates if they have pending updates. - Inserts are still done immediately. - -* Separated database drivers (PostgresConnection, MySQLConnection, - etc.) into separate packages. You can access the driver through - URIs, like ``mysql://user:pass@host/dbname`` -- to set drivers after - class creation you should use `sqlobject.connectionForURI()`. - -* The ``SQLObject`` package has been renamed to ``sqlobject``. This - makes it similar to several other packages, and emphasizes the - distinction between the ``sqlobject`` package and the ``SQLObject`` - class. - -* Class instantiation now creates new rows (like `.new()` used to - do), and the `.get()` method now retrieves objects that already have - rows (like class instantiation used to do). - -* We're now using a Subversion repository instead of CVS. It is - located at http://svn.colorstudy.com/trunk/SQLObject - -* If you pass ``forceDBName=True`` to the ``*Col`` constructors, then - your column name doesn't have to be restricted to a-z, 0-9, and _. - -* ``*Col`` constructors now support cascade: ``cascade=None`` - (default) means no constraint; ``cascade=True`` means that if the - foreign key is deleted, the object will be deleted; - ``cascade=False`` means that the delete will fail; - ``cascade="null"`` means that the column will be set to NULL. The - constraints are only implemented in the DBMS, not in SQLObject - (i.e., they will not work in databases like MySQL and SQLite). - -* New ``_create(id, **kw)`` method that can be overridden to intercept - and modify attempts to insert rows in the database. - -* You can specify ``_idType`` in your class, like ``_idType = str``. - The default type is ``int``; i.e., IDs are coerced to integers. - This is a temporary interface; a more general specifier for primary - keys will be added later. - -* New classmethod ``createTableSQL()`` method for SQLObject classes, - which returns the SQL that can be used to create the table. Analog - to ``createTable()``. - -Bugs ----- - -* SQLite booleans fixed. - -* You can now use ``sqlite:/:memory:`` to store the database in - memory. - -* Some bugs resolved when caching is turned off (SF 956847) - -SQLObject 0.5.3 -=============== - -Bugs ----- - -* Python 2.2 booleans fixed (SF: 903488) - -* Longs (e.g., ``1L``) get converted properly (SF: 939965) - -SQLObject 0.5.2 -=============== - -We're now using Subversion instead of CVS. The repository is located -at svn://colorstudy.com/trunk/SQLObject - -Interface Changes ------------------ - -* If you commit or rollback a transaction, you must call - ``trans.begin()`` to restart the transaction. Any database access on - the transaction inbetween commit/rollback and being will result in an - AssertionError. (It's also acceptable to create a new transaction - object instead of reusing the old one, but objects in that - transaction will be invalid) - -Bugs ----- - -* Using .select() would hold on to a connection, and also release it - back to the connection pool. Very un-threadsafe and all-around - bad. -* Fixed bug which did not release connections after database (query) - error. -* When setting columns that use validators, the Pythonic - (vs. database) representation wasn't being stored in the column. - Now we roundtrip (through toPython and fromPython) the values when - they get set. -* PostgreConnection is back to using sequences for ID generation, - instead of oids. Long explanation -- oids can be unindexed in some - versions of Postgres, or not even exist. -* When turning caching off and using transactions, got an attribute - error on rollback. -* Rollback or commit didn't find objects that were expired from the - cache but still in memory. -* Rollback or commit didn't free the connection object, so as you - created more transactions it stole connections and didn't put them - back in the pool. - -SQLObject 0.5.1 -=============== - -Released: 12-Nov-2003 - -Interface Changes ------------------ - -* Select results no longer have a __len__ method (i.e., you can't do - ``len(Person.select(Person.q.firstName=='Bob'))``). There is now a - ``.count()`` method instead. ``__len__`` gets called implicitly in - several circumstances, like ``list()``, which causes potentially - expensive queries to ``COUNT(*)``. - -Bugs ----- - -* Objects retrieved from a join now respect the transaction context of - the original instance. -* ``.select().reversed()`` works. - -SQLObject 0.5 -============= - -Released: 1-Nov-2003 - -Features --------- - -* Firebird_ support. - -* Database-specific literal quoting (motivation: MySQL and Postgres - use backslashes, Firebird and SQLite do not). - -* Generic conversion/validation can be added to columns. - -* BoolCol for portable boolean columns (BOOL on Postgres, INT on - MySQL, etc.) - -* Non-integer IDs. (Automatic table creation is not supported for - non-integer IDs) - -* Explicit IDs for new instances/rows (required for non-integer IDs). - -* Instances can be synced with the database (in case there have been - updates to the object since it was first fetched). - -* Instances can be expired, so that they will be synced when they are - next accessed. - -.. _Firebird: http://firebird.sourceforge.net/ - -Interface Changes ------------------ - -* `SQLBuilder.sqlRepr` renamed to `SQLBuilder.sqlrepr`, signature - changed to ``sqlrepr(value, databaseName)`` to quote ``value``, - where ``databaseName`` is one of ``"mysql"``, ``"postgres"``, - ``"sqlite"``, ``"firebird"``. - -* ``sqlRepr`` magic method renamed to ``__sqlrepr__``, and takes new - ``databaseName`` argument. - -* When using explicit booleans, use ``Col.TRUE`` and ``Col.FALSE`` for - backward compatibility with Python 2.2. This is not required for - ``BoolCol``, however (which converts all true values to TRUE and - false values to FALSE) - -* SQLObject has a ``sqlrepr`` method, so you can construct queries - with something like ``"WHERE last_name = %s" % - Person.sqlrepr('Bob')`` - -Bugs ----- - -* Released all locks with ``finally:``, so that bugs won't cause - frozen locks. - -* Tons of transaction fixes. Transactions pretty much work. - -* A class can have multiple foreign keys pointing to the same table - (e.g., ``spouse = ForeignKey("Person"); supervisor = - ForeignKey("Person")``) - -SQLObject 0.4 -============= - -Features --------- - -* You can specify columns in a new, preferred manner:: - - class SomeObject(SQLObject): - someColumn = Col() - - Equivalent to:: - - class SomeObject(SQLObject): - _columns = [Col('someColumn')] - - Ditto joins. - -* Cache objects have a clear method, which empties all objects. - However, weak references to objects *are* maintained, so the - integrity of the cache can be ensured. - -* SQLObject subclasses can be further subclassed, adding or removing - column definitions (as well as changing settings like connection, - style, etc). Each class still refers to a single concrete table in - the database -- the class hierarchy is not represented in the - database. - -* Each SQLObject subclass can have an associated style, as given in - the `_style` attribute. This object is used to map between Python - and database names (e.g., the column name for a Python attribute). - Some samples are available in the `Style` module. - -* Postgres support for `_fromDatabase` (reading a table definition from - the database, and creating a class from that). - -* Postgres id columns more permissive, you don't have to create a - specially named sequence (or implicitly create that sequence through - ``SERIAL``). lastoid is used instead. - -* MySQL uses ``localhost`` as the default host, and the empty string - as the default password. - -* Added functions for use with queries: `ISNULL`, `ISNOTNULL`. ``==`` - and ``!=`` can be used with None, and is translated into `ISNULL`, - `ISNOTNULL`. - -* Classes can be part of a specific registry. Since classes are - referred to by name in several places, the names have to be unique. - This can be problematic, so you can add a class variable `_registry`, - the value of which should be a string. Classes references are - assumed to be inside that registry, and class names need only be - unique among classes in that registry. - -* ``SomeClass.select()`` selects all, instead of using - ``SomeClass.select('all')``. You can also use None instead of - ``'all'``. - -* Trying to fetch non-existent objects raises `SQLObjectNotFound`, - which is a subclass of the builtin exception `LookupError`. - This may not be raised if `_cacheValues` is False and you use - the ID to fetch an object (but alternateID fetches will raise - the exception in either case). - -* Can order by descending order, with the `reversed` option to - the `select` method, or by prefixing the column with a ``"-"``. - -* Ordering with joins works better -- you can order with multiple - columns, as well as descending ordering. - -Col and Join -~~~~~~~~~~~~ - -* `Join` constructors have an argument `orderBy`, which is the name - of a Python attribute to sort results by. If not given, the - appropriate class's `_defaultOrder` will be used. None implies - no sorting (and ``orderBy=None`` will override `_defaultOrder`). - -* `ForeignKey` class (subclass of `Col`), for somewhat easier/clearer - declaration of foreign keys. - -* `Col` (and subclasses) can take a `sqlType` argument, which is used - in table definitions. E.g., ``Col(sqlType="BOOLEAN")`` can be used - to create a ``BOOLEAN`` column, even though no `BooleanCol` exists. - -* `alternateID` (a specifier for columns) implies ``NOT NULL``. Also - implies ``UNIQUE``. - -* `unique` (a specifier for columns) added. - -* `DecimalCol` and `CurrencyCol` added. - -* `EnumCol` uses constraints on Postgres (if you use `createTable`). - -Bugs ----- - -* `DateTimeCol` uses ``TIMESTAMP`` for Postgres. Note that the - Python type name is used for column names, not necessarily the - SQL standard name. - -* Foreign key column names are slightly more permissive. They still - need to end in ``id``, but it's case insensitive. - -* _defaultOrder should be the python attribute's name, not the database - name. - -* SomeClass.q.colName uses proper Python attributes for colName, and - proper database names when executed in the database. - -* SQLite select results back to being proper iterator. - -* SomeClass.q.colName now does proper translation to database names, - using dbName, etc., instead of being entirely algorithm-driven. - -* Raise `TypeError` if you pass an unknown argument to the `new` - method. - -* You can override the _get_* or _set_* version of a property without - overriding the other. - -* Python 2.3 compatible. - -* Trying to use ``Col('id')`` or ``id = Col()`` will raise an - exception, instead of just acting funky. - -* ``ForeignKey`` columns return None if the associated column is - NULL in the database (used to just act weird). - -* Instantiating an object with an id of None will give an error, - instead of just acting weird. - -Internal --------- - -* `Col` class separated into `Col` and `SOCol` (and same for all other - `*Col` classes). `Col` defines a column, `SOCol` is that definition - bound to a particular SQLObject class. - -* Instance variable ``_SO_columns`` holds the `SOCol` instances. - -SQLObject 0.3 -============= - -Features --------- - -* Table creation (SQL schema generation) via new class method - `createTable`. And of course a `dropTable` method to go with. - -* Add and remove columns at runtime, optionally modifying the - schema in the database (via ``ALTER``). (Does not work in - SQLite) - -* New column classes (see `Col` module), indicates type - -* Classes can be created by parsing an already existant table - (MySQL only). - -* Objects are not cached indefinitely. Cached objects are expired - into a weak dictionary (it allows objects to be garbage collected if - nowhere else in the program is using the object, but until it is - collected it's still available to the cache). Some cache control, - pass ``nocache=True`` to your connection object to eliminate as much - caching as possible. See `Cache` module for a bit more. - -* New DBMConnection, implements a database-like backend without any - database to speak of, including queries (so long as you use - `SQLBuilder` and don't generate your where clauses manually). - Actual SQL generation is done entirely by the database connection, - allowing portability across very different backends. - -* Postgres table IDs should be created with type ``SERIAL`` (which - implicitly creates a sequence). - -* New `_defaultOrder` class variable gives a default for the - `orderBy` parameter to `select` queries. - -Bugs ----- - -* LIMIT/OFFSET (select result slicing) works in Postgres and SQLite. - -* ``tableExists`` method from DBConnection works in same. - -* mxDateTime not required (never should have been, always just an - option). - -SQLObject 0.2.1 -=============== - -Bugs ----- - -* Fixed caching of new objects - -Features --------- - -* SQLite_ support - -* Select statements are lazily generated, retrieve full rows for - speed, and are slicable (`select docs`_). - -* `alternateID` option for `Col` objects -- select individual objects - via UNIQUE columns, e.g., a username (`Col docs`_). - -.. _SQLite: http://sqlite.org/ - -.. _select docs: SQLObject.html#selecting-multiple-objects - -.. _Col docs: SQLObject.html#col-class-specifying-columns - .. image:: http://sflogo.sourceforge.net/sflogo.php?group_id=74338&type=10 :target: http://sourceforge.net/projects/sqlobject :class: noborder |