471,325 Members | 1,663 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,325 software developers and data experts.

SQLObject 0.10.0b1

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 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.10.0b1

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

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

* Dropped support for Python 2.2. The minimal version of Python for
SQLObject is 2.3 now.

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

* SQLBuilder Select supports the rest of SelectResults options (reversed,
distinct, joins, etc.)

* SQLObject.select() (i.e., SelectResults) and DBConnection.queryForSelect()
use SQLBuilder Select queries; this make all SELECTs implemented
internally via a single mechanism.

* SQLBuilder Joins handle SQLExpression tables (not just str/SQLObject/Alias)
and properly sqlrepr.

* SQLBuilder tablesUsedDict handles sqlrepr'able objects.

* Added SQLBuilder ImportProxy. It allows one to ignore the circular import
issues with referring to SQLObject classes in other files - it uses the
classregistry as the string class names for FK/Joins do, but specifically
intended for SQLBuilder expressions. See
tests/test_sqlbuilder_importproxy.py.

* Added SelectResults.throughTo. It allows one to traverse relationships
(FK/Join) via SQL, avoiding the intermediate objects. Additionally, it's
a simple mechanism for pre-caching/eager-loading of later FK
relationships (i.e., going to loop over a select of somePeople and ask
for aPerson.group, first call list(somePeople.throughTo.group) to preload
those related groups and use 2 db queries instead of N+1). See
tests/test_select_through.py.

* Added ViewSQLObject.

* Added sqlmeta.getColumns() to get all the columns for a class (including
parent classes), excluding the column 'childName' and including the column
'id'. sqlmeta.asDict() now uses getColumns(), so there is no need to
override it in the inheritable sqlmeta class; this makes asDict() to work
properly on inheritable sqlobjects.

* Changed the implementation type in BoolCol under SQLite from TINYINT to
BOOLEAN and made fromDatabase machinery to recognize it.

* Added rich comparison methods; SQLObjects of the same class are
considered equal is they have the same id; other methods return
NotImplemented.

* MySQLConnection (and DB URI) accept a number of SSL-related parameters:
ssl_key, ssl_cert, ssl_ca, ssl_capath.

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.
Jan 11 '08 #1
0 1008

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Oleg Broytmann | last post: by
reply views Thread by Oleg Broytmann | last post: by
3 posts views Thread by Oleg Broytmann | last post: by
reply views Thread by Oleg Broytmann | last post: by
reply views Thread by Oleg Broytmann | last post: by
2 posts views Thread by Oleg Broytmann | last post: by
3 posts views Thread by Oleg Broytmann | last post: by
4 posts views Thread by petr.jakes.tpc | last post: by
reply views Thread by rosydwin | last post: by

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.