summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* raise error on empty in_pr/282erebus12016-06-051-0/+1
|
* Merge "Fix TypeError during cx_Oracle connection" into rel_1_0mike bayer2016-05-161-3/+7
|\
| * Fix TypeError during cx_Oracle connectionJohn Vandenberg2016-05-161-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | cx_Oracle connection parameters user, password and dsn must be either a string or NULL. When they are passed a Python None object, "TypeError: expecting string, unicode or buffer object" is raised. Fixes: #3705 Change-Id: I8da5d8a227ca12c9bf17a6127460e413841951fb Pull-request: https://github.com/zzzeek/sqlalchemy/pull/271 (cherry picked from commit a60328473f78d68b65cc376c21aa8f50df867d26)
* | Accommodate "callable" bound param in evaluatorMike Bayer2016-05-161-1/+4
|/ | | | | | | | | | | Fixed bug in "evaluate" strategy of :meth:`.Query.update` and :meth:`.Query.delete` which would fail to accommodate a bound parameter with a "callable" value, as which occurs when filtering by a many-to-one equality expression along a relationship. Change-Id: I47758d3f5d8b9ea1a07e23166780d5f3c32b17f1 Fixes: #3700 (cherry picked from commit a51ab916622dd016ce51d6be0969112817cc42ad)
* Handle `SSL error: decryption failed or bad record mac`Iuri de Silvio2016-05-131-0/+1
| | | | | | | | | | This is another psycopg2 error message representing an unusable connection. Fixes #3715 Change-Id: Ida6e212963e9c7336bf2944e7ef928619ac3a0e7 (cherry picked from commit 8ecad78ba3473d97df8ed4f20f28ddf966ce0277) Pull-request: https://bitbucket.org/zzzeek/sqlalchemy/pull-requests/85
* Fix label referencing in SQL Server OFFSET logicMike Bayer2016-05-102-1/+15
| | | | | | | | | | | Fixed bug where by ROW_NUMBER OVER clause applied for OFFSET selects in SQL Server would inappropriately substitute a plain column from the local statement that overlaps with a label name used by the ORDER BY criteria of the statement. Change-Id: Ic2500c886cbfc83a1ad5a2681783f008b9f23838 Fixes: #3711 (cherry picked from commit a4be7c92393e08607dc46f318e97803519052a93)
* Check for duplicate calls to register_attribute_implMike Bayer2016-05-101-3/+15
| | | | | | | | | | | Fixed bug whereby the event listeners used for backrefs could be inadvertently applied multiple times, when using a deep class inheritance hierarchy in conjunction with mutiple mapper configuration steps. Change-Id: I712beaf4674e2323bf5b282922658020a6d00b53 Fixes: #3710 (cherry picked from commit 743e9d4589946f1a29cdec7f2f1a2e4ec0853db7)
* Repair _orm_columns() to accommodate text()Mike Bayer2016-05-052-1/+3
| | | | | | | | | | Fixed bug whereby passing a :func:`.text` construct to the :meth:`.Query.group_by` method would raise an error, instead of intepreting the object as a SQL fragment. Change-Id: I5fc2f590b76508d52e23b5fa9cf037ddea8080c3 fixes: #3706 (cherry picked from commit 9bdd6f2b1f6b34a82b77849ec05811aa0279931d)
* Corrects some references in ORM documentation.Jeffrey Finkelstein2016-05-041-8/+10
| | | | (cherry picked from commit e6251c3e40e623aaadc7356c0b3c94101710079c)
* Let logging format messages on demand, use warning instead of deprecated warnVille Skyttä2016-05-042-4/+4
| | | | (cherry picked from commit 1322edc7b1effb5bad411742b997cb2103eedfc2)
* Fix pymssql sample URLMike Bayer2016-04-271-1/+1
| | | | | | | A slash is required before building out the query string portion. Change-Id: Ie97fd3d07047d78e17cbaffed4ff54960a2b956e Fixes: #3696
* Adds parentheses around prints in documentationjfinkels2016-04-271-7/+7
| | | | | This makes the docstring example code compatible with both Python 2 and Python 3. (cherry picked from commit 8aa7369125f831a74c9f024ce5dde73ecf812e63)
* Don't double-process ResultMetaData for BufferedColumnResultProxyMike Bayer2016-04-271-9/+15
| | | | | | | | | | | | | Fixed a bug in the result proxy used mainly by Oracle when binary and other LOB types are in play, such that when query / statement caching were used, the type-level result processors, notably that required by the binary type itself but also any other processor, would become lost after the first run of the statement due to it being removed from the cached result metadata. Change-Id: I751940866cffb4f48de46edc8137482eab59790c Fixes: #3699 (cherry picked from commit f3bc60bdd809235cbeb3f414717ac0e273269cf9)
* Fix result set handling for case insensitive dupe colsMike Bayer2016-04-211-0/+1
| | | | | | | | | | | | Fixed bug where when using ``case_sensitive=False`` with an :class:`.Engine`, the result set would fail to correctly accomodate for duplicate column names in the result set, causing an error when the statement is executed in 1.0, and preventing the "ambiguous column" exception from functioning in 1.1. Change-Id: If582bb9fdd057e4da3ae42f7180b17d1a1a2d98e Fixes: #3690 (cherry picked from commit 1f3e5d9826fe989f2212745f6b3592b2ef9b5e32)
* Mention the correct way of adding multiple attributes which refer to the ↵Eoghan Murray2016-04-081-1/+2
| | | | | | same column (cherry picked from commit 2880f24d93a774d02cde83dbabfd80ad279cbb05)
* Fix typo from "addreses" to "addresses"Rachid Belaid2016-04-081-1/+1
| | | | (cherry picked from commit c8db0862c102281da617d395b1826ff523af302e)
* Fix some broken links in docsVille Skyttä2016-04-061-1/+1
| | | | (cherry picked from commit b1c9b3bd384fc40e1c411abef12eaf04b574612f)
* ReST fix: missing backtickMarius Gedminas2016-03-211-1/+1
| | | | | Fixes a misrendering at http://docs.sqlalchemy.org/en/latest/dialects/mssql.html#nullability: (cherry picked from commit e3abb63293be80379d20b4c3f0d1cd093459a9eb)
* - Fixed bug where the negation of an EXISTS expression would notMike Bayer2016-03-212-1/+13
| | | | | | | | | be properly typed as boolean in the result, and also would fail to be anonymously aliased in a SELECT list as is the case with a non-negated EXISTS construct. fixes #3682 (cherry picked from commit 07a4b6cbcda6e6ee6e67893c5a5d2fd01e5f125f)
* - ensure engine is restored even if we had a failure in cleanupMike Bayer2016-03-151-3/+5
| | | | | | for stray connection (cherry picked from commit edbb32649960db29761e765fc74c025e9999c7dd)
* - backport doc improvements from 31f96c27a5fea302358ba580313a2f742c12b83d re:Mike Bayer2016-03-152-13/+27
| | | | isolation_level settings for postgresql, mysql
* - add notes for pyodbc limitations with rowcount fixes #3675Mike Bayer2016-03-152-0/+41
| | | | (cherry picked from commit 8bc370ed382a45654101fa34bac4a2886ce089c3)
* Adds documentation to Query.slice().jfinkels2016-03-131-3/+28
| | | | (cherry picked from commit 6e5e64e27ef2c6a86c9aebdcefdf2cd726f1476a)
* - not sure why MySQL DROP DBs fail but we can't just ignore the errorMike Bayer2016-03-031-12/+3
| | | | | | like this (cherry picked from commit 0e7904e730c3d2b0d3a394ad60010158ee29050c)
* Raise exception when we have multiple values with an unknown column. Fixes ↵Athena Yao2016-03-021-1/+1
| | | | | | #3666. (cherry picked from commit 399f92cd116b747f742b919ac9a3e79eb0637e8a)
* - unfortunately calling upon "_label" here makes it unclear ifMike Bayer2016-02-261-2/+4
| | | | | we're trying to hit columns without names yet and such, to suit the bug right now just make it specific to FunctionElement
* - Anonymous labeling is applied to a :attr:`.func` construct that isMike Bayer2016-02-261-1/+1
| | | | | | | | | | | passed to :func:`.column_property`, so that if the same attribute is referred to as a column expression twice the names are de-duped, thus avoiding "ambiguous column" errors. Previously, the ``.label(None)`` would need to be applied in order for the name to be de-anonymized. fixes #3663 (cherry picked from commit 0210695bd97e76f58d8781b69337816501482fb0)
* - additional adjustment to the fix made in ↵Mike Bayer2016-02-211-1/+4
| | | | | | | | | | | | | 8ad968f33100baeb3b13c7e0b724b6b79ab4277f for ref #3657. The Oracle dialect makes more use of the "select_wraps_for" feature than SQL server because Oracle doesn't have "TOP" for a limit-only select, so tests are showing more happening here. In the case where the select() has some dupe columns, these are deduped from the .c collection so a positional match between the wrapper and original can't use .inner_columns, because these collections wont match. Using _columns_plus_names instead which is the deduped collection that determines the SELECT display, which definitely have to match up.
* - Fixed bug in "to_list" conversion where a single bytes objectMike Bayer2016-02-212-2/+6
| | | | | | | | | would be turned into a list of individual characters. This would impact among other things using the :meth:`.Query.get` method on a primary key that's a bytes object. fixes #3660 (cherry picked from commit 01809bddff5b6e93010eb139aed54526c6e6c058)
* - reworked the way the "select_wraps_for" expression isMike Bayer2016-02-204-13/+9
| | | | | | | | | | | | | | | | | | | | | | | | | handled within visit_select(); this attribute was added in the 1.0 series to accommodate the subquery wrapping behavior of SQL Server and Oracle while also working with positional column targeting and no longer relying upon "key fallback" in order to target columns in such a statement. The IBM DB2 third-party dialect also has this use case, but its implementation is using regular expressions to rewrite the textual SELECT only and does not make use of a "wrapped" select at this time. The logic no longer attempts to reconcile proxy set collections as this was not deterministic, and instead assumes that the select() and the wrapper select() match their columns postionally, at least for the column positions they have in common, so it is now very simple and safe. fixes #3657. - as a side effect of #3657 it was also revealed that the strategy of calling upon a ResultProxy._getter was not correctly calling into NoSuchColumnError when an expected column was not present, and instead returned None up to loading.instances() to produce NoneType failures; added a raiseerr argument to _getter() which is called when we aren't expecting None, fixes #3658. (cherry picked from commit 8ad968f33100baeb3b13c7e0b724b6b79ab4277f)
* - version bumpMike Bayer2016-02-201-1/+1
|
* - further edit the unnest() example to suit PG's esoteric requirementsMike Bayer2016-02-181-4/+6
| | | | | | exactly (cherry picked from commit c97aa63789036fc145503f03123275253ae02d2c)
* - use same colname as the alias we give to the PG functionMike Bayer2016-02-161-2/+2
| | | | | | here, fixes #3652 (cherry picked from commit e310a8e423d9a4eeb511b7b84dbeccc90c234a1f)
* - Fixed bug in :meth:`.Session.merge` where an object with a compositeMike Bayer2016-02-111-2/+6
| | | | | | | | | | primary key that has values for some but not all of the PK fields would emit a SELECT statement leaking the internal NEVER_SET symbol into the query, rather than detecting that this object does not have a searchable primary key and no SELECT should be emitted. fixes #3647 (cherry picked from commit 366f97b5617af0d15cfaf594ec5ef0408c70e873)
* - add more documentation to MutableDict explainingMike Bayer2016-02-101-0/+12
| | | | | | | | that this structure is only intended to track additions and removals from the dictionary, not recursive tracking of embedded changes. fixes #3646. (cherry picked from commit 287aaa9d416b4f72179da320af0624b9ebc43846)
* - don't drop the ts1/ts2 databases without seeing the primary DB,Mike Bayer2016-02-091-6/+21
| | | | | | | because we never log in on the ts1/ts2. races against other runs and erases their DBs (cherry picked from commit 3f1f1895ac99963da1a989c69c2dce59ae916ffc)
* - repair the fix just cherry-picked for ref #3644 as compiler.py wasn'tMike Bayer2016-02-091-1/+1
| | | | | present in the commit for master, having been inadvertently committed on February 3. Source of this line is c1316a299257fae8264c8038d83e415f4605fde7.
* - repair generic _post_configure_engine() from previous changesetMike Bayer2016-02-091-1/+1
|
* - backport changes to SQLite attached DB tests so thatMike Bayer2016-02-091-2/+28
| | | | we dont get file conflicts, cherry-pick from 5bb2536cc57c55c7d8c5901b5b622d18a9a6c646
* - backport new profile system from 1.1 so we can run new-styleMike Bayer2016-02-091-0/+5
| | | | test envs on jenkins
* - Testing reveals that we have *no* weak references to any cx_Oracle ↵Mike Bayer2016-02-091-3/+32
| | | | | | | | | | connections at all, yet cx_Oracle still has open sessions that cannot be killed until process dies. Oracle wins! Add a completely separate DB reaper script that runs after py.test is done. (cherry picked from commit 11a8440bc43aa9f7eb6f2cb7b7f43e0cf6680f41)
* - restore GLOBAL keyword hereMike Bayer2016-02-091-1/+1
|
* - use config-based test schemaMike Bayer2016-02-081-5/+5
| | | | (cherry picked from commit 00a05e357b5bcc37c66256bc08c1198541475739)
* - fully hyperlink the docstring for make_transientMike Bayer2016-02-082-12/+48
| | | | | | | | | | | - establish make_transient and make_transient_to_detached as special-use, advanced use only functions - list all conditions under make_transient() under which an attribute will not be loaded and establish that make_transient() does not attempt to load all attributes before detaching the object from its session, fixes #3640 (cherry picked from commit 7eff4e8f3e3999d9eb914647d8776e6e5b7ee88e)
* - more oracle fixesMike Bayer2016-02-081-4/+9
| | | | (cherry picked from commit 93c5328e66d8491e73027f6e789df2255c4fa767)
* - add multi-database provisioning for oracleMike Bayer2016-02-081-0/+29
| | | | (cherry picked from commit c01d11907cbc98ddefe323c6115bc954b908f101)
* - add literal_binds for delete() statements in addition to insert()/update()Mike Bayer2016-02-031-1/+1
| | | | | | | - move tests to CRUDTest - changelog, fixes #3643 (cherry picked from commit 150591f9e0a94902cb2a76b68ac7c9d8a1a3ec83)
* fix passing literal_binds flag through for update and insertTim Tate2016-02-032-4/+5
| | | | (cherry picked from commit c9b03fa8afd52646aba8c59fc038330eeee6db60)
* Removed entry that causes AttributeError (#3621) - Oracle zxJDBC fails with ↵Carlos Rivas2016-02-021-2/+1
| | | | | | AttributeError in object OracleCompiler_zxjdbc (cherry picked from commit edc0b8678bc06ae27fa0f7e80c3eb074978fbe10)
* - Fixed issue where inadvertent use of the Python ``__contains__``Mike Bayer2016-02-022-1/+5
| | | | | | | | | | | override with a column expression (e.g. by using ``'x' in col``) would cause an endless loop in the case of an ARRAY type, as Python defers this to ``__getitem__`` access which never raises for this type. Overall, all use of ``__contains__`` now raises NotImplementedError. fixes #3642 (cherry picked from commit e0a580b3d055a600afae61840058a5a30ef5fe74)