]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
- merge of generative_sql branch
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 24 Jun 2007 19:58:41 +0000 (19:58 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 24 Jun 2007 19:58:41 +0000 (19:58 +0000)
commit13ac46eb3fc92d9e4ad3582057ddcc75e6b71201
tree5970be7f445680e5fd73818b7fa3f17926519e14
parent909cf3fd5da609bd3327280415a6b911b5715d9b
- merge of generative_sql branch
- copy_container() removed.  ClauseVisitor.traverse() now features "clone"
flag which allows traversal with copy-and-modify-in-place behavior
- select() objects copyable now [ticket:52] [ticket:569]
- improved support for custom column_property() attributes which
  feature correlated subqueries...work better with eager loading now.
- accept_visitor()  methods removed.  ClauseVisitor now genererates method
names based on class names, or an optional __visit_name__ attribute.  calls
regular visit_XXX methods as they exist, can optionally call an additional
"pre-descent" enter_XXX method to allow stack-based operations on traversals
- select() and union()'s now have "generative" behavior.  methods like
order_by() and group_by() return a *new* instance - the original instance
is left unchanged.  non-generative methods remain as well.
- the internals of select/union vastly simplified - all decision making
regarding "is subquery" and "correlation" pushed to SQL generation phase.
select() elements are now *never* mutated by their enclosing containers
or by any dialect's compilation process
26 files changed:
CHANGES
lib/sqlalchemy/ansisql.py
lib/sqlalchemy/databases/firebird.py
lib/sqlalchemy/databases/informix.py
lib/sqlalchemy/databases/mssql.py
lib/sqlalchemy/databases/mysql.py
lib/sqlalchemy/databases/oracle.py
lib/sqlalchemy/databases/postgres.py
lib/sqlalchemy/databases/sqlite.py
lib/sqlalchemy/engine/base.py
lib/sqlalchemy/ext/sqlsoup.py
lib/sqlalchemy/orm/mapper.py
lib/sqlalchemy/orm/properties.py
lib/sqlalchemy/orm/query.py
lib/sqlalchemy/orm/strategies.py
lib/sqlalchemy/schema.py
lib/sqlalchemy/sql.py
lib/sqlalchemy/sql_util.py
lib/sqlalchemy/util.py
test/orm/generative.py
test/orm/inheritance/poly_linked_list.py
test/orm/mapper.py
test/perf/masseagerload.py
test/sql/alltests.py
test/sql/generative.py [new file with mode: 0644]
test/sql/select.py