From: Mike Bayer Date: Tue, 23 Jan 2007 22:19:41 +0000 (+0000) Subject: formatting X-Git-Tag: rel_0_3_5~100 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a7a5525c0088fa478004aaa87bf0076b7ca336a;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git formatting --- diff --git a/CHANGES b/CHANGES index e279b85e94..181a955f32 100644 --- a/CHANGES +++ b/CHANGES @@ -1,99 +1,119 @@ 0.3.4 - general: - - global "insure"->"ensure" change. in US english "insure" is actually - largely interchangeable with "ensure" (so says the dictionary), so I'm not - completely illiterate, but its definitely sub-optimal to "ensure" which is - non-ambiguous. + - global "insure"->"ensure" change. in US english "insure" is actually + largely interchangeable with "ensure" (so says the dictionary), so I'm not + completely illiterate, but its definitely sub-optimal to "ensure" which is + non-ambiguous. - sql: - added "fetchmany()" support to ResultProxy - - added support for column "key" attribute to be useable in row[]/row. - - changed "BooleanExpression" to subclass from "BinaryExpression", so that boolean - expressions can also follow column-clause behaviors (i.e. label(), etc). + - added support for column "key" attribute to be useable in + row[]/row. + - changed "BooleanExpression" to subclass from "BinaryExpression", so that + boolean expressions can also follow column-clause behaviors (i.e. label(), + etc). - trailing underscores are trimmed from func. calls, such as func.if_() - - fix to correlation of subqueries when the column list of the select statement - is constructed with individual calls to append_column(); this fixes an ORM - bug whereby nested select statements were not getting correlated with the - main select generated by the Query object. - - another fix to subquery correlation so that a subquery which has only one FROM - element will *not* correlate that single element, since at least one FROM element is - required in a query. - - default "timezone" setting is now False. this corresponds to Python's datetime - behavior as well as Postgres' timestamp/time types (which is the only timezone-sensitive - dialect at the moment) [ticket:414] - - the "op()" function is now treated as an "operation", rather than a "comparison". - the difference is, an operation produces a BinaryExpression from which further operations - can occur whereas comparison produces the more restrictive BooleanExpression - - trying to redefine a reflected primary key column as non-primary key raises an error - - type system slightly modified to support TypeDecorators that can be overridden by the dialect - (ok, thats not very clear, it allows the mssql tweak below to be possible) + - fix to correlation of subqueries when the column list of the select + statement is constructed with individual calls to append_column(); this + fixes an ORM bug whereby nested select statements were not getting + correlated with the main select generated by the Query object. + - another fix to subquery correlation so that a subquery which has only one + FROM element will *not* correlate that single element, since at least one + FROM element is required in a query. + - default "timezone" setting is now False. this corresponds to Python's + datetime behavior as well as Postgres' timestamp/time types (which is the + only timezone-sensitive dialect at the moment) [ticket:414] + - the "op()" function is now treated as an "operation", rather than a + "comparison". the difference is, an operation produces a BinaryExpression + from which further operations can occur whereas comparison produces the + more restrictive BooleanExpression + - trying to redefine a reflected primary key column as non-primary key raises + an error + - type system slightly modified to support TypeDecorators that can be + overridden by the dialect (ok, thats not very clear, it allows the mssql + tweak below to be possible) - mssql: - - added an NVarchar type (produces NVARCHAR), also MSUnicode which provides Unicode-translation - for the NVarchar regardless of dialect convert_unicode setting. + - added an NVarchar type (produces NVARCHAR), also MSUnicode which provides + Unicode-translation for the NVarchar regardless of dialect convert_unicode + setting. - postgres: - - fix to the initial checkfirst for tables to take current schema into account [ticket:424] + - fix to the initial checkfirst for tables to take current schema into + account [ticket:424] - postgres has an optional "server_side_cursors=True" flag which will utilize - server side cursors. these are appropriate for fetching only partial results - and are necessary for working with very large unbounded result sets. - While we'd like this to be the default behavior, different environments seem - to have different results and the causes have not been isolated so we are leaving - the feature off by default for now. Uses an apparently undocumented psycopg2 - behavior recently discovered on the psycopg mailing list. - - added "BIGSERIAL" support for postgres table with PGBigInteger/autoincrement - - fixes to postgres reflection to better handle when schema names are present; - thanks to jason (at) ncsmags.com [ticket:402] + server side cursors. these are appropriate for fetching only partial + results and are necessary for working with very large unbounded result + sets. While we'd like this to be the default behavior, different + environments seem to have different results and the causes have not been + isolated so we are leaving the feature off by default for now. Uses an + apparently undocumented psycopg2 behavior recently discovered on the + psycopg mailing list. + - added "BIGSERIAL" support for postgres table with + PGBigInteger/autoincrement + - fixes to postgres reflection to better handle when schema names are + present; thanks to jason (at) ncsmags.com [ticket:402] - mysql: - - mysql is inconsistent with what kinds of quotes it uses in foreign keys during a - SHOW CREATE TABLE, reflection updated to accomodate for all three styles [ticket:420] - - mysql table create options work on a generic passthru now, i.e. Table(..., mysql_engine='InnoDB', - mysql_collate="latin1_german2_ci", mysql_auto_increment="5", mysql_...), - helps [ticket:418] + - mysql is inconsistent with what kinds of quotes it uses in foreign keys + during a SHOW CREATE TABLE, reflection updated to accomodate for all three + styles [ticket:420] + - mysql table create options work on a generic passthru now, i.e. Table(..., + mysql_engine='InnoDB', mysql_collate="latin1_german2_ci", + mysql_auto_increment="5", mysql_...), helps [ticket:418] - firebird: - - order of constraint creation puts primary key first before all other constraints; - required for firebird, not a bad idea for others [ticket:408] + - order of constraint creation puts primary key first before all other + constraints; required for firebird, not a bad idea for others [ticket:408] - Firebird fix to autoload multifield foreign keys [ticket:409] - - Firebird NUMERIC type properly handles a type without precision [ticket:409] + - Firebird NUMERIC type properly handles a type without precision + [ticket:409] - oracle: - - *slight* support for binary, but still need to figure out how to insert reasonably large - values (over 4K). requires auto_setinputsizes=True sent to create_engine(), rows must - be fully fetched individually, etc. + - *slight* support for binary, but still need to figure out how to insert + reasonably large values (over 4K). requires auto_setinputsizes=True sent to + create_engine(), rows must be fully fetched individually, etc. - orm: - - poked the first hole in the can of worms: saying query.select_by(somerelationname=someinstance) - will create the join of the primary key columns represented by "somerelationname"'s mapper to the - actual primary key in "someinstance". - - reworked how relations interact with "polymorphic" mappers, i.e. mappers that have a select_table - as well as polymorphic flags. better determination of proper join conditions, interaction with user- - defined join conditions, and support for self-referential polymorphic mappers. - - related to polymorphic mapping relations, some deeper error checking when compiling relations, - to detect an ambiguous "primaryjoin" in the case that both sides of the relationship have foreign key - references in the primary join condition. also tightened down conditions used to locate "relation direction", - associating the "foreignkey" of the relationship with the "primaryjoin" - - a little bit of improvement to the concept of a "concrete" inheritance mapping, though that concept - is not well fleshed out yet (added test case to support concrete mappers on top of a polymorphic base). + - poked the first hole in the can of worms: saying + query.select_by(somerelationname=someinstance) will create the join of the + primary key columns represented by "somerelationname"'s mapper to the + actual primary key in "someinstance". + - reworked how relations interact with "polymorphic" mappers, i.e. mappers + that have a select_table as well as polymorphic flags. better determination + of proper join conditions, interaction with user- defined join conditions, + and support for self-referential polymorphic mappers. + - related to polymorphic mapping relations, some deeper error checking when + compiling relations, to detect an ambiguous "primaryjoin" in the case that + both sides of the relationship have foreign key references in the primary + join condition. also tightened down conditions used to locate "relation + direction", associating the "foreignkey" of the relationship with the + "primaryjoin" + - a little bit of improvement to the concept of a "concrete" inheritance + mapping, though that concept is not well fleshed out yet (added test case + to support concrete mappers on top of a polymorphic base). - fix to "proxy=True" behavior on synonym() - - fixed bug where delete-orphan basically didn't work with many-to-many relationships [ticket:427], - backref presence generally hid the symptom - - added a mutex to the mapper compilation step. ive been reluctant to add any kind - of threading anything to SA but this is one spot that its its really needed since mappers - are typically "global", and while their state does not change during normal operation, the - initial compilation step does modify internal state significantly, and this step usually - occurs not at module-level initialization time (unless you call compile()) but at first-request - time + - fixed bug where delete-orphan basically didn't work with many-to-many + relationships [ticket:427], backref presence generally hid the symptom + - added a mutex to the mapper compilation step. ive been reluctant to add any + kind of threading anything to SA but this is one spot that its its really + needed since mappers are typically "global", and while their state does not + change during normal operation, the initial compilation step does modify + internal state significantly, and this step usually occurs not at + module-level initialization time (unless you call compile()) but at + first-request time - basic idea of "session.merge()" actually implemented. needs more testing. - added "compile_mappers()" function as a shortcut to compiling all mappers - - fix to MapperExtension create_instance so that entity_name properly associated -with new instance + - fix to MapperExtension create_instance so that entity_name properly + associated with new instance - speed enhancements to ORM object instantiation, eager loading of rows - - invalid options sent to 'cascade' string will raise an exception [ticket:406] - - fixed bug in mapper refresh/expire whereby eager loaders didnt properly re-populate - item lists [ticket:407] - - fix to post_update to ensure rows are updated even for non insert/delete scenarios - [ticket:413] - - added an error message if you actually try to modify primary key values on an entity - and then flush it [ticket:412] + - invalid options sent to 'cascade' string will raise an exception + [ticket:406] + - fixed bug in mapper refresh/expire whereby eager loaders didnt properly + re-populate item lists [ticket:407] + - fix to post_update to ensure rows are updated even for non insert/delete + scenarios [ticket:413] + - added an error message if you actually try to modify primary key values on + an entity and then flush it [ticket:412] - extensions - - added "validate=False" argument to assign_mapper, if True will insure that only mapped - attributes are named [ticket:426] - - assign_mapper gets "options", "instances" functions added (i.e. MyClass.instances()) + - added "validate=False" argument to assign_mapper, if True will insure that + only mapped attributes are named [ticket:426] + - assign_mapper gets "options", "instances" functions added (i.e. + MyClass.instances()) + 0.3.3 - string-based FROM clauses fixed, i.e. select(..., from_obj=["sometext"]) - fixes to passive_deletes flag, lazy=None (noload) flag