summaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
* - add a test for [ticket:2927], which is an 0.9 issue but only because 0.8Mike Bayer2014-01-291-0/+9
| | | | isn't annotating correctly
* - repair the fixture/test here to make sure state isn't left over causing ↵Mike Bayer2014-01-281-1/+1
| | | | other tests to fail
* - add tests for [ticket:2918], confirm this is an 0.9 regressionMike Bayer2014-01-232-0/+49
|
* - changelog + test for pullreq github 58Mike Bayer2014-01-141-0/+7
|
* - support addition of fails_if()/only_on(), just wraps the decoratorsMike Bayer2014-01-022-5/+12
| | | | - update a few exclusions to support current pymssql. passes all of test_suite and dialect/mssql
* - apply a similar fix for floats to mssql+pyodbc as we did to firebirdMike Bayer2013-12-281-1/+11
| | | | | - wrangle through osx+pyodbc+freetds to get at least test_suite to pass again with mssql+pyodbc. invovled adding some silly requirements
* test hanging on 0.8, suspecting the test framework. this feature is tested ↵Mike Bayer2013-12-271-1/+3
| | | | on 0.9 successfully
* - The firebird dialect will quote identifiers which begin with anMike Bayer2013-12-271-0/+9
| | | | underscore. Courtesy Treeve Jelbert. [ticket:2897]
* - The "asdecimal" flag used with the :class:`.Float` type will nowMike Bayer2013-12-271-0/+20
| | | | | | | | | work with Firebird dialects; previously the decimal conversion was not occurring. - scale back some firebird FP numeric tests Conflicts: test/requirements.py
* - repair some suite tests for firebirdMike Bayer2013-12-271-3/+15
|
* Remove terminated connections from the pool.John Anderson2013-12-271-3/+4
| | | | | | In pymssql, if you terminate a long running query manually it will give you a connection reset by peer message, but this connection remains in the pool and will be re-used.
* - Fixed issue where a primary key column that has a Sequence on it,Mike Bayer2013-12-201-0/+28
| | | | | | | | | yet the column is not the "auto increment" column, either because it has a foreign key constraint or ``autoincrement=False`` set, would attempt to fire the Sequence on INSERT for backends that don't support sequences, when presented with an INSERT missing the primary key value. This would take place on non-sequence backends like SQLite, MySQL. [ticket:2896]
* - Fixed bug with :meth:`.Insert.from_select` method where the orderMike Bayer2013-12-191-0/+29
| | | | | | | | of the given names would not be taken into account when generating the INSERT statement, thus producing a mismatch versus the column names in the given SELECT statement. Also noted that :meth:`.Insert.from_select` implies that Python-side insert defaults cannot be used, since the statement has no VALUES clause. [ticket:2895]
* autoincrement hereMike Bayer2013-12-171-2/+2
|
* - for [ticket:2651], leaving CheckConstraint alone, preferring to keepMike Bayer2013-12-161-1/+2
| | | | | | | | | | | | backwards compatibility. A note about backslashing escapes is added. Because the Text() construct now supports bind params better, the example given in the code raises an exception now, so that should cover us. The exception itself has been enhanced to include the key name of the bound param. We're backporting this to 0.8 but 0.8 doesn't have the text->bind behavior that raises. Conflicts: lib/sqlalchemy/sql/schema.py
* - An adjustment to the :func:`.subqueryload` strategy which ensures thatMike Bayer2013-12-161-0/+54
| | | | | | | the query runs after the loading process has begun; this is so that the subqueryload takes precedence over other loaders that may be hitting the same attribute due to other eager/noload situations at the wrong time. [ticket:2887]
* - Fixed bug when using joined table inheritance from a table to aMike Bayer2013-12-161-14/+65
| | | | | | | select/alias on the base, where the PK columns were also not same named; the persistence system would fail to copy primary key values from the base table to the inherited table upon INSERT. [ticket:2885]
* make the error message for [ticket:2889] more accurate, as we supportMike Bayer2013-12-121-1/+1
| | | | composites to many-to-ones now also
* - :func:`.composite` will raise an informative error message when theMike Bayer2013-12-121-1/+19
| | | | | | | | | columns/attribute (names) passed don't resolve to a Column or mapped attribute (such as an erroneous tuple); previously raised an unbound local. [ticket:2889] Conflicts: test/orm/test_composites.py
* - Error message when a string arg sent to :func:`.relationship` whichMike Bayer2013-12-121-0/+32
| | | | | | | | | | doesn't resolve to a class or mapper has been corrected to work the same way as when a non-string arg is received, which indicates the name of the relationship which had the configurational error. [ticket:2888] Conflicts: lib/sqlalchemy/orm/relationships.py
* - A DBAPI that raises an error on ``connect()`` which is not a subclassMike Bayer2013-12-072-14/+53
| | | | | | | | | | | | of dbapi.Error (such as ``TypeError``, ``NotImplementedError``, etc.) will propagate the exception unchanged. Previously, the error handling specific to the ``connect()`` routine would both inappropriately run the exception through the dialect's :meth:`.Dialect.is_disconnect` routine as well as wrap it in a :class:`sqlalchemy.exc.DBAPIError`. It is now propagated unchanged in the same way as occurs within the execute process. [ticket:2881] - add tests for this in test_parseconnect, but also add tests in test_execute to ensure the execute() behavior as well
* - The :class:`.QueuePool` has been enhanced to not block new connectionMike Bayer2013-12-061-0/+82
| | | | | | | | attempts when an existing connection attempt is blocking. Previously, the production of new connections was serialized within the block that monitored overflow; the overflow counter is now altered within it's own critical section outside of the connection process itself. [ticket:2880]
* - Made a slight adjustment to the logic which waits for a pooledMike Bayer2013-12-061-6/+13
| | | | | | | | | | | connection to be available, such that for a connection pool with no timeout specified, it will every half a second break out of the wait to check for the so-called "abort" flag, which allows the waiter to break out in case the whole connection pool was dumped; normally the waiter should break out due to a notify_all() but it's possible this notify_all() is missed in very slim cases. This is an extension of logic first introduced in 0.8.0, and the issue has only been observed occasionally in stress tests.
* - changelog + test for pullreq #7, MSSQL dialect for DROP INDEXMike Bayer2013-12-051-0/+11
|
* - move tests for unique constraints to dialect suite, includingMike Bayer2013-12-032-34/+8
| | | | requirements etc., just like 0.9
* - backport unique constraints reflection to 0.8.4, therebyRoman Podolyaka2013-12-031-0/+37
| | | | | | | | | | | | | | | assisting with alembic installations that have upgraded and are dealing with PG index/unique constraint reflection. 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.
* - the pronoun removal commit. there was only one instance of aMike Bayer2013-11-301-2/+2
| | | | | | | | standalone gendered pronoun with a gender-neutral subject, but also have replaced all occurences of "his/her", "his or her", etc. The docs have always strived to account for both genders in any non-specific singular pronoun, however recent controversy in the community suggests that a zero-gendered-pronoun policy is probably best going forward.
* -be more agnostic of quotes hereMike Bayer2013-11-231-2/+2
| | | | | Conflicts: test/engine/test_execute.py
* - Fixed bug where SQL statement would be improperly ASCII-encodedMike Bayer2013-11-222-2/+21
| | | | | | | | | | when a pre-DBAPI :class:`.StatementError` were raised within :meth:`.Connection.execute`, causing encoding errors for non-ASCII statements. The stringification now remains within Python unicode thus avoiding encoding errors. [ticket:2871] Conflicts: test/engine/test_execute.py
* Fixed bug where Oracle ``VARCHAR`` types given with no lengthMike Bayer2013-11-221-0/+6
| | | | | (e.g. for a ``CAST`` or similar) would incorrectly render ``None CHAR`` or similar. [ticket:2870]
* - cleanupMike Bayer2013-11-221-274/+288
|
* disable this test for py3k, this is better fixed in 0.9Mike Bayer2013-11-211-6/+7
|
* - Fixed bug which prevented the ``serializer`` extension from workingMike Bayer2013-11-211-3/+22
| | | | | | | | | | correctly with table or column names that contain non-ASCII characters. [ticket:2869] Conflicts: lib/sqlalchemy/ext/serializer.py lib/sqlalchemy/sql/selectable.py lib/sqlalchemy/testing/assertions.py
* - add a sanity-check test for repr(), comparing against what we getMike Bayer2013-11-211-1/+13
| | | | in 0.9 for [ticket:2868]
* - apply a timeout to all join() calls for test_poolMike Bayer2013-11-171-5/+10
| | | | | | | - use thread.join() for waiters_handled test Conflicts: test/engine/test_pool.py
* - Fixed a regression introduced by :ticket:`2818` where the EXISTSMike Bayer2013-10-301-4/+16
| | | | | | query being generated would produce a "columns being replaced" warning for a statement with two same-named columns, as the internal SELECT wouldn't have use_labels set.
* - Fixed bug where Oracle table reflection using synonyms would failMike Bayer2013-10-251-0/+29
| | | | | if the synonym and the table were in different remote schemas. Patch to fix courtesy Kyle Derr. [ticket:2853]
* - The regexp used by the :func:`.url.make_url` function now parsesMike Bayer2013-10-231-12/+19
| | | | ipv6 addresses, e.g. surrounded by brackets. [ticket:2851]
* - Fixed bug where :func:`.type_coerce` would not interpret ORMMike Bayer2013-10-211-0/+11
| | | | | | | | elements with a ``__clause_element__()`` method properly. [ticket:2849] Conflicts: lib/sqlalchemy/sql/elements.py
* fix python 2.5 ismMike Bayer2013-10-201-2/+2
|
* - add a type_coerce() step within Enum, Boolean to the CHECK constraint,Mike Bayer2013-10-201-2/+68
| | | | | | | | | | | | so that the custom type isn't exposed to an operation that is against the "impl" type's constraint, [ticket:2842] - this change showed up as some recursion overflow in pickling with labels, add a __reduce__() there....pickling of expressions is less and less something that's very viable... Conflicts: lib/sqlalchemy/sql/elements.py lib/sqlalchemy/sql/sqltypes.py
* use sets here to eliminate ordering as a factorMike Bayer2013-10-181-4/+4
|
* - Removed a 128-character truncation from the reflection of theMike Bayer2013-10-181-0/+11
| | | | | | server default for a column; this code was original from PG system views which truncated the string for readability. [ticket:2844]
* - The change in :ticket:`2721`, which is that the ``deferrable`` keywordMike Bayer2013-10-181-3/+51
| | | | | | | | | | | | | | | | | of :class:`.ForeignKeyConstraint` is silently ignored on the MySQL backend, will be reverted as of 0.9; this keyword will now render again, raising errors on MySQL as it is not understood - the same behavior will also apply to the ``initially`` keyword. In 0.8, the keywords will remain ignored but a warning is emitted. Additionally, the ``match`` keyword now raises a :class:`.CompileError` on 0.9 and emits a warning on 0.8; this keyword is not only silently ignored by MySQL but also breaks the ON UPDATE/ON DELETE options. To use a :class:`.ForeignKeyConstraint` that does not render or renders differently on MySQL, use a custom compilation option. An example of this usage has been added to the documentation, see :ref:`mysql_foreign_keys`. [ticket:2721] [ticket:2839]
* The ``.unique`` flag on :class:`.Index` could be produced as ``None``Mike Bayer2013-10-141-0/+22
| | | | | | | | | if it was generated from a :class:`.Column` that didn't specify ``unique`` (where it defaults to ``None``). The flag will now always be ``True`` or ``False``. [ticket:2825] Conflicts: lib/sqlalchemy/sql/schema.py
* - Added new option to :func:`.relationship` ``distinct_target_key``.Mike Bayer2013-10-131-0/+200
| | | | | | | | | | | | | | | | | | This enables the subquery eager loader strategy to apply a DISTINCT to the innermost SELECT subquery, to assist in the case where duplicate rows are generated by the innermost query which corresponds to this relationship (there's not yet a general solution to the issue of dupe rows within subquery eager loading, however, when joins outside of the innermost subquery produce dupes). When the flag is set to ``True``, the DISTINCT is rendered unconditionally, and when it is set to ``None``, DISTINCT is rendered if the innermost relationship targets columns that do not comprise a full primary key. The option defaults to False in 0.8 (e.g. off by default in all cases), None in 0.9 (e.g. automatic by default). Thanks to Alexander Koval for help with this. [ticket:2836] Conflicts: lib/sqlalchemy/orm/relationships.py
* MySQL-connector dialect now allows options in the create_engineMike Bayer2013-10-131-5/+54
| | | | | | query string to override those defaults set up in the connect, including "buffered" and "raise_on_warnings". [ticket:2515]
* Parenthesis will be applied to a compound SQL expression asMike Bayer2013-10-121-1/+12
| | | | | rendered in the column list of a CREATE INDEX statement. [ticket:2742]
* - Fixed bug in default compiler plus those of postgresql, mysql, andMike Bayer2013-10-125-0/+62
| | | | | | | | | | | mssql to ensure that any literal SQL expression values are rendered directly as literals, instead of as bound parameters, within a CREATE INDEX statement. [ticket:2742] - don't need expression_as_ddl(); literal_binds and include_table take care of this functionality. Conflicts: lib/sqlalchemy/sql/util.py
* A :func:`.select` that is made to refer to itself in its FROM clause,Mike Bayer2013-10-081-0/+12
| | | | | | | | | typically via in-place mutation, will raise an informative error message rather than causing a recursion overflow. [ticket:2815] Conflicts: lib/sqlalchemy/sql/selectable.py