summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Clarify mappers.configure_mappers error messagepr/298John Perkins2016-08-053-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | Sometimes the message generated by configure_mappers lacks a reference to the failing mapper, and only the mapper._configure_failed is shown. This makes debugging problems extremely difficult. Example: sqlalchemy.exc.InvalidRequestError: One or more mappers failed to initialize - can't proceed with initialization of other mappers. Original exception was: Class 'neutron.objects.router.Router' is not mapped In the above failure, the actual object having a problem is FloatingIP, which has a knock-on effect on the Router object when it fails to map. A more helpful error message might look like this example: sqlalchemy.exc.InvalidRequestError: One (Mapper|FloatingIp|floatingip) or more mappers failed to initialize - can't proceed with initialization of other mappers. Original exception was: Class 'neutron.objects.router.Router' is not mapped This patch adds the failing mapper name to the beginning of the message after 'One', as shown in the second example. Change-Id: I9f23bfa90b26dde9229ab7ec812eec9ceae48153
* Build string/int processors for JSONIndexType, JSONPathTypeMike Bayer2016-08-047-25/+190
| | | | | | | | | | | | Fixed regression in JSON datatypes where the "literal processor" for a JSON index value, that needs to take effect for example within DDL, would not be invoked for the value. The native String and Integer datatypes are now called upon from within the JSONIndexType and JSONPathType. This is applied to the generic, Postgresql, and MySQL JSON types. Change-Id: Ifa5f2acfeee57a79d01d7fc85d265a37bd27c716 Fixes: #3765
* Propagate kwargs to all MySQL CAST pathsMike Bayer2016-08-043-4/+46
| | | | | Change-Id: I23a6abb26bbbe3d118887d043ce761fc4572d8d2 Fixes: #3766
* Warn that bulk save groups inserts/updates by typebrln2016-08-021-0/+8
| | | | | | | | | | Users who pass many different object types to bulk_save_objects may be surprised that the INSERT/UPDATE batches must necessarily be broken up by type. Add this to the list of caveats. Co-authored-by: Mike Bayer Change-Id: I8390c1c971ced50c41268b479a9dcd09c695b135 Pull-request: https://github.com/zzzeek/sqlalchemy/pull/294
* Merge remote-tracking branch 'origin/pr/296'Mike Bayer2016-08-021-1/+1
|\
| * Fix typopr/296Jeff Widman2016-07-251-1/+1
| |
* | Merge branch 'declarative-constructor-reference' of ↵Mike Bayer2016-08-021-1/+1
|\ \ | | | | | | | | | https://bitbucket.org/michaelwilliamson/sqlalchemy
| * | Fix reference to _declarative_constructor in docstringMichael Williamson2016-07-251-1/+1
| |/
* | Ensure post-__clause_element__() expression are used in IndexMike Bayer2016-07-312-1/+17
| | | | | | | | | | | | | | | | | | | | | | The change in Index for 1.1 combined with the fix for ref #3763 still fails to deliver the correct object resolved by __clause_element__() to the list of expressions for compilation. Make sure we use the expression that's been unwrapped from __clause_element__(). Change-Id: Ie1df8db5090de665048331786f0024d52851923f Fixes: #3763
* | Merge "Index should extract __clause_element__() early"mike bayer2016-07-303-2/+37
|\ \
| * | Index should extract __clause_element__() earlyMike Bayer2016-07-303-2/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug where :class:`.Index` would fail to extract columns from compound SQL expressions if those SQL expressions were wrapped inside of an ORM-style ``__clause_element__()`` construct. This bug exists in 1.0.x as well, however in 1.1 is more noticeable as hybrid_property @expression now returns a wrapped element. Fixes: #3763 Change-Id: I992536386503a1fb3f2305790abe008d72c44c4a
* | | Merge "Clarify order_by(False)"mike bayer2016-07-303-5/+89
|\ \ \ | |/ / |/| |
| * | Clarify order_by(False)Mike Bayer2016-07-293-5/+89
| | | | | | | | | | | | | | | | | | | | | | | | It wasn't clear how this differs from order_by(None); add more tests and document that this has to do with whether or not mapper.order_by will be re-enabled as well. Change-Id: I332e8ac60c999b38c5a243f1cb72de3cf77891b6
* | | - Consoliate test/sql/test_constraint ConstraintAPITestMike Bayer2016-07-302-371/+370
| | | | | | | | | | | | | | | | | | | | | and test/sql/test_metadata IndexTest into test/sql/test_metadata ConstraintTest Change-Id: I7aeee9a1edbbd889200afc393695f73d5fbac3f3
* | | Merge "Allow None to cancel Query.group_by()"mike bayer2016-07-293-1/+74
|\ \ \ | |/ /
| * | Allow None to cancel Query.group_by()Iuri Diniz2016-07-293-1/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This replicates the same behavior as order_by(). order_by() will also be updated to deprecate passing of False as this is no longer functionally different than passing None. Change-Id: I2fc05d0317d28b6c83373769a48f7eea32d56290 Pull-request: https://github.com/zzzeek/sqlalchemy/pull/297
* | | Merge "Enable JSON testing for pymysql"mike bayer2016-07-291-4/+1
|\ \ \ | |/ / |/| |
| * | Enable JSON testing for pymysqlMike Bayer2016-07-291-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | PyMySQL upstream has released 0.7.6 which should resolve JSON encoding issues. Change-Id: Icf543d48dace1419a0aac78bdb15ec666f0edafe Fixes: #3754
* | | - next release is 1.1.0Mike Bayer2016-07-292-1/+4
|/ / | | | | | | Change-Id: I1d8ac48e6457e80e93b925152f434c13139b3d94
* | - Document how SQL Server does MAX with VARCHAR, NVARCHARMike Bayer2016-07-271-0/+20
| | | | | | | | | | | | Fixes #3760 Change-Id: I0613eb66bfdc9d7118688c74e29c8da322c3b4db
* | - 1.1.0b3rel_1_1_0b3Mike Bayer2016-07-262-2/+3
| |
* | Allow Table._reset_exported to silently passMike Bayer2016-07-244-2/+28
|/ | | | | | | | | | | Fixed bug in :class:`.Table` where the internal method ``_reset_exported()`` would corrupt the state of the object. This method is intended for selectable objects and is called by the ORM in some cases; an erroneous mapper configuration would could lead the ORM to call this on on a :class:`.Table` object. Change-Id: I63fa34ee0cdf16358bb125c556390df79758bcbc Fixes: #3755
* - MySQL's JSON shared implementation completely w/ sqltypes.JSON;Mike Bayer2016-07-242-38/+3
| | | | | | | | | | this must have been an oversight. Leave mysql.JSON in place still as we might need to add things to it. - CAST(json, String) still confusing MySQL drivers even mysqlclient. Since here we're checking for the raw form of the JSON and not a typical round trip, add a force for unicode Change-Id: I727f4526a01a0875037cf0dede45cd074da5205a
* - don't use pymysql at all for JSON, there's Py2K failures alsoMike Bayer2016-07-241-1/+1
| | | | Change-Id: I39a574ea72f5c7af0084dee3169679c5f534cb8b
* - Workaround in tests for https://github.com/PyMySQL/PyMySQL/issues/488Mike Bayer2016-07-241-4/+6
| | | | Change-Id: I4f935cce878eb1678b432f4cb4ba6ee122f8e9d4
* - a variety of test adjustments to accomodate for MySQL 5.7Mike Bayer2016-07-248-17/+46
| | | | Change-Id: Ied4245433d0d7b469dae6e7394c4931d8405f387
* Remove same-named relationship warningMike Bayer2016-07-194-12/+125
| | | | | | | | | | Removed a warning that dates back to 0.4 which emits when a same-named relationship is placed on two mappers that inherits via joined or single table inheritance. The warning does not apply to the current unit of work implementation. Change-Id: If528ec3a2f4dc60712d9044fd1ec6c4dfbf0eadb Fixes: #3749
* - fix formattingMike Bayer2016-07-181-3/+3
| | | | Change-Id: Ieba940a998a6aa287864e9748c2995ee4ae5bf54
* Merge "Add `default` parameter for `index_property`"mike bayer2016-07-133-4/+62
|\
| * Add `default` parameter for `index_property`Jeong YunWon2016-07-113-4/+62
| | | | | | | | | | | | And force to use keyword arguments for trivial parameters in index_property Change-Id: I12a178128182f77a2d06b52d7e36f59a36b45a33
* | Ensure DML provides named_with_column for CTE(Alias)Mike Bayer2016-07-133-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | Fixed bug in new CTE feature for update/insert/delete whereby an anoymous (e.g. no name passed) :class:`.CTE` construct around the statement would fail. The Alias base class of CTE checks for the "named_with_column" attribute in order to detect if the underlying selectable has a name; UpdateBase now provides this as False. Change-Id: I4b0309db21379a4c0cb93085298c86da3cf840e4 Fixes: #3744
* | Merge "Work w/ prefetch even for selects, if present"mike bayer2016-07-136-34/+170
|\ \
| * | Work w/ prefetch even for selects, if presentMike Bayer2016-07-126-34/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug in new CTE feature for update/insert/delete stated as a CTE inside of an enclosing statement (typically SELECT) whereby oninsert and onupdate values weren't called upon for the embedded statement. This is accomplished by consulting prefetch for all statements. The collection is also broken into separate insert/update collections so that we don't need to consult toplevel self.isinsert to determine if the prefetch is for an insert or an update. What we don't yet test for are CTE combinations that have both insert/update in one statement, though these should now work in theory provided the underlying database supports such a statement. Change-Id: I3b6a860e22c86743c91c56a7ec751ff706f66f64 Fixes: #3745
* | | Fix issue with unbaking subqueriesMark Hahnenberg2016-07-123-13/+32
|/ / | | | | | | | | | | | | | | | | | | Fix improper capture of a loop variable inside a lambda during unbaking of subquery eager loaders, which would cause the incorrect query to be invoked. Fixes: #3743 Change-Id: I995110deb8ee2dae8540486729e1ae64578d28fc Pull-request: https://github.com/zzzeek/sqlalchemy/pull/290
* | - 1.0.15 for devMike Bayer2016-07-121-0/+3
| | | | | | | | Change-Id: I2d75b6d9ca533e662bc8160cf5fc52355e5e549e
* | Update index.rstpr/289Shige Takeda2016-07-111-1/+1
| |
* | Update index.rstShige Takeda2016-07-111-0/+1
|/
* - fix typoMike Bayer2016-07-071-1/+1
| | | | Change-Id: Ie66d419a5188529a64fcb2e2463c15c26863889f
* Add additional documentation re: JSONEncodedDictMike Bayer2016-07-071-15/+92
| | | | | | | | | Add an example of how to use coerce_compared_value() specific to JSONEncodedDict, as this example class is frequently dropped into applications. Change-Id: I61639ac03dc5a37673ee8201b99a3c36ab944f00 Fixes: #3742
* - 1.0.14 changelog updateMike Bayer2016-07-061-0/+1
| | | | | | (cherry picked from commit e9a1d7bc6a0ae4ec09b6431d23d201654013c6a7) Change-Id: I5bab3fd6f2ec4986fd6b1049844f3851958d0c66
* Merge "Adapt "FOR UPDATE OF" with Oracle limit/offset"mike bayer2016-07-063-3/+106
|\
| * Adapt "FOR UPDATE OF" with Oracle limit/offsetMike Bayer2016-07-053-3/+106
| | | | | | | | | | | | | | | | | | | | This modifies the Oracle ROWNUM limit/offset approach to accommodate for the "OF" clause in a "FOR UPDATE" phrase. The column expressions must be added to the selected subquery if necessary and adapted on the outside. Change-Id: Ia71b5fc4df6d326e73863f8ae9f96e8f1a5acfc1 Fixes: #3741
* | `index_property` catches IndexError as well as KeyErrorJeong YunWon2016-07-053-3/+11
|/ | | | | | | It was raising AttributeError for key accessing in dict, but raising IndexError for index accessing in array. Change-Id: I58a2252a9e8d7f78cabcefcbe7223a4f3a729115
* - version bumpMike Bayer2016-07-052-1/+4
| | | | Change-Id: I5ace1a90f36678c006d704b452fbbe8a3eb1cd0a
* Repair PG BIGSERIAL w/ TypeDecorator, VariantMike Bayer2016-07-043-1/+33
| | | | | | | | | | | | | Some of the dialect impl memoization for TypeDecorator necessarily keeps the top-level TypeDecorator type around, since a user-defined type will have bind and result set processing behavior. For both TypeDecorator and Variant, PG dialect needs to ensure it's looking at the SQLAlchemy type to check for SmallInteger / BigInteger. Fixes: 3739 Change-Id: I2d45fb997f17c6272d6bb826a77d2dba665adae7 (cherry picked from commit 421fa6b8bf9f0c3c5041579c89ec405ce0f5e0b0)
* Merge remote-tracking branch 'origin/pr/288'Mike Bayer2016-07-041-1/+1
|\
| * fixed typopr/288Kristian Perkins2016-07-031-1/+1
| |
* | Fix some typos in 1.1's changelog and migration sectionspr/287Lele Gaifax2016-07-022-18/+18
| |
* | Consistently use the official PostgreSQL casingLele Gaifax2016-07-023-45/+45
|/
* - add backportsMike Bayer2016-07-011-0/+2
| | | | | Change-Id: Iee0bf9e60a5991bedbe29b305803b4c79ac5c511 (cherry picked from commit 849df799ec4107d0992c8eb0e015b74916aee266)