SQLObject 0.9.0

O

Oleg Broytmann

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/mailman/listinfo/sqlobject-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 http://sqlobject.org/News.html

Oleg.
 
K

kyosohma

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/mailman/listinfo/sqlobject-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.

Why was this released 3 times with different version numbers in less
than an hour?

Mike
 
J

James Stroud

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
 
?

=?ISO-8859-1?Q?=22Martin_v=2E_L=F6wis=22?=

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

SQLObject 1.5.1 0
SQLObject 1.1.3 0
SQLObject 1.3.2 and 1.2.4 0
SQLObject 1.3.3 and 1.4.1 0
SQLObject 0.15.1 0
SQLObject 1.5.2 0
SQLObject 1.0.1 0
SQLObject 1.4.0 0

Members online

Forum statistics

Threads
473,780
Messages
2,569,611
Members
45,276
Latest member
Sawatmakal

Latest Threads

Top