By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
444,001 Members | 1,176 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 444,001 IT Pros & Developers. It's quick & easy.

SQLObject 0.9.0

P: n/a
Hello!

I'm pleased to announce the 0.9.0 release of SQLObject, the first stable
release of the 0.9 branch.
What is SQLObject
=================

SQLObject is an object-relational mapper. Your database tables are described
as classes, and rows are instances of those classes. SQLObject is meant to be
easy to use and quick to get started with.

SQLObject supports a number of backends: MySQL, PostgreSQL, SQLite, and
Firebird. It also has newly added support for Sybase, MSSQL and MaxDB (also
known as SAPDB).
Where is SQLObject
==================

Site:
http://sqlobject.org

Development:
http://sqlobject.org/devel/

Mailing list:
https://lists.sourceforge.net/mailma...object-discuss

Archives:
http://news.gmane.org/gmane.comp.python.sqlobject

Download:
http://cheeseshop.python.org/pypi/SQLObject/0.9.0

News and changes:
http://sqlobject.org/News.html
What's New
==========

Features & Interface
--------------------

* Support for Python 2.2 has been declared obsolete.

* Removed actively deprecated attributes;
lowered deprecation level for other attributes to be removed after 0.9.

* SQLite connection got columnsFromSchema(). Now all connections fully support
fromDatabase. There are two version of columnsFromSchema() for SQLite -
one parses the result of "SELECT sql FROM sqlite_master" and the other
uses "PRAGMA table_info"; the user can choose one over the other by using
"use_table_info" parameter in DB URI; default is False as the pragma is
available only in the later versions of SQLite.

* Changed connection.delColumn(): the first argument is sqlmeta, not
tableName (required for SQLite).

* SQLite connection got delColumn(). Now all connections fully support
delColumn(). As SQLite backend doesn't implement "ALTER TABLE DROP COLUMN"
delColumn() is implemented by creating a new table without the column,
copying all data, dropping the original table and renaming the new table.

* Versioning - see http://sqlobject.org/Versioning.html

* MySQLConnection got new keyword "conv" - a list of custom converters.

* Use logging if it's available and is configured via DB URI.

* New columns: TimestampCol to support MySQL TIMESTAMP type;
SetCol to support MySQL SET type;
TinyIntCol for TINYINT; SmallIntCol for SMALLINT;
MediumIntCol for MEDIUMINT; BigIntCol for BIGINT.

Small Features
--------------

* Support for MySQL INT type attributes: UNSIGNED, ZEROFILL.

* Support for DEFAULT SQL attribute via defaultSQL keyword argument.

* cls.tableExists() as a shortcut for conn.tableExists(cls.sqlmeta.table).

* cls.deleteMany(), cls.deleteBy().

Bug Fixes
---------

* idName can be inherited from the parent sqlmeta class.

* 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.

* Fixed a bug in SQLRelatedJoin that ignored per-instance connection.

Docs
----

* Added documentation about 'validator' Col constructor option.

* Added an answer and examples to the FAQ on how to use sqlmeta.createSQL.

* Added an example on how to configure logging.

* More documentation about orderBy.

For a more complete list, please see the news:
http://sqlobject.org/News.html

Oleg.
--
Oleg Broytmann http://phd.pp.ru/ ph*@phd.pp.ru
Programmers don't die, they just GOSUB without RETURN.
May 10 '07 #1
Share this Question
Share on Google+
3 Replies


P: n/a
On May 10, 10:25 am, Oleg Broytmann <p...@phd.pp.ruwrote:
Hello!

I'm pleased to announce the 0.9.0 release of SQLObject, the first stable
release of the 0.9 branch.

What is SQLObject
=================

SQLObject is an object-relational mapper. Your database tables are described
as classes, and rows are instances of those classes. SQLObject is meant to be
easy to use and quick to get started with.

SQLObject supports a number of backends: MySQL, PostgreSQL, SQLite, and
Firebird. It also has newly added support for Sybase, MSSQL and MaxDB (also
known as SAPDB).

Where is SQLObject
==================

Site:http://sqlobject.org

Development:http://sqlobject.org/devel/

Mailing list:https://lists.sourceforge.net/mailma...object-discuss

Archives:http://news.gmane.org/gmane.comp.python.sqlobject

Download:http://cheeseshop.python.org/pypi/SQLObject/0.9.0

News and changes:http://sqlobject.org/News.html

What's New
==========

Features & Interface
--------------------

* Support for Python 2.2 has been declared obsolete.

* Removed actively deprecated attributes;
lowered deprecation level for other attributes to be removed after 0.9.

* SQLite connection got columnsFromSchema(). Now all connections fully support
fromDatabase. There are two version of columnsFromSchema() for SQLite -
one parses the result of "SELECT sql FROM sqlite_master" and the other
uses "PRAGMA table_info"; the user can choose one over the other by using
"use_table_info" parameter in DB URI; default is False as the pragma is
available only in the later versions of SQLite.

* Changed connection.delColumn(): the first argument is sqlmeta, not
tableName (required for SQLite).

* SQLite connection got delColumn(). Now all connections fully support
delColumn(). As SQLite backend doesn't implement "ALTER TABLE DROP COLUMN"
delColumn() is implemented by creating a new table without the column,
copying all data, dropping the original table and renaming the new table.

* Versioning - seehttp://sqlobject.org/Versioning.html

* MySQLConnection got new keyword "conv" - a list of custom converters.

* Use logging if it's available and is configured via DB URI.

* New columns: TimestampCol to support MySQL TIMESTAMP type;
SetCol to support MySQL SET type;
TinyIntCol for TINYINT; SmallIntCol for SMALLINT;
MediumIntCol for MEDIUMINT; BigIntCol for BIGINT.

Small Features
--------------

* Support for MySQL INT type attributes: UNSIGNED, ZEROFILL.

* Support for DEFAULT SQL attribute via defaultSQL keyword argument.

* cls.tableExists() as a shortcut for conn.tableExists(cls.sqlmeta.table).

* cls.deleteMany(), cls.deleteBy().

Bug Fixes
---------

* idName can be inherited from the parent sqlmeta class.

* 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.

* Fixed a bug in SQLRelatedJoin that ignored per-instance connection.

Docs
----

* Added documentation about 'validator' Col constructor option.

* Added an answer and examples to the FAQ on how to use sqlmeta.createSQL.

* Added an example on how to configure logging.

* More documentation about orderBy.

For a more complete list, please see the news:http://sqlobject.org/News.html

Oleg.
--
Oleg Broytmann http://phd.pp.ru/ p...@phd.pp.ru
Programmers don't die, they just GOSUB without RETURN.
Why was this released 3 times with different version numbers in less
than an hour?

Mike

May 10 '07 #2

P: n/a
ky******@gmail.com wrote:
Why was this released 3 times with different version numbers in less
than an hour?

Mike
For reasons others will know, there are different branches to the
SQLObject project. I think, analogously, python still has an active 2.4
branch, if that helps make sense of maintaining branches based on
versions. I'm not sure why the announcements aren't bundled into one
because just about everyone who sees this for the first time asks the
same question.

James
May 10 '07 #3

P: n/a
For reasons others will know, there are different branches to the
SQLObject project. I think, analogously, python still has an active 2.4
branch, if that helps make sense of maintaining branches based on
versions. I'm not sure why the announcements aren't bundled into one
because just about everyone who sees this for the first time asks the
same question.
For the community being addressed (namely, users of SQLObject), this
form provides a useful service:
- they know that three branches are actively being maintained (0.7,
0.8, and 0.9). I would expect that in particular users of the 0.7
branch are glad to see that 0.7 is still alive even though 0.9 was
just started. This is indeed more than is common, so releasing 0.7.7
simultaneously sends a clear message of affirmation (I explicitly
looked for a notice that this would be the last 0.7 release, and
found none)
- for each branch, there is a list of changes for the branch, and
I can easily see what changed in the version I'm interested in.
Googling for old release announcements (e.g. SQLObject 0.7.5) brings
up the announcement on hit 2, so I can also easily find announcemnts
if I missed one.

Those not using SQLObject, or even see this for the first time, this
form gives the project higher attention than other projects - so it
may attract users. It may also shy away users if they think this
obsessive form of sending three usenet articles in a single hour
is spam, but I guess the author is willing to take that risk.

Martin
May 11 '07 #4

This discussion thread is closed

Replies have been disabled for this discussion.