summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
Commit message (Collapse)AuthorAgeFilesLines
* - [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]
* | the callcounts are greater here since object_mapper() has a little more ↵Mike Bayer2012-04-231-3/+1
| | | | | | | | overhead to it now
* | - some adjustments to keep hybrid properties workingMike Bayer2012-04-232-5/+6
| | | | | | | | - callcount here seems to have gone up by five, reason not certain
* | merge patch for [ticket:2208]. This still needs documentation.Mike Bayer2012-04-2312-77/+269
|\ \
| * | - the inspect interface is done, needs docs.Mike Bayer2012-04-047-126/+218
| | | | | | | | | | | | | | | - start dressing up InstanceState for it's coming out, start moving internal things to be underscored within the lib
| * | begin implementing inspection system for #2208Mike Bayer2012-04-037-13/+115
| | |
* | | - re-merge + CHANGESMike Bayer2012-04-232-3/+1
|\ \ \
| * | | make auto-correlation the same for Query & select()Diana Clarke2012-04-022-3/+1
| | | |
* | | | - merge attribute flag overhaul for [ticket:2358]Mike Bayer2012-04-237-80/+98
| | | |
* | | | - merged #1401 branch from bitbucketMike Bayer2012-04-2211-657/+1223
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - resolved some serious speed hits I missed, we need to ensure only deannotated columns are used in the local/remote collections and soforth so that hash lookups against mapped columns don't dig into __eq__() - fix some other parity mismatches regarding stuff from [ticket:2453], including finding another case where _deep_annotate() was doing the wrong thing, new tests. - [feature] Major rewrite of relationship() internals now allow join conditions which include columns pointing to themselves within composite foreign keys. A new API for very specialized primaryjoin conditions is added, allowing conditions based on SQL functions, CAST, etc. to be handled by placing the annotation functions remote() and foreign() inline within the expression when necessary. Previous recipes using the semi-private _local_remote_pairs approach can be upgraded to this new approach. [ticket:1401]
| * | | | then spiff up that error msgMike Bayer2012-04-031-2/+7
| | | | |
| * | | | - move create_lazy_clause() to relationshipsMike Bayer2012-04-013-111/+74
| | | | | | | | | | | | | | | | | | | | - add foreign, remote annotations to declarative
| * | | | almost through all the fine tuningMike Bayer2012-02-251-17/+27
| | | | |
| * | | | start to work on error messages, allow foreign_keys as only argumentMike Bayer2012-02-253-18/+74
| | | | | | | | | | | | | | | | | | | | if otherwise can't determine join condition due to no fks
| * | | | - figured out again why deannotate must clone()Mike Bayer2012-02-115-175/+221
| | | | | | | | | | | | | | | | | | | | | | | | | - got everything working. just need to update error strings
| * | | | many fixes but still can't get heuristics to work as well as what's existing,Mike Bayer2012-02-114-5/+11
| | | | | | | | | | | | | | | | | | | | tests still failing
| * | | | tweak for correlated subqueries here, seems to work for ↵Mike Bayer2012-02-101-1/+6
| | | | | | | | | | | | | | | | | | | | test_eager_relations:CorrelatedSubqueryTest but need some more testing here
| * | | | - move properties to use the new create_joinsMike Bayer2012-02-103-149/+74
| | | | | | | | | | | | | | | | | | | | - fix up subquery eager loading
| * | | | fix up this testMike Bayer2012-02-101-1/+0
| | | | |
| * | | | - got m2m, local_remote_pairs, etc. workingMike Bayer2012-02-097-347/+294
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - using new traversal that returns the product of both sides of a binary, starting to work with (a+b) == (c+d) types of joins. primaryjoins on functions working - annotations working, including reversing local/remote when doing backref
| * | | | - hooks in the new object to RelationshipProperty, restores the "local" ↵Mike Bayer2012-02-082-431/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | annotation. also added in sync pairs, etc. many-to-many is currently broken.
| * | | | new test that illustrates the breakage of partial remote side when FKs are ↵Mike Bayer2012-02-081-2/+2
| | | | | | | | | | | | | | | | | | | | assumed
| * | | | simplify remote annotation significantly, and alsoMike Bayer2012-02-084-125/+148
| | | | | | | | | | | | | | | | | | | | catch the actual remote columns more accurately.
| * | | | local_remote_pairs/remote_side are comparing against existingMike Bayer2012-02-062-249/+53
| | | | | | | | | | | | | | | | | | | | 100%
| * | | | this version has easy cases going well. hard cases not so muchMike Bayer2012-02-062-103/+385
| | | | |
| * | | | proof of concept. relationships.JoinCondition is givenMike Bayer2012-02-061-0/+742
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | everything known about the relationship in an ORM-agnostic way. The primaryjoin is determined as before, but is then immediately parsed and annotated with "foreign", "local" and "remote" annotations. These annotations will then drive the additional decisions made, namely "direction" and "sync pairs". The end user will be able to pass a pre-annotated join condition in which case those annotations take effect as given, which will in one pass fix both #1401 as well as #610 (for #610, the "foreign" / "remote" annotation can recursively descend down to ColumnElement objects).
| * | | | initial annotations approach to join conditions. all tests pass, plus ↵Mike Bayer2012-02-064-25/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | additional tests in #1401 pass. would now like to reorganize RelationshipProperty more around the annotations concept.
* | | | | 0.8 initial prepMike Bayer2012-04-221-1/+1
| | | | |
* | | | | - [bug] Fixed bug in 0.7.6 introduced byMike Bayer2012-04-191-8/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [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.
* | | | | - [bug] UPDATE..FROM syntax with SQL ServerMike Bayer2012-04-182-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]
* | | | | - mysql [bug] Fixed bug whereby if cast() is usedMike Bayer2012-04-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]
* | | | | Merged in bentrofatter/sqlalchemy-informix-dialect-fix (pull request #7)Mike Bayer2012-04-121-1/+1
|\ \ \ \ \
| * | | | | Changed misspelled 'altere' reserved word to 'alter'Benjamin Trofatter2012-04-121-1/+1
| | | | | |
* | | | | | - [bug] If conn.begin() fails when callingMike Bayer2012-04-121-1/+5
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | "with engine.begin()", the newly acquired Connection is closed explicitly before propagating the exception onward normally.
* | | | | - test explicitly for 'VIEW', 'SYSTEM VIEW'Mike Bayer2012-04-121-1/+1
| | | | | | | | | | | | | | | | | | | | - move the test to the reflection tests
* | | | | Modified MySQLDialect.get_view_names() to also return system views such as ↵elazar2012-04-111-2/+1
| | | | | | | | | | | | | | | | | | | | those in information_schema
* | | | | - [feature] Added new flag to @validatesMike Bayer2012-04-113-25/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.