473,505 Members | 14,950 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

SQLObject 0.9.0

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
3 1752
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
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
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 thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
1617
by: Robin Munn | last post by:
I've been loving SQLObject. The ability to set up a database connection and then completely *forget* about it and just manipulate Python objects has been great. But I'm running into a problem, and...
1
1249
by: Oleg Broytmann | last post by:
Hello! I'm pleased to announce the 0.7.2 release of SQLObject. What is SQLObject ================= SQLObject is an object-relational mapper. Your database tables are described as classes,...
0
1159
by: Oleg Broytmann | last post by:
Hello! I'm pleased to announce the 0.8.0b1 release of SQLObject. This is the first beta of the new branch. Taking into account that it is a result of rather large job the beta period will be...
3
1282
by: Oleg Broytmann | last post by:
Hello! I'm pleased to announce the 0.8.0b2 release of SQLObject. What is SQLObject ================= SQLObject is an object-relational mapper. Your database tables are described as...
0
1045
by: Oleg Broytmann | last post by:
Hello! I'm pleased to announce the 0.8.0b3 release of SQLObject. What is SQLObject ================= SQLObject is an object-relational mapper. Your database tables are described as...
0
1246
by: Oleg Broytmann | last post by:
Hello! I'm pleased to announce the 0.8.0 release of SQLObject. What is SQLObject ================= SQLObject is an object-relational mapper. Your database tables are described as...
2
1394
by: Oleg Broytmann | last post by:
Hello! I'm pleased to announce the 0.8.1 release of SQLObject. What is SQLObject ================= SQLObject is an object-relational mapper. Your database tables are described as...
4
1473
by: petr.jakes.tpc | last post by:
Hi, inspired by the article written by Tarek Ziade in the February 07 issue of the "Linux +" magazine I am experimenting with the doctest module. I have two files, "displeje_pokus.py" and...
0
1096
by: Oleg Broytmann | last post by:
Hello! I'm pleased to announce the 0.10.0b1, the first beta release of a new SQLObject branch, 0.10. What is SQLObject ================= SQLObject is an object-relational mapper. Your...
0
7216
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7098
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
7367
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
7471
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
5613
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
4699
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
3176
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
754
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
407
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.