Mike Bayer [Sun, 13 Jun 2010 20:09:13 +0000 (16:09 -0400)]
- The warning emitted by the Unicode and String types
with convert_unicode=True no longer embeds the actual
value passed. This so that the Python warning
registry does not continue to grow in size, the warning
is emitted once as per the warning filter settings,
and large string values don't pollute the output.
[ticket:1822]
Mike Bayer [Sun, 13 Jun 2010 19:49:27 +0000 (15:49 -0400)]
- added documentation for Inspector [ticket:1820]
- fixed "toplevel" regexp to include tokens of the form foo-bar-toplevel (i.e. multiple dashes)
- some CSS adjustment so that all API headings are in gray.
Mike Bayer [Fri, 11 Jun 2010 15:38:06 +0000 (11:38 -0400)]
- Inspector hits bind.connect() when invoked to ensure
initialize has been called. the internal name ".conn"
is changed to ".bind", since that's what it is.
Mike Bayer [Mon, 31 May 2010 00:24:08 +0000 (20:24 -0400)]
- Pool classes will reuse the same "pool_logging_name" setting
after a dispose() occurs.
- Engine gains an "execution_options" argument and
update_execution_options() method, which will apply to
all connections generated by this engine.
- Added more aggressive caching to the mapper's usage of
UPDATE, INSERT, and DELETE expressions. Assuming the
statement has no per-object SQL expressions attached,
the expression objects are cached by the mapper after
the first create, and their compiled form is stored
persistently in a cache dictionary for the duration of
the related Engine.
- change #3 required change #1 so that we could test
a set of mappers operating over the course of many engines without
memory usage increase.
Mike Bayer [Thu, 27 May 2010 18:46:44 +0000 (14:46 -0400)]
- Fixed concatenation of constraints when "PRIMARY KEY"
constraint gets moved to column level due to SQLite
AUTOINCREMENT keyword being rendered. [ticket:1812]
- remove some extra space in between constraint DDL
- added alias() to binary comparison test, fixing pg + mysql failures
Mike Bayer [Thu, 27 May 2010 17:02:17 +0000 (13:02 -0400)]
- Re-established support for Oracle 8 with cx_oracle,
including that use_ansi is set to False automatically,
NVARCHAR2 and NCLOB are not rendered for Unicode,
"native unicode" check doesn't fail, cx_oracle
"native unicode" mode is disabled, VARCHAR() is emitted
with bytes count instead of char count. [ticket:1808]
Mike Bayer [Thu, 27 May 2010 15:50:16 +0000 (11:50 -0400)]
- FOR UPDATE is emitted in the syntactically correct position
when limit/offset is used, i.e. the ROWNUM subquery.
However, Oracle can't really handle FOR UPDATE with ORDER BY
or with subqueries, so its still not very usable, but at
least SQLA gets the SQL past the Oracle parser.
[ticket:1815]
Mike Bayer [Sat, 22 May 2010 23:08:48 +0000 (19:08 -0400)]
- Columns of _Binary type (i.e. LargeBinary, BLOB, etc.)
will coerce a "basestring" on the right side into a
_Binary as well so that required DBAPI processing
takes place.
Mike Bayer [Thu, 13 May 2010 19:53:18 +0000 (15:53 -0400)]
- Added table.add_is_dependent_on(othertable), allows manual
placement of dependency rules between two Table objects
for use within create_all(), drop_all(), sorted_tables.
[ticket:1801]
Mike Bayer [Mon, 10 May 2010 15:37:48 +0000 (11:37 -0400)]
- the _make_proxy() method of ColumnClause and Column now use
self.__class__ to determine the class of object to be returned
instead of hardcoding to ColumnClause/Column, making it slightly
easier to produce specific subclasses of these which work in
alias/subquery situations.
Mike Bayer [Sat, 8 May 2010 20:25:30 +0000 (16:25 -0400)]
- expr.in_() now accepts a text() construct as the argument.
Grouping parenthesis are added automatically, i.e. usage
is like `col.in_(text("select id from table"))`.
[ticket:1793]
Mike Bayer [Sat, 8 May 2010 19:08:48 +0000 (15:08 -0400)]
- the SqlSoup constructor accepts a `base` argument which specifies
the base class to use for mapped classes, the default being
`object`. [ticket:1783]
Mike Bayer [Wed, 28 Apr 2010 17:30:25 +0000 (17:30 +0000)]
- oracle_xe 5 doesn't accept a Python unicode object in
its connect string in normal Python 2.x mode - so we coerce
to str() directly. non-ascii characters aren't supported
in connect strings here since we don't know what encoding
we could use. [ticket:1670]
Mike Bayer [Mon, 26 Apr 2010 22:31:05 +0000 (18:31 -0400)]
- Added a label to the query used within has_table() and
has_sequence() to work with older versions of Firebird
that don't provide labels for result columns. [ticket:1521]
Mike Bayer [Mon, 26 Apr 2010 20:55:11 +0000 (16:55 -0400)]
- Fixed regression introduced in 0.6.0 involving improper
history accounting on mutable attributes. Essentially
reversing r6b2b4fcd4799 and getting it covered.
[ticket:1782]
Mike Bayer [Mon, 19 Apr 2010 21:35:16 +0000 (17:35 -0400)]
- Added a check for cx_oracle versions lower than version 5,
in which case the incompatible "output type handler" won't
be used. This will impact decimal accuracy and some
unicode handling issues. [ticket:1775]
Mike Bayer [Fri, 16 Apr 2010 21:01:50 +0000 (17:01 -0400)]
when raising about columns not present, include the name of the property it's trying to configure,
to eliminate confusion over attributes not properly placed inside of a relationship().
Mike Bayer [Thu, 15 Apr 2010 23:05:41 +0000 (19:05 -0400)]
- Added get_pk_constraint() to reflection.Inspector, similar
to get_primary_keys() except returns a dict that includes the
name of the constraint, for supported backends (PG so far).
[ticket:1769]
- Postgresql reflects the name of primary key constraints,
if one exists. [ticket:1769]
Mike Bayer [Thu, 15 Apr 2010 04:13:48 +0000 (00:13 -0400)]
- beef up the --reversetop test option to embed RandomSet throughout the ORM
- with m2m we have to go back to the previous approach of having both sides of
the DP fire off, tracking each pair of objects. history may not be consistently present
in one side or the other
- this revealed a whole lot of issues with self-referential m2m, which are fixed
Mike Bayer [Tue, 13 Apr 2010 00:20:50 +0000 (20:20 -0400)]
further testing reveals that cursor.rowcount is only called with update/delete and DDL,
and also that FB's cursor.rowcount is a little expensive, but not dramatically.
added a test to ensure cursor.rowcount is only called on update/delete.
the current default for firebird enable_rowcount is now True, leaving all the
options to turn it off etc..