Philip Jenvey [Tue, 21 Jul 2009 05:26:26 +0000 (05:26 +0000)]
refactor to handle lazy loaded columns raising UnboundExecutionErrors. fixes
orm.test_merge test_no_load_with_backrefs on Jython, CPython avoided this due
to the luck of dict ordering
Mike Bayer [Sun, 19 Jul 2009 04:59:18 +0000 (04:59 +0000)]
generate the RETURNING col lists the same was as visit_select() does (except for oracle).
mssql gets extra label stuff to deal with column adaption (not sure if column adaption should
blow away labels like that...). fixes potential column targeting issues on all platforms
+ fixes mssql failures
Mike Bayer [Sun, 19 Jul 2009 02:20:18 +0000 (02:20 +0000)]
- returning() support is native to insert(), update(), delete(). Implementations
of varying levels of functionality exist for Postgresql, Firebird, MSSQL and
Oracle.
- MSSQL still has a few glitches that need to be resolved via label/column targeting logic.
- its looking like time to take another look at positional column targeting overall.
Mike Bayer [Sat, 18 Jul 2009 21:53:38 +0000 (21:53 +0000)]
- documentation crap
- we're probably going to want ez_setup.py around for now
- rubber malleted the access dialect to not look for old compiler classes
Mike Bayer [Mon, 13 Jul 2009 00:46:44 +0000 (00:46 +0000)]
renamed "postgres" to "postgresql", "Postgres" to "PostgreSQL". since
that's been the thing's name since 1996 or so. backwards compatibility
with the old name should be more or less complete.
Mike Bayer [Sun, 12 Jul 2009 01:23:03 +0000 (01:23 +0000)]
- firebird support. reflection works fully, overall test success in the 75% range approx
- oracle and firebird now normalize column names to SQLA "lowercase" for result.keys()
allowing consistent identifier name visibility on the client side.
Mike Bayer [Sat, 11 Jul 2009 18:58:10 +0000 (18:58 +0000)]
- oracle fixes
- upon further consideration it seems appropriate that reflection would
coerce all "default" values into text(), since this represents a DDL expression
straight from the DB
- adjustments to mysql to accommodate that
- for some reason zoomark dropped 300 calls in create_tables. investigation pending
Mike Bayer [Sat, 4 Jul 2009 00:32:37 +0000 (00:32 +0000)]
- many more oracle tests pass
- added "CASCADE CONSTRAINTS" option to DropTable - may
use it in drop_all() for supported DBs
- detected a cx_oracle bug whereby setinputsizes(cx_oracle.STRING)
in conjunction with unicode/executemany fails, added a workaround
Mike Bayer [Mon, 22 Jun 2009 21:27:10 +0000 (21:27 +0000)]
since we aren't using text() in the DefaultClause we reflect, we need to unquote the incoming default from
reflection. this is sqlite so far. not quite sure what will happen with other dialects yet.
Mike Bayer [Sat, 20 Jun 2009 17:20:09 +0000 (17:20 +0000)]
- functions and operators generated by the compiler now use (almost) regular
dispatch functions of the form "visit_<opname>" and "visit_<funcname>_fn"
to provide customed processing. This replaces the need to copy the "functions"
and "operators" dictionaries in compiler subclasses with straightforward
visitor methods, and also allows compiler subclasses complete control over
rendering, as the full _Function or _BinaryExpression object is passed in.
- move the pool assertion to be module-level, zoomark tests keep the connection
open across tests.
Mike Bayer [Sun, 31 May 2009 21:41:20 +0000 (21:41 +0000)]
- some topological fixup to work around inconsistent string interning in py3k
- pg8000 in py3k needs description_encoding, turn this back on, switch off for py3k sqlite
Mike Bayer [Sun, 31 May 2009 16:33:00 +0000 (16:33 +0000)]
- added an "inline_ddl" flag to Constraint. this controls if DDL is emitted
from within CREATE TABLE, and is flipped off automatically when the item
is placed within an Add/DropConstraint object.
- the use_alter flag on ForeignKey is now a shortcut option for operations that
can be hand-constructed using the DDL() event system. A side effect of this refactor
is that ForeignKeyConstraint objects with use_alter=True will *not* be emitted on
SQLite, which does not support ALTER for foreign keys. This has no effect on SQLite's
behavior since SQLite does not actually honor FOREIGN KEY constraints.
- the "on" callable passed to DDL() needs to accept **kw arguments.
In the case of MetaData before/after create/drop, the list of
Table objects for which CREATE/DROP DDL is to be issued is passed
as the kw argument "tables". This is necessary for metadata-level
DDL that is dependent on the presence of specific tables.
- the "metadata" argument is removed from DefaultGenerator and subclasses,
but remains locally present on Sequence, which is a standalone construct
in DDL.
- really trying to pare down usage of testing.mock_engine()