summaryrefslogtreecommitdiff
path: root/doc
Commit message (Collapse)AuthorAgeFilesLines
* Fix many typos throughout the codebasepr/85Alex Gaynor2014-04-2625-106/+106
| | | | Found using: https://github.com/intgr/topy
* - add a note about versioning only applying to flushesMike Bayer2014-04-251-0/+10
|
* - document that joinedload/eagerload work with of_type() + with_polymoprhic()Mike Bayer2014-04-231-3/+19
|
* - The "primaryjoin" model has been stretched a bit further to allowMike Bayer2014-04-192-0/+55
| | | | | | | | | | a join condition that is strictly from a single column to itself, translated through some kind of SQL function or expression. This is kind of experimental, but the first proof of concept is a "materialized path" join condition where a path string is compared to itself using "like". The :meth:`.Operators.like` operator has also been added to the list of valid operators to use in a primaryjoin condition. fixes #3029
* - Liberalized the contract for :class:`.Index` a bit in that you canMike Bayer2014-04-191-0/+10
| | | | | | | specify a :func:`.text` expression as the target; the index no longer needs to have a table-bound column present if the index is to be manually added to the table, either via inline declaration or via :meth:`.Table.append_constraint`. fixes #3028
* - Revised the query used to determine the current default schema nameMike Bayer2014-04-171-0/+10
| | | | | | | to use the ``database_principal_id()`` function in conjunction with the ``sys.database_principals`` view so that we can determine the default schema independently of the type of login in progress (e.g., SQL Server, Windows, etc). fixes #3025
* - Fixed bug in new :meth:`.DialectKWArgs.argument_for` method whereMike Bayer2014-04-151-0/+8
| | | | | adding an argument for a construct not previously included for any special arguments would fail. fixes #3024
* changelogMike Bayer2014-04-141-0/+9
|
* - Added a new "disconnect" message "connection has been closed unexpectedly".Mike Bayer2014-04-111-0/+12
| | | | | This appears to be related to newer versions of SSL. Pull request courtesy Antti Haapala.
* Merge pull request #84 from Daniel-B-Smith/mastermike bayer2014-04-111-1/+1
|\ | | | | Fixed bug in example code on orm session page.
| * Fixed bug in example code.pr/84Daniel Smith2014-04-101-1/+1
| |
* | - Fixed regression introduced in 0.9 where new "ORDER BY <labelname>"Mike Bayer2014-04-101-0/+8
|/ | | | | | feature from :ticket:`1068` would not apply quoting rules to the label name as rendered in the ORDER BY. fix #3020, re: #1068
* - Added new utility function :func:`.make_transient_to_detached` which canMike Bayer2014-04-092-0/+12
| | | | | | | be used to manufacture objects that behave as though they were loaded from a session, then detached. Attributes that aren't present are marked as expired, and the object can be added to a Session where it will act like a persistent one. fix #3017
* repair erroneous whitespace in autodoc directives, preventing members fromMike Bayer2014-04-061-8/+0
| | | | being documented
* - Restored the import for :class:`.Function` to the ↵Mike Bayer2014-04-051-0/+6
| | | | | | ``sqlalchemy.sql.expression`` import namespace, which was removed at the beginning of 0.9.
* - add some docs for the instancestate linkage to the inspection systemMike Bayer2014-04-041-0/+22
|
* - Fixes to the newly enhanced boolean coercion in :ticket:`2804` whereMike Bayer2014-04-011-0/+10
| | | | | | | the new rules for "where" and "having" woudn't take effect for the "whereclause" and "having" kw arguments of the :func:`.select` construct, which is also what :class:`.Query` uses so wasn't working in the ORM either. fixes #3013 re: #2804
* - Added new flag :paramref:`.expression.between.symmetric`, when set to TrueMike Bayer2014-03-301-0/+13
| | | | | | | renders "BETWEEN SYMMETRIC". Also added a new negation operator "notbetween_op", which now allows an expression like ``~col.between(x, y)`` to render as "col NOT BETWEEN x AND y", rather than a parentheiszed NOT string. fixes #2990
* - fix mapper refMike Bayer2014-03-282-4/+1
| | | | - don't talk about "can't check for rows matched" here as we changed that in 0.9
* 0.9.4rel_0_9_4Mike Bayer2014-03-283-2/+4
|
* - Added new parameter :paramref:`.mapper.confirm_deleted_rows`. DefaultsMike Bayer2014-03-281-0/+15
| | | | | | | | | | | | to True, indicates that a series of DELETE statements should confirm that the cursor rowcount matches the number of primary keys that should have matched; this behavior had been taken off in most cases (except when version_id is used) to support the unusual edge case of self-referential ON DELETE CASCADE; to accomodate this, the message is now just a warning, not an exception, and the flag can be used to indicate a mapping that expects self-refererntial cascaded deletes of this nature. See also :ticket:`2403` for background on the original change. re: #2403 fix #3007
* - revert part of c01558ae7f4a for now as we also test that a DELETE of two rowsMike Bayer2014-03-281-7/+3
| | | | | | where one is to be deleted from ON DELETE CASCADE succeeds; the check here makes that fail. We will need to add an option to enable/disable this check per mapping, will likely do this in next version
* - Fixed ORM bug where changing the primary key of an object, then markingMike Bayer2014-03-281-0/+22
| | | | | | | | | | | | | it for DELETE would fail to target the correct row for DELETE. Then to compound matters, basic "number of rows matched" checks were not being performed. Both issues are fixed, however note that the "rows matched" check requires so-called "sane multi-row count" functionality; the DBAPI's executemany() method must count up the rows matched by individual statements and SQLAlchemy's dialect must mark this feature as supported, currently applies to some mysql dialects, psycopg2, sqlite only. fixes #3006 - Enabled "sane multi-row count" checking for the psycopg2 DBAPI, as this seems to be supported as of psycopg2 2.0.9.
* - Added support to automap for the case where a relationship shouldMike Bayer2014-03-281-0/+9
| | | | | | | not be created between two classes that are in a joined inheritance relationship, for those foreign keys that link the subclass back to the superclass. fixes #3004
* - Fixed a very old behavior where the lazy load emitted for a one-to-manyMike Bayer2014-03-271-0/+19
| | | | | | | | | | | | | | | | | could inappropriately pull in the parent table, and also return results inconsistent based on what's in the parent table, when the primaryjoin includes some kind of discriminator against the parent table, such as ``and_(parent.id == child.parent_id, parent.deleted == False)``. While this primaryjoin doesn't make that much sense for a one-to-many, it is slightly more common when applied to the many-to-one side, and the one-to-many comes as a result of a backref. Loading rows from ``child`` in this case would keep ``parent.deleted == False`` as is within the query, thereby yanking it into the FROM clause and doing a cartesian product. The new behavior will now substitute the value of the local "parent.deleted" for that parameter as is appropriate. Though typically, a real-world app probably wants to use a different primaryjoin for the o2m side in any case. fixes #2948
* - Improved the check for "how to join from A to B" such that whenMike Bayer2014-03-271-0/+11
| | | | | | | | | a table has multiple, composite foreign keys targeting a parent table, the :paramref:`.relationship.foreign_keys` argument will be properly interpreted in order to resolve the ambiguity; previously this condition would raise that there were multiple FK paths when in fact the foreign_keys argument should be establishing which one is expected. fixes #2965
* - Tweaked the settings for mysql-connector-python; in Py2K, theMike Bayer2014-03-271-0/+11
| | | | | | | | | | | "supports unicode statements" flag is now False, so that SQLAlchemy will encode the *SQL string* (note: *not* the parameters) to bytes before sending to the database. This seems to allow all unicode-related tests to pass for mysql-connector, including those that use non-ascii table/column names, as well as some tests for the TEXT type using unicode under cursor.executemany(). - other mysql-connector fixes; latest version seems to do better on function call counts
* - Fixed regression caused by release 0.8.5 / 0.9.3's compatibilityMike Bayer2014-03-251-0/+12
| | | | | | | | | enhancements where index reflection on Postgresql versions specific to only the 8.1, 8.2 series again broke, surrounding the ever problematic int2vector type. While int2vector supports array operations as of 8.1, apparently it only supports CAST to a varchar as of 8.3. fix #3000
* - fix some doctest failures (though some remain, as it's not easy to get doctestMike Bayer2014-03-241-4/+4
| | | | to accept things flexibly), fix #2999
* - Added some new event mechanics for dialect-level events; the initialMike Bayer2014-03-242-0/+12
| | | | | | | implementation allows an event handler to redefine the specific mechanics by which an arbitrary dialect invokes execute() or executemany() on a DBAPI cursor. The new events, at this point semi-public and experimental, are in support of some upcoming transaction-related extensions.
* - Fixed regression from 0.8.3 as a result of :ticket:`2818`Mike Bayer2014-03-221-0/+9
| | | | | | where :meth:`.Query.exists` wouldn't work on a query that only had a :meth:`.Query.select_from` entry but no other entities. re: #2818 fixes #2995
* - An event listener can now be associated with a :class:`.Engine`,Mike Bayer2014-03-221-0/+13
| | | | | | | | | | after one or more :class:`.Connection` objects have been created (such as by an orm :class:`.Session` or via explicit connect) and the listener will pick up events from those connections. Previously, performance concerns pushed the event transfer from :class:`.Engine` to :class:`.Connection` at init-time only, but we've inlined a bunch of conditional checks to make this possible without any additional function calls. fixes #2978
* - Fixed a few errant ``u''`` strings that would prevent tests from passingMike Bayer2014-03-221-0/+7
| | | | in Py3.2. Patch courtesy Arfrever Frehtes Taifersar Arahesis. fixes #2980
* - A major improvement made to the mechanics by which the :class:`.Engine`Mike Bayer2014-03-221-0/+15
| | | | | | | | | | | | recycles the connection pool when a "disconnect" condition is detected; instead of discarding the pool and explicitly closing out connections, the pool is retained and a "generational" timestamp is updated to reflect the current time, thereby causing all existing connections to be recycled when they are next checked out. This greatly simplifies the recycle process, removes the need for "waking up" connect attempts waiting on the old pool and eliminates the race condition that many immediately-discarded "pool" objects could be created during the recycle operation. fixes #2985
* - Added new datatype :class:`.oracle.DATE`, which is a subclass ofMike Bayer2014-03-222-8/+25
| | | | | | | | | | | | :class:`.DateTime`. As Oracle has no "datetime" type per se, it instead has only ``DATE``, it is appropriate here that the ``DATE`` type as present in the Oracle dialect be an instance of :class:`.DateTime`. This issue doesn't change anything as far as the behavior of the type, as data conversion is handled by the DBAPI in any case, however the improved subclass layout will help the use cases of inspecting types for cross-database compatibility. Also removed uppercase ``DATETIME`` from the Oracle dialect as this type isn't functional in that context. fixes #2987
* - Adjusted ``setup.py`` file to support the possible futureMike Bayer2014-03-222-12/+37
| | | | | | | | | | | | | | | | | | removal of the ``setuptools.Feature`` extension from setuptools. If this keyword isn't present, the setup will still succeed with setuptools rather than falling back to distutils. C extension building can be disabled now also by setting the DISABLE_SQLALCHEMY_CEXT environment variable. This variable works whether or not setuptools is even available. fixes #2986 - using platform.python_implementation() in setup.py to detect CPython. I've tested this function on OSX and linux on Python 2.6 through 3.4, including 3.1, 3.2, 3.3. Unfortunately, on OSX + 3.2 only, it seems to segfault. I've tried installing 3.2.5 from the python.org .dmg, building it from source, and also blew away the whole 3.2 directory, something seems to be wrong with the "platform" module on that platform only, and there's also no issue on bugs.python.org; however, I'm going with it anyway. If someone is using 3.2 on OSX they really should be upgrading.
* changelog to fix #2988Mike Bayer2014-03-221-0/+10
|
* Fix tag typo in changelog_09pr/81Tony Narlock2014-03-211-1/+1
|
* - reword the paragraph which talks about web framework integration for sessions:Mike Bayer2014-03-201-10/+7
| | | | | | | | | | | 1. fix the typo in the paragraph, fixes #2998 2. as zope-sqlalchemy only provides transaction integration and not session scoping, dial back the language here as people are probably using scoped_session with pyramid anyway 3. as I'm going to again start recommending people don't cling to flask-sqlalchemy so hard, take out the word "strongly" from the recommendation. 4. as flask is the only framework I can think of that actually has an explicit SQLAlchemy layer that handles setting up scoped_session, take out the word "most", now it's "some web frameworks" (by which it means "only flask...and flask-sqlalchemy is probably not worth using anyway")
* - The :meth:`.ConnectionEvents.after_cursor_execute` event is nowMike Bayer2014-03-191-0/+14
| | | | | | | | | | | | emitted for the "_cursor_execute()" method of :class:`.Connection`; this is the "quick" executor that is used for things like when a sequence is executed ahead of an INSERT statement, as well as for dialect startup checks like unicode returns, charset, etc. the :meth:`.ConnectionEvents.before_cursor_execute` event was already invoked here. The "executemany" flag is now always set to False here, as this event always corresponds to a single execution. Previously the flag could be True if we were acting on behalf of an executemany INSERT statement.
* - Fixed bug in mutable extension as well asMike Bayer2014-03-191-0/+9
| | | | | | :func:`.attributes.flag_modified` where the change event would not be propagated if the attribute had been reassigned to itself. fixes #2997
* Merge branch 'ca/dev/add_is_and_isnot_to_tutorial' of ↵Mike Bayer2014-03-171-0/+6
|\ | | | | | | https://github.com/charlax/sqlalchemy
| * Add is_ and isnot filter to the tutorialpr/80Charles-Axel Dein2014-03-151-0/+6
| | | | | | | | Most linter complain when comparing with None.
* | - Improved an error message which would occur if a query() were madeMike Bayer2014-03-171-0/+10
| | | | | | | | | | | | | | against a non-selectable, such as a :func:`.literal_column`, and then an attempt was made to use :meth:`.Query.join` such that the "left" side would be determined as ``None`` and then fail. This condition is now detected explicitly.
* | typoMike Bayer2014-03-161-1/+1
| |
* | - Added support for the not-quite-yet-documented ``insert=True``Mike Bayer2014-03-161-0/+6
| | | | | | | | flag for :func:`.event.listen` to work with mapper / instance events.
* | - fairly epic rework of the cascade documentationMike Bayer2014-03-154-112/+323
|/
* - Added support for literal rendering of boolean values, e.g.Mike Bayer2014-03-131-0/+6
| | | | | "true" / "false" or "1" / "0". - added Boolean tests to the test suite
* - Added a new feature :func:`.schema.conv`, the purpose of which is toMike Bayer2014-03-122-0/+10
| | | | | | | | mark a constraint name as already having had a naming convention applied. This token will be used by Alembic migrations as of Alembic 0.6.4 in order to render constraints in migration scripts with names marked as already having been subject to a naming convention. re: #2991
* :paramref:`.MetaData.naming_convention` feature will now alsoMike Bayer2014-03-121-0/+8
| | | | | | apply to :class:`.CheckConstraint` objects that are associated directly with a :class:`.Column` instead of just on the :class:`.Table`.