Mike Bayer [Sat, 10 May 2008 00:26:28 +0000 (00:26 +0000)]
backref() function uses primaryjoin/secondaryjoin of the parent relation() if not otherwise specified, removing the frequently annoying need to specify primaryjoin twice.
Mike Bayer [Fri, 9 May 2008 23:58:30 +0000 (23:58 +0000)]
- fixed a fairly critical bug in clause adaption/corresponding column in conjunction with annotations
- implicit order by is removed, modified many tests to explicitly set ordering, probably many more to go
once it hits the buildbot.
Jason Kirtland [Fri, 9 May 2008 20:26:09 +0000 (20:26 +0000)]
Test suite modernization in progress. Big changes:
- @unsupported now only accepts a single target and demands a reason
for not running the test.
- @exclude also demands an exclusion reason
- Greatly expanded @testing.requires.<feature>, eliminating many
decorators in the suite and signficantly easing integration of
multi-driver support.
- New ORM test base class, and a featureful base for mapped tests
- Usage of 'global' for shared setup going away, * imports as well
Mike Bayer [Fri, 9 May 2008 19:20:49 +0000 (19:20 +0000)]
- more portable tests for eager/inheritance joins
- bumped 2.4 call count for profile test_select
- don't need initialize_properties() during reentrant compile() call (for now)
Mike Bayer [Fri, 9 May 2008 17:05:13 +0000 (17:05 +0000)]
- warnings about Query invalid operations become InvalidRequestErrors
- __no_criterion() checks for more pre-existing conditions
- helpful note in 0.5 svn readme
Mike Bayer [Thu, 8 May 2008 00:19:06 +0000 (00:19 +0000)]
- backported 0.5's contains_eager() behavior such that rendering of eager clauses are disabled. workaround here is compatible with 0.5 but not compatible with the little-known "decorator" argument to contains_eager() (which was also removed in 0.5). Doesn't remove any existing 0.4 functionality.
Mike Bayer [Tue, 6 May 2008 00:55:49 +0000 (00:55 +0000)]
- _Label adds itself to the proxy collection so that it works in correspoinding column. fixes some eager load with column_property bugs.
- this partially fixes some issues in [ticket:1022] but leaving the "unlabeled" fix for 0.5 for now
Jason Kirtland [Mon, 5 May 2008 21:33:29 +0000 (21:33 +0000)]
Adjusted inplace-binops on set-based collections and association proxies to
more closely follow builtin (2.4+) set semantics. Formerly any set duck-type
was accepted, now only types or subtypes of set, frozenset or the collection
type itself are accepted.
Mike Bayer [Mon, 5 May 2008 15:52:09 +0000 (15:52 +0000)]
- added "rollback_returned" option to Pool which will
disable the rollback() issued when connections are
returned. This flag is only safe to use with a database
which does not support transactions (i.e. MySQL/MyISAM).
Mike Bayer [Fri, 2 May 2008 19:23:58 +0000 (19:23 +0000)]
- fixes to the "exists" function involving inheritance (any(), has(),
~contains()); the full target join will be rendered into the
EXISTS clause for relations that link to subclasses.
Mike Bayer [Fri, 2 May 2008 01:02:23 +0000 (01:02 +0000)]
- factored out the logic used by Join to create its join condition
- With declarative, joined table inheritance mappers use a slightly relaxed
function to create the "inherit condition" to the parent
table, so that other foreign keys to not-yet-declared
Table objects don't trigger an error.
Mike Bayer [Wed, 30 Apr 2008 01:16:05 +0000 (01:16 +0000)]
- added a feature to eager loading whereby subqueries set
as column_property() with explicit label names (which is not
necessary, btw) will have the label anonymized when
the instance is part of the eager join, to prevent
conflicts with a subquery or column of the same name
on the parent object. [ticket:1019]
Mike Bayer [Sat, 26 Apr 2008 16:34:14 +0000 (16:34 +0000)]
- improved behavior of text() expressions when used as
FROM clauses, such as select().select_from(text("sometext"))
[ticket:1014]
- removed _TextFromClause; _TextClause just adds necessary FromClause descriptors
at the class level
Mike Bayer [Fri, 18 Apr 2008 14:49:21 +0000 (14:49 +0000)]
- restored usage of append_result() extension method for primary
query rows, when the extension is present and only a single-
entity result is being returned.
Mike Bayer [Mon, 14 Apr 2008 18:23:59 +0000 (18:23 +0000)]
- simplified __create_lazy_clause to make better usage of the new local/remote pairs collection
- corrected the direction of local/remote pairs for manytoone
- added new tests which demonstrate lazyloading working when the bind param is embedded inside of a SQL function,
when _local_remote_pairs argument is used; fixes the viewonly version of [ticket:610]
- removed needless kwargs check from visitors.traverse
Mike Bayer [Mon, 14 Apr 2008 15:49:39 +0000 (15:49 +0000)]
- added experimental relation() flag to help with primaryjoins
across functions, etc., _local_remote_pairs=[tuples].
This complements a complex primaryjoin condition allowing
you to provide the individual column pairs which comprise
the relation's local and remote sides.
Rick Morrison [Tue, 8 Apr 2008 19:09:33 +0000 (19:09 +0000)]
Add a new 'odbc_autotranslate' engine/dburi kwd parm to the MSSQL pyodbc dialect; string kwd contents will be passed through to ODBC connection string.
[ticket:1005]
Mike Bayer [Mon, 7 Apr 2008 19:49:41 +0000 (19:49 +0000)]
- removed ancient assertion that mapped selectables require
"alias names" - the mapper creates its own alias now if
none is present. Though in this case you need to use
the class, not the mapped selectable, as the source of
column attributes - so a warning is still issued.
Mike Bayer [Mon, 7 Apr 2008 01:12:44 +0000 (01:12 +0000)]
- merged -r4458:4466 of query_columns branch
- this branch changes query.values() to immediately return an iterator, adds a new "aliased" construct which will be the primary method to get at aliased columns when using values()
- tentative ORM versions of _join and _outerjoin are not yet public, would like to integrate with Query better (work continues in the branch)
- lots of fixes to expressions regarding cloning and correlation. Some apparent ORM bug-workarounds removed.
- to fix a recursion issue with anonymous identifiers, bind parameters generated against columns now just use the name of the column instead of the tablename_columnname label (plus the unique integer counter). this way expensive recursive schemes aren't needed for the anon identifier logic. This, as usual, impacted a ton of compiler unit tests which needed a search-n-replace for the new bind names.
Mike Bayer [Fri, 4 Apr 2008 18:41:08 +0000 (18:41 +0000)]
factored down exportable_columns/flatten_cols/proxy_column/oid_etc_yada down to a single, streamlined "_populate_column_collection" method called for all selectables
Mike Bayer [Fri, 4 Apr 2008 00:21:28 +0000 (00:21 +0000)]
- merged sync_simplify branch
- The methodology behind "primaryjoin"/"secondaryjoin" has
been refactored. Behavior should be slightly more
intelligent, primarily in terms of error messages which
have been pared down to be more readable. In a slight
number of scenarios it can better resolve the correct
foreign key than before.
- moved collections unit test from relationships.py to collection.py
- PropertyLoader now has "synchronize_pairs" and "equated_pairs"
collections which allow easy access to the source/destination
parent/child relation between columns (might change names)
- factored out ClauseSynchronizer (finally)
- added many more tests for priamryjoin/secondaryjoin
error checks
Jason Kirtland [Thu, 3 Apr 2008 17:08:08 +0000 (17:08 +0000)]
- Experimental: prefer cProfile over hotspot for 2.5+
- The latest skirmish in the battle against zoomark and sanity:
3rd party code is factored out in the function call count canary tests
Mike Bayer [Thu, 3 Apr 2008 16:34:03 +0000 (16:34 +0000)]
- case() interprets the "THEN" expressions
as values by default, meaning case([(x==y, "foo")]) will
interpret "foo" as a bound value, not a SQL expression.
use text(expr) for literal SQL expressions in this case.
For the criterion itself, these may be literal strings
only if the "value" keyword is present, otherwise SA
will force explicit usage of either text() or literal().