summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
Commit message (Collapse)AuthorAgeFilesLines
* - [bug] Dialect no longer emits expensive serverMike Bayer2012-05-241-2/+0
| | | | | | collations query, as well as server casing, on first connect. These functions are still available as semi-private. [ticket:2404]
* get __clause_element__ for remote()/foreign() annotation, [ticket:2493]Mike Bayer2012-05-241-2/+2
|
* - identify another condition, indirectly via #2491, whereMike Bayer2012-05-241-5/+6
| | | | | remote/local detection was regressing vs. 0.7. use a more liberal check for "tables overlap".
* - [bug] Fixed bug in declarativeMike Bayer2012-05-241-6/+3
| | | | | | | | | | | | | | 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]. Also in 0.7.8.
* looks like I finally stepped on someone elses dunders...will have to figure outMike Bayer2012-05-201-3/+3
| | | | how to make a public API for this anyway
* fix logic here broken by the change for enable_relationship_loadingMike Bayer2012-05-191-4/+8
|
* ignore columns that don't resolve here either.Mike Bayer2012-05-191-1/+10
|
* - reorganize the usage of __mapper_args__ so that it's onlyMike Bayer2012-05-181-106/+142
| | | | | called after the __prepare__() step, if any, so that everything to do with the mapping occurs after the table is reflected.
* - [bug] Added ROWID to oracle.*, [ticket:2483]Mike Bayer2012-05-171-1/+1
| | | | Also in 0.7.8.
* add a note about sqlites lack of concurrency by design, [ticket:2447]Mike Bayer2012-05-171-0/+32
|
* - [feature] Added utility featureMike Bayer2012-05-175-12/+55
| | | | | | | Session.enable_relationship_loading(), supersedes relationship.load_on_pending. Both features should be avoided, however. [ticket:2372]
* - [bug] Fixed bug whereby subqueryload() fromMike Bayer2012-05-171-1/+7
| | | | | | | 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]. Also in 0.7.8.
* - [feature] The "deferred declarativeMike Bayer2012-05-172-8/+14
| | | | | | | | | | | | | | | | reflection" system has been moved into the declarative extension itself, using the new DeferredReflection class. This class is now tested with both single and joined table inheritance use cases. [ticket:2485] - [bug] The autoload_replace flag on Table, when False, will cause any reflected foreign key constraints which refer to already-declared columns to be skipped, assuming that the in-Python declared column will take over the task of specifying in-Python ForeignKey or ForeignKeyConstraint declarations.
* - add DeferredReflection to declarative itselfMike Bayer2012-05-171-24/+113
| | | | - split out test_declarative into four separate modules
* clean this up some more. __mapper__ isn't even set up.Mike Bayer2012-05-151-14/+11
|
* implement support for __prepare__ declarative method. this signals thatMike Bayer2012-05-151-10/+51
| | | | | | | | the mapping should not be constructed immediately; instead, the info for the mapping is placed into an interm object _MapperThingy which serves as the mapper for the purposes of figuring out inheritance, etc. Later, the prepare_deferred_mapping() function can be called given a base which will invoke __prepare__ for each mapped class.
* - [bug] Fixed issue in unit of workMike Bayer2012-05-041-1/+1
| | | | | | | | 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].
* - [bug] removed unnecessary table clauseMike Bayer2012-05-041-1/+0
| | | | | when reflecting domains, [ticket:2473] also in 0.7.7
* - [bug] Quoting information is now passed alongMike Bayer2012-05-043-13/+27
| | | | | | | | from a Column with quote=True when generating a same-named bound parameter to the bindparam() object, as is the case in generated INSERT and UPDATE statements, so that unknown reserved names can be fully supported. [ticket:2437]
* doc update regarding with_lockmode, [ticket:2440]Mike Bayer2012-05-042-8/+10
|
* docuemnt mock strategy, [ticket:2439]Mike Bayer2012-05-041-2/+11
|
* - [feature] Added SQLite execution optionMike Bayer2012-05-043-15/+22
| | | | | | | "sqlite_raw_colnames=True", will bypass attempts to remove "." from column names returned by SQLite cursor.description. [ticket:2475]
* - [bug] Add BINARY, VARBINARY to types.__all__,Mike Bayer2012-05-041-4/+4
| | | | [ticket:2474]
* Add some documentation sugar for ``having`` criterion.Priit Laes2012-01-131-3/+15
|
* - refactor query.update() and query.delete() to use a pureMike Bayer2012-04-292-302/+355
| | | | | template method pattern using new class hierarchy BulkUD in sqlalchemy.orm.persistence
* - [bug] Fixed bug in relationship comparisonsMike Bayer2012-04-252-9/+3
| | | | | | | whereby calling unimplemented methods like SomeClass.somerelationship.like() would produce a recursion overflow, instead of NotImplementedError.
* document the remote/foreign/remote_foreign functionsMike Bayer2012-04-242-0/+73
|
* py3k fixesMike Bayer2012-04-241-1/+5
|
* - put the correct target here in the log messageMike Bayer2012-04-241-6/+6
|
* - [feature] Calling rollback() within aMike Bayer2012-04-243-63/+84
| | | | | | | | | | | | | | session.begin_nested() will now only expire those objects that had net changes within the scope of that transaction, that is objects which were dirty or were modified on a flush. This allows the typical use case for begin_nested(), that of altering a small subset of objects, to leave in place the data from the larger enclosing set of objects that weren't modified in that sub-transaction. [ticket:2452] - inline the "register_newly_XYZ" functions to operate upon collections to reduce method calls
* - [feature] postgresql.ARRAY features an optionalMike Bayer2012-04-241-39/+50
| | | | | | | | "dimension" argument, will assign a specific number of dimensions to the array which will render in DDL as ARRAY[][]..., also improves performance of bind/result processing. [ticket:2441]
* - [feature] The "unconsumed column names" warning emittedMike Bayer2012-04-241-1/+1
| | | | | | when keys are present in insert.values() or update.values() that aren't in the target table is now an exception. [ticket:2415]
* - [feature] Inspector.get_primary_keys() isMike Bayer2012-04-249-79/+50
|\ | | | | | | | | | | | | | | deprecated; use Inspector.get_pk_constraint(). Courtesy Diana Clarke. [ticket:2422] - restored default get_primary_keys()/get_pk_constraint() wrapper to help maintain compatibility with third party dialects created against 0.6 or 0.7
| * deprecate inspector.get_primary_keys() in favor of inspector.get_pk_constraint()Diana Clarke2012-04-0210-87/+40
| | | | | | | | - see #2422
* | - [bug] All of UniqueConstraint, ForeignKeyConstraint,Mike Bayer2012-04-241-0/+13
| | | | | | | | | | | | | | | | | | | | | | CheckConstraint, and PrimaryKeyConstraint will attach themselves to their parent table automatically when they refer to a Table-bound Column object directly (i.e. not just string column name), and refer to one and only one Table. Prior to 0.8 this behavior occurred for UniqueConstraint and PrimaryKeyConstraint, but not ForeignKeyConstraint or CheckConstraint. [ticket:2410]
* | fix import hereMike Bayer2012-04-241-4/+4
| |
* | - [feature] The behavior of column targetingMike Bayer2012-04-245-17/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | in result sets is now case sensitive by default. SQLAlchemy for many years would run a case-insensitive conversion on these values, probably to alleviate early case sensitivity issues with dialects like Oracle and Firebird. These issues have been more cleanly solved in more modern versions so the performance hit of calling lower() on identifiers is removed. The case insensitive comparisons can be re-enabled by setting "case_insensitive=False" on create_engine(). [ticket:2423]
* | - [feature] The after_attach event is nowMike Bayer2012-04-241-2/+2
| | | | | | | | | | | | | | | | | | emitted after the object is established in Session.new or Session.identity_map upon Session.add(), Session.merge(), etc., so that the object is represented in these collections when the event is called. [ticket:2464]
* | - [feature] the SQLite date and time typesMike Bayer2012-04-242-44/+92
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | have been overhauled to support a more open ended format for input and output, using name based format strings and regexps. A new argument "microseconds" also provides the option to omit the "microseconds" portion of timestamps. Thanks to Nathan Wright for the work and tests on this. [ticket:2363]
| * | Improve SQLite DATETIME storage format handling [ticket:2363]Nathan Wright2012-03-122-44/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This breaks backwards compatibility with old SQLite DATETIME, DATE, and TIME storage_format strings. Formatting now occurs with named instead of positional parameters. The regexp argument can still use positional arguments, but named groupings are also supported. This means that you can omit fields and change the order of date fields as desired. SQLite's DATETIME and TIME also gained a truncate_microseconds argument. This is shorthand for modifying the format string. Fortunately the str_to_datetime and str_to_time processors written in C already support omitting microseconds, so we don't have to resort to python processing for this case.
* | | - remove sqlsoup [ticket:2262]Mike Bayer2012-04-242-815/+0
| | | | | | | | | | | | - remove sqlalchemy.exceptions [ticket:2433]
* | | - [bug] column.label(None) now produces anMike Bayer2012-04-242-14/+3
| | | | | | | | | | | | | | | | | | anonymous label, instead of returning the column object itself, consistent with the behavior of label(column, None). [ticket:2168]
* | | - [feature] Added a new systemMike Bayer2012-04-244-43/+83
| | | | | | | | | | | | | | | | | | | | | for registration of new dialects in-process without using an entrypoint. See the docs for "Registering New Dialects". [ticket:2462]
* | | - [feature] The column_reflect event nowMike Bayer2012-04-242-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | accepts the Inspector object as the first argument, preceding "table". Code which uses the 0.7 version of this very new event will need modification to add the "inspector" object as the first argument. [ticket:2418]
* | | - [bug] The warning emitted when usingMike Bayer2012-04-241-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | delete-orphan cascade with one-to-many or many-to-many without single-parent=True is now an error. The ORM would fail to function subsequent to this warning in any case. [ticket:2405]
* | | - [bug] The "passive" flag on Session.is_modified()Mike Bayer2012-04-242-39/+30
| | | | | | | | | | | | | | | | | | | | | | | | no longer has any effect. is_modified() in all cases looks only at local in-memory modified flags and will not emit any SQL or invoke loader callables/initializers. [ticket:2320]
* | | - [bug] The names of the columns on theMike Bayer2012-04-242-19/+18
| | | | | | | | | | | | | | | | | | | | | | | | .c. attribute of a select().apply_labels() is now based on <tablename>_<colkey> instead of <tablename>_<colname>, for those columns that have a distinctly named .key. [ticket:2397]
* | | - [bug] removed legacy behavior wherebyMike Bayer2012-04-241-48/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a column comparison to a scalar SELECT via == would coerce to an IN with the SQL server dialect. This is implicit behavior which fails in other scenarios so is removed. Code which relies on this needs to be modified to use column.in_(select) explicitly. [ticket:2277]
* | | - [feature] New standalone function with_polymorphic()Mike Bayer2012-04-234-102/+197
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | provides the functionality of query.with_polymorphic() in a standalone form. It can be applied to any entity within a query, including as the target of a join in place of the "of_type()" modifier. [ticket:2333] - redo a large portion of the inheritance docs in terms of declarative, new with_polymorphic() function - upgrade examples/inheritance/polymorph, rename to "joined"
* | | - [removed] The legacy "mutable" system of theMike Bayer2012-04-237-428/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ORM, including the MutableType class as well as the mutable=True flag on PickleType and postgresql.ARRAY has been removed. In-place mutations are detected by the ORM using the sqlalchemy.ext.mutable extension, introduced in 0.7. The removal of MutableType and associated constructs removes a great deal of complexity from SQLAlchemy's internals. The approach performed poorly as it would incur a scan of the full contents of the Session when in use. [ticket:2442]