summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add basic support of unique constraints reflectionpr/4Roman Podolyaka2013-06-096-0/+141
| | | | | | | | | | | | Inspection API already supports reflection of table indexes information and those also include unique constraints (at least for PostgreSQL and MySQL). But it could be actually useful to distinguish between indexes and plain unique constraints (though both are implemented in the same way internally in RDBMS). This change adds a new method to Inspection API - get_unique_constraints() and implements it for SQLite, PostgreSQL and MySQL dialects.
* ...and...its a behavioral improvementMike Bayer2013-06-081-92/+88
|
* fix this exampleMike Bayer2013-06-081-2/+2
|
* mention right joins, make it clear we're talking about left outer join as ↵Mike Bayer2013-06-081-5/+13
| | | | the bigger issue
* oracle 9 does support this, oracle 8 is a special case.Mike Bayer2013-06-081-5/+6
|
* cleanupMike Bayer2013-06-082-15/+6
|
* get nested joins to render on oracle 8Mike Bayer2013-06-082-3/+43
|
* - tests for the alias() APIMike Bayer2013-06-084-42/+379
| | | | - docs docs docs
* formattingMike Bayer2013-06-081-3/+3
|
* changelogMike Bayer2013-06-082-0/+17
|
* Merge pull request #3 from bslatkin/mastermike bayer2013-06-081-7/+16
|\ | | | | Makes gaerdbms for App Engine use local MySQL server when running in dev_appserver2
| * Fixing the error regex to match numbers with the long suffix, like 1146Lpr/3Brett Slatkin2013-06-081-1/+1
| |
| * PEP8Brett Slatkin2013-06-081-3/+3
| |
| * Makes gaerdbms for App Engine use local MySQL server when running under ↵Brett Slatkin2013-06-081-6/+15
| | | | | | | | dev_appserver2.
* | most of these dialect=mysql.dialect() calls are redundantMike Bayer2013-06-081-23/+13
| |
* | - changelog for [ticket:2704]Mike Bayer2013-06-083-9/+31
| | | | | | | | - use an isinstance() check, concerned a TypeError might be indiscriminate
* | Merged in malor/sqlalchemy (pull request #1) Mike Bayer2013-06-082-7/+54
|\ \ | | | | | | Fix using of 'mysql_length' for composite indexes
| * | Fix using of 'mysql_length' for composite indexesRoman Podolyaka2013-06-082-7/+54
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, one can specify the prefix length for an index column using 'mysql_length' keyword argument when creating an Index instance. But in case of composite indexes the prefix length value is applied only to the last column. Extend the existing API in way so that 'mysql_length' argument value can be either: - an integer specifying the same prefix length value for each column of an index - a (column_name --> integer value) mapping specifying the prefix length value for each column of an index separately Fixes issue #2704.
* | also clarified the changelog regarding Cls.scalar != 'value'Mike Bayer2013-06-082-12/+18
| |
* | Added additional criterion to the ==, != comparators, used withMike Bayer2013-06-083-24/+195
|/ | | | | | | | | | | | | | | | | | | scalar values, for comparisons to None to also take into account the association record itself being non-present, in addition to the existing test for the scalar endpoint on the association record being NULL. Previously, comparing ``Cls.scalar == None`` would return records for which ``Cls.associated`` were present and ``Cls.associated.scalar`` is None, but not rows for which ``Cls.associated`` is non-present. More significantly, the inverse operation ``Cls.scalar != None`` *would* return ``Cls`` rows for which ``Cls.associated`` was non-present. Additionally, added a special use case where you can call ``Cls.scalar.has()`` with no arguments, when ``Cls.scalar`` is a column-based value - this returns whether or not ``Cls.associated`` has any rows present, regardless of whether or not ``Cls.associated.scalar`` is NULL or not. [ticket:2751]
* - Fixed an obscure bug where the wrong results would beMike Bayer2013-06-077-97/+375
| | | | | | | | | | | fetched when joining/joinedloading across a many-to-many relationship to a single-table-inheriting subclass with a specific discriminator value, due to "secondary" rows that would come back. The "secondary" and right-side tables are now inner joined inside of parenthesis for all ORM joins on many-to-many relationships so that the left->right join can accurately filtered. [ticket:2369]
* remove all remaining start/end py2k/py3k blocksMike Bayer2013-06-0710-168/+131
|
* fix testMike Bayer2013-06-061-0/+1
|
* Merge branch 'ticket_2587'Mike Bayer2013-06-068-38/+227
|\
| * dial back the default "flatness" a bit, it will be there for joinedload and ↵Mike Bayer2013-06-068-47/+182
| | | | | | | | | | | | | | query.join(), but if you're dealing with aliased() or with_polymorphic() you need to say "flat=True". Just the one flag though, "flat" implies "aliased".
| * shrugsMike Bayer2013-06-051-1/+6
| |
| * a test for what's breaking, plus a non-working fix for it...Mike Bayer2013-06-052-1/+50
| |
* | When querying the information schema on SQL Server 2000, removedMike Bayer2013-06-064-4/+58
|/ | | | | | | a CAST call that was added in 0.8.1 to help with driver issues, which apparently is not compatible on 2000. The CAST remains in place for SQL Server 2005 and greater. [ticket:2747]
* genericize tests hereMike Bayer2013-06-041-5/+10
|
* Merge branch 'ticket_2587'Mike Bayer2013-06-0420-299/+723
|\ | | | | | | | | | | Conflicts: test/profiles.txt test/sql/test_selectable.py
| * - add coverage for result map rewritingMike Bayer2013-06-042-1/+12
| | | | | | | | | | - fix the result map rewriter for col mismatches, since the rewritten select at the moment typically has more columns than the original
| * callcountsMike Bayer2013-06-041-14/+9
| |
| * - if the select() does not have use_labels on, then we just renderMike Bayer2013-06-042-0/+52
| | | | | | | | | | | | the joins as is, regardless of the dialect not supporting it. use_labels=True indicates a higher level of automation and also can maintain the labels between rewritten and not. use_labels=False indicates a manual use case.
| * - support for a__b_dc, i.e. two levels of nestingMike Bayer2013-06-042-39/+150
| |
| * repair these tests now that we allow join from selectable to fromgroupingMike Bayer2013-06-041-21/+26
| |
| * clean up the dialect selection thing hereMike Bayer2013-06-041-8/+12
| |
| * - add a flag to DefaultDialect for this so that people will have someMike Bayer2013-06-042-1/+31
| | | | | | | | workaround
| * - improve overlapping selectables, apply to both query and relationshipMike Bayer2013-06-048-140/+118
| | | | | | | | | | | | - clean up inspect() calls within query._join() - make sure join.alias(flat) propagates - fix almost all assertion tests
| * - eager loadsMike Bayer2013-06-044-81/+54
| | | | | | | | - two suite of SQL assertions converted
| * here's the flat join thing. it just works. Changing the existing compiled ↵Mike Bayer2013-06-043-8/+19
| | | | | | | | | | | | SQL assertions might even be most of the tests we need (though dedicated sql tests would be needed anyway)
| * and this commentMike Bayer2013-06-041-0/+4
| |
| * rewriting scheme now works.Mike Bayer2013-06-043-105/+67
| |
| * capture the really hard one in a test (hooray)Mike Bayer2013-06-042-1/+120
| |
| * OK this is the broken version, need to think a lot more about thisMike Bayer2013-06-033-4/+48
| |
| * - pulling out more aliases, sort ofMike Bayer2013-06-031-4/+9
| |
| * working through tests....Mike Bayer2013-06-026-24/+55
| |
| * - figured out what the from_self() thing was about, part of query.statement, ↵Mike Bayer2013-06-024-9/+6
| | | | | | | | | | | | but would like to improve upon query.statement needing to do this
| * getting things to join without subqueries, but some glitches in the compiler ↵Mike Bayer2013-06-026-21/+52
| | | | | | | | | | | | step when we do query.count() are showing
| * implement join rewriting inside of visit_select(). Currently this is global ↵Mike Bayer2013-06-023-13/+75
| | | | | | | | or not based on fixing nested_join_translation as True or not.
* | The ``deferrable`` keyword argument on :class:`.ForeignKey` andMike Bayer2013-06-034-0/+37
| | | | | | | | | | | | | | | | :class:`.ForeignKeyConstraint` will not render the ``DEFERRABLE`` keyword on the MySQL dialect. For a long time we left this in place because a non-deferrable foreign key would act very differently than a deferrable one, but some environments just disable FKs on MySQL, so we'll be less opinionated here. [ticket:2721]