Mike Bayer [Thu, 21 Jun 2012 18:56:31 +0000 (14:56 -0400)]
- [bug] Fixed regression introduced in 0.7.6
whereby the FROM list of a SELECT statement
could be incorrect in certain "clone+replace"
scenarios. [ticket:2518]
Mike Bayer [Wed, 20 Jun 2012 22:59:46 +0000 (18:59 -0400)]
- [feature] Dramatic improvement in memory
usage of the event system; instance-level
collections are no longer created for a
particular type of event until
instance-level listeners are established
for that event. [ticket:2516]
Mike Bayer [Wed, 13 Jun 2012 22:19:26 +0000 (18:19 -0400)]
- [bug] Repaired common table expression
rendering to function correctly when the
SELECT statement contains UNION or other
compound expressions, courtesy btbuilder.
[ticket:2490]
Mike Bayer [Wed, 13 Jun 2012 21:59:07 +0000 (17:59 -0400)]
- [bug] added BIGINT to types.__all__,
BIGINT, BINARY, VARBINARY to sqlalchemy
module namespace, plus test to ensure
this breakage doesn't occur again.
[ticket:2499]
Mike Bayer [Tue, 12 Jun 2012 00:12:47 +0000 (20:12 -0400)]
- [bug] Fixed bug affecting Py3K whereby
string positional parameters passed to
engine/connection execute() would fail to be
interpreted correctly, due to __iter__
being present on Py3K string.
[ticket:2503].
Mike Bayer [Fri, 8 Jun 2012 19:59:27 +0000 (15:59 -0400)]
Add some `Sphinx` related version informations paragraph-level markups,
such as ``.. versionaddedd::``, ``.. versionchanged::`` and ``.. deprecated::``.
Mike Bayer [Fri, 1 Jun 2012 20:31:00 +0000 (16:31 -0400)]
- [bug] Fixed memory leak in C version of
result proxy whereby DBAPIs which don't deliver
pure Python tuples for result rows would
fail to decrement refcounts correctly.
The most prominently affected DBAPI
is pyodbc. [ticket:2489]
Mike Bayer [Sat, 26 May 2012 17:13:04 +0000 (13:13 -0400)]
- [bug] Fixed bug in declarative
whereby the precedence of columns
in a joined-table, composite
column (typically for id) would fail to
be correct if the columns contained
names distinct from their attribute
names. This would cause things like
primaryjoin conditions made against the
entity attributes to be incorrect. Related
to [ticket:1892] as this was supposed
to be part of that, this is [ticket:2491].
Mike Bayer [Thu, 17 May 2012 18:20:26 +0000 (14:20 -0400)]
- [bug] Fixed bug whereby subqueryload() from
a polymorphic mapping to a target would incur
a new invocation of the query for each
distinct class encountered in the polymorphic
result. [ticket:2480]
Mike Bayer [Fri, 4 May 2012 23:27:52 +0000 (19:27 -0400)]
- [bug] Fixed issue in unit of work
whereby setting a non-None self-referential
many-to-one relationship to None
would fail to persist the change if the
former value was not already loaded.
[ticket:2477].
Mike Bayer [Fri, 4 May 2012 21:43:21 +0000 (17:43 -0400)]
- [feature] Added SQLite execution option
"sqlite_raw_colnames=True", will bypass
attempts to remove "." from column names
returned by SQLite cursor.description.
[ticket:2475]
Mike Bayer [Thu, 26 Apr 2012 15:58:54 +0000 (11:58 -0400)]
- [bug] Fixed bug in relationship comparisons
whereby calling unimplemented methods like
SomeClass.somerelationship.like() would
produce a recursion overflow, instead
of NotImplementedError.
Mike Bayer [Thu, 19 Apr 2012 16:31:15 +0000 (12:31 -0400)]
- [bug] Fixed bug in 0.7.6 introduced by
[ticket:2409] whereby column_mapped_collection
used against columns that were mapped as
joins or other indirect selectables
would fail to function.
Here, the serialize use case has gotten very complex since to
really target a column we'd need the root MetaData object,
then if we're hitting Alias objects and such there's really
nothing to hold onto. Short of building a system where
Column objects have some kind of master hash identifier that
is consistently generated, the way this works can't really
suit every case - much easier would be to change the mechanics
of collections.py to make available the Mapper to the
collection adapter when it's first invoked.
Mike Bayer [Wed, 18 Apr 2012 23:52:58 +0000 (19:52 -0400)]
- [bug] UPDATE..FROM syntax with SQL Server
requires that the updated table be present
in the FROM clause when an alias of that
table is also present in the FROM clause.
The updated table is now always present
in the FROM, when FROM is present
in the first place. Courtesy sayap.
[ticket:2468]
Mike Bayer [Mon, 16 Apr 2012 16:08:32 +0000 (12:08 -0400)]
- mysql [bug] Fixed bug whereby if cast() is used
on a SQL expression whose type is not supported
by cast() and therefore CAST isn't rendered by
the dialect, the order of evaluation could change
if the casted expression required that it be
grouped; grouping is now applied to those
expressions. [ticket:2467]
Mike Bayer [Thu, 12 Apr 2012 18:38:52 +0000 (14:38 -0400)]
- [bug] If conn.begin() fails when calling
"with engine.begin()", the newly acquired
Connection is closed explicitly before
propagating the exception onward normally.
Mike Bayer [Wed, 11 Apr 2012 17:03:52 +0000 (13:03 -0400)]
- [feature] Added new flag to @validates
include_removes. When True, collection
remove and attribute del events
will also be sent to the validation function,
which accepts an additional argument
"is_remove" when this flag is used.
Mike Bayer [Tue, 10 Apr 2012 23:38:22 +0000 (19:38 -0400)]
- [feature] Added new connection event
dbapi_error(). Is called for all DBAPI-level
errors passing the original DBAPI exception
before SQLAlchemy modifies the state
of the cursor.
Mike Bayer [Sun, 8 Apr 2012 15:18:39 +0000 (11:18 -0400)]
- adjust mysql patch a bit so that we use
built in quoting for the "idx_" name as well
- [bug] Fixed bug whereby column name inside
of "KEY" clause for autoincrement composite
column with InnoDB would double quote a
name that's a reserved word. Courtesy Jeff
Dairiki. [ticket:2460]
Mike Bayer [Thu, 5 Apr 2012 18:31:28 +0000 (14:31 -0400)]
- [bug] Repaired the use_scope_identity
create_engine() flag when using the pyodbc
dialect. Previously this flag would be
ignored if set to False. When set to False,
you'll get "SELECT @@identity" after each
INSERT to get at the last inserted ID,
for those tables which have "implicit_returning"
set to False.
Mike Bayer [Sun, 1 Apr 2012 23:42:54 +0000 (19:42 -0400)]
- sql
- [bug] Removed warning when Index is created
with no columns; while this might not be what
the user intended, it is a valid use case
as an Index could be a placeholder for just an
index of a certain name.
- mssql
- [feature] Added interim create_engine flag
supports_unicode_binds to PyODBC dialect,
to force whether or not the dialect
passes Python unicode literals to PyODBC
or not.
Mike Bayer [Sat, 31 Mar 2012 17:35:05 +0000 (13:35 -0400)]
- [bug] Fixed bug in expression annotation
mechanics which could lead to incorrect
rendering of SELECT statements with aliases
and joins, particularly when using
column_property(). [ticket:2453]
Mike Bayer [Sat, 31 Mar 2012 16:55:42 +0000 (12:55 -0400)]
- [bug] Fixed bug whereby polymorphic_on
column that's not otherwise mapped on the
class would be incorrectly included
in a merge() operation, raising an error.
[ticket:2449]
Mike Bayer [Wed, 21 Mar 2012 00:12:26 +0000 (20:12 -0400)]
- 0.7.7
- [feature] Added prefix_with() method
to Query, calls upon select().prefix_with()
to allow placement of MySQL SELECT
directives in statements. Courtesy
Diana Clarke [ticket:2443]
Mike Bayer [Wed, 14 Mar 2012 21:34:36 +0000 (14:34 -0700)]
- [bug] Fixed issue whereby attribute-based
column access on a row would raise
AttributeError with non-C version,
NoSuchColumnError with C version. Now
raises AttributeError in both cases.
[ticket:2398]
Mike Bayer [Wed, 14 Mar 2012 21:32:13 +0000 (14:32 -0700)]
- [feature] Added support for MySQL index and
primary key constraint types
(i.e. USING) via new mysql_using parameter
to Index and PrimaryKeyConstraint,
courtesy Diana Clarke. [ticket:2386]
Mike Bayer [Wed, 14 Mar 2012 03:38:30 +0000 (20:38 -0700)]
- [bug] Fixed bug in C extensions whereby
string format would not be applied to a
Numeric value returned as integer; this
affected primarily SQLite which does
not maintain numeric scale settings.
[ticket:2432]