Mike Bayer [Fri, 30 Jan 2009 19:22:43 +0000 (19:22 +0000)]
- sql round trips are coming on line for sqlite, pg8000
- pg8000 returns col.description as bytes, heh
- absolute module imports play havoc with "python test/foo/test.py" - start using -m
Mike Bayer [Fri, 30 Jan 2009 15:12:41 +0000 (15:12 +0000)]
use sqlalchemy.util functions here. the previous implementation is
not compatible with py3k. I can run all tests or any combination of tests
by using sqlalchemy.util so it's not clear to me why sqlalchemy.util
reportedly cannot be imported at this phase.
Mike Bayer [Sun, 25 Jan 2009 00:48:15 +0000 (00:48 +0000)]
- the 'expire' option on query.update() has been renamed to 'fetch', thus matching
that of query.delete()
- query.update() and query.delete() both default to 'evaluate' for the synchronize
strategy.
- the 'synchronize' strategy for update() and delete() raises an error on failure.
There is no implicit fallback onto "fetch". Failure of evaluation is based
on the structure of criteria, so success/failure is deterministic based on
code structure.
Mike Bayer [Sat, 17 Jan 2009 07:03:36 +0000 (07:03 +0000)]
- added a compiler extension that allows easy creation of user-defined compilers,
which register themselves with custom ClauseElement subclasses such that the compiler
is invoked along with the primary compiler. The compilers can also be registered
on a per-dialect basis.
This provides a supported path for SQLAlchemy extensions such as ALTER TABLE
extensions and other SQL constructs.
Mike Bayer [Fri, 16 Jan 2009 19:31:28 +0000 (19:31 +0000)]
- more or less pg8000 support. has a rough time with non-ascii data.
- removed "send unicode straight through" logic from sqlite, this becomes
base dialect configurable
- simplfied Interval type to not have awareness of PG dialect. dialects
can name TypeDecorator classes in their colspecs dict.
Mike Bayer [Wed, 14 Jan 2009 17:52:10 +0000 (17:52 +0000)]
- mysql+pyodbc working for regular usage, ORM, etc. types and unicode still flaky.
- updated testing decorators to receive "name+driver"-style specifications
Mike Bayer [Tue, 13 Jan 2009 06:11:17 +0000 (06:11 +0000)]
- Fixed a bug with the unitofwork's "row switch" mechanism,
i.e. the conversion of INSERT/DELETE into an UPDATE, when
combined with joined-table inheritance and an object
which contained no defined values for the child table where
an UPDATE with no SET clause would be rendered.
Mike Bayer [Mon, 12 Jan 2009 20:36:06 +0000 (20:36 +0000)]
- Can now specify Column objects on subclasses which have no
table of their own (i.e. use single table inheritance).
The columns will be appended to the base table, but only
mapped by the subclass.
- For both joined and single inheriting subclasses, the subclass
will only map those columns which are already mapped on the
superclass and those explicit on the subclass. Other
columns that are present on the `Table` will be excluded
from the mapping by default, which can be disabled
by passing a blank `exclude_properties` collection to the
`__mapper_args__`. This is so that single-inheriting
classes which define their own columns are the only classes
to map those columns. The effect is actually a more organized
mapping than you'd normally get with explicit `mapper()`
calls unless you set up the `exclude_properties` arguments
explicitly.