summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* wording about supported dialects for Query.yield_perpr/17Domen Kožar2013-07-141-6/+6
|
* A performance fix related to the usage of the :func:`.defer` optionMike Bayer2013-07-134-32/+38
| | | | | | | | | | | | | when loading mapped entities. The function overhead of applying a per-object deferred callable to an instance at load time was significantly higher than that of just loading the data from the row (note that ``defer()`` is meant to reduce DB/network overhead, not necessarily function call count); the function call overhead is now less than that of loading data from the column in all cases. There is also a reduction in the number of "lazy callable" objects created per load from N (total deferred values in the result) to 1 (total number of deferred cols). [ticket:2778]
* doc fixMike Bayer2013-07-121-1/+1
|
* The newly added SQLite DATETIME arguments storage_format andMike Bayer2013-07-121-0/+6
| | | | | | | regexp apparently were not fully implemented correctly; while the arguments were accepted, in practice they would have no effect; this has been fixed. Also in 0.8.3. [ticket:2781]
* - use inline=True for the insert..select here so it works on oracleMike Bayer2013-07-122-2/+13
|
* Fixed bug where the expression system relied upon the ``str()``Mike Bayer2013-07-124-5/+35
| | | | | | | | | | | | form of a some expressions when referring to the ``.c`` collection on a ``select()`` construct, but the ``str()`` form isn't available since the element relies on dialect-specific compilation constructs, notably the ``__getitem__()`` operator as used with a Postgresql ``ARRAY`` element. The fix also adds a new exception class :class:`.UnsupportedCompilationError` which is raised in those cases where a compiler is asked to compile something it doesn't know how to. Also in 0.8.3. [ticket:2780]
* don't split the regexps for chop_traceback()Mike Bayer2013-07-121-4/+2
|
* Dialect.initialize() is not called a second time if an :class:`.Engine`Mike Bayer2013-07-113-1/+16
| | | | | | is recreated, due to a disconnect error. This fixes a particular issue in the Oracle 8 dialect, but in general the dialect.initialize() phase should only be once per dialect. Also in 0.8.3. [ticket:2776]
* - we dont actually need this unicode cast, on py3k + linux it seems theMike Bayer2013-07-092-8/+2
| | | | | has_table issues are OK. On OSX forget it. - still some issues with PY3k + pyodbc + decimal values it doesn't expect, not sure
* - create a new system where we can decorate an event methodMike Bayer2013-07-088-44/+309
| | | | | | | | | | | | | | | | with @_legacy_signature, will inspect incoming listener functions to see if they match an older signature, will wrap into a newer sig - add an event listen argument named=True, will send all args as kw args so that event listeners can be written with **kw, any combination of names - add a doc system to events that writes out the various calling styles for a given event, produces deprecation messages automatically. a little concerned that it's a bit verbose but will look at it up on RTD for awhile to get a feel. - change the calling signature for bulk update/delete events - we have the BulkUD object right there, and there's at least six or seven things people might want to see, so just send the whole BulkUD in [ticket:2775]
* remove undoc-members from query docstring [ticket:2774]Mike Bayer2013-07-071-0/+7
|
* - Added new method to the :func:`.insert` constructMike Bayer2013-07-055-3/+92
| | | | | | | | | | :meth:`.Insert.from_select`. Given a list of columns and a selectable, renders ``INSERT INTO (table) (columns) SELECT ..``. While this feature is highlighted as part of 0.9 it is also backported to 0.8.3. [ticket:722] - The :func:`.update`, :func:`.insert`, and :func:`.delete` constructs will now interpret ORM entities as FROM clauses to be operated upon, in the same way that select() already does. Also in 0.8.3.
* Fixed bug whereby attribute history functions would failMike Bayer2013-07-041-2/+2
| | | | | | | when an object we moved from "persistent" to "pending" using the :func:`.make_transient` function, for operations involving collection-based backrefs. [ticket:2773]
* Fixed bug where :class:`.QueuePool` would lose the correctMike Bayer2013-07-041-1/+6
| | | | | | checked out count if an existing pooled connection failed to reconnect after an invalidate or recycle event. Also in 0.8.3. [ticket:2772]
* add a float exclusion to help oursql build 100%Mike Bayer2013-07-022-0/+10
|
* Fixed bug when using multi-table UPDATE where a supplementalMike Bayer2013-07-021-2/+2
| | | | | | | table is a SELECT with its own bound parameters, where the positioning of the bound parameters would be reversed versus the statement itself when using MySQL's special syntax. [ticket:2768]
* Added :class:`.BIGINT` to the list of type names that can beMike Bayer2013-07-021-2/+4
| | | | | reflected by the SQLite dialect; courtesy Russell Stuart. [ticket:2764]
* ORM descriptors such as hybrid properties can now be referencedMike Bayer2013-07-021-10/+12
| | | | | | by name in a string argument used with ``order_by``, ``primaryjoin``, or similar in :func:`.relationship`, in addition to column-bound attributes. [ticket:2761]
* - refactor pool a bit so that intent between ↵Mike Bayer2013-07-025-110/+245
| | | | | | | | | | | | | | ConnectionRecord/ConnectionFairy is clear; make sure that the DBAPI connection passed to the reset-on-return events/dialect hooks is also a "fairy", so that dictionaries like "info" are available. [ticket:2770] - rework the execution_options system so that the dialect is given the job of making any immediate adjustments based on a set event. move the "isolation level" logic to use this new system. Also work things out so that even engine-level execution options can be used for things like isolation level; the dialect attaches a connect-event handler in this case to handle the task. - to support this new system as well as further extensibiltiy of execution options add events engine_connect(), set_connection_execution_options(), set_engine_execution_options()
* Added new flag ``retaining=False`` to the kinterbasdb and fdb dialects.Mike Bayer2013-06-303-46/+83
| | | | | | | This controls the value of the ``retaining`` flag sent to the ``commit()`` and ``rollback()`` methods of the DBAPI connection. Defaults to False. Also in 0.8.2, where it defaults to True. [ticket:2763]
* - replace most explicitly-named test objects called "Mock..." withMike Bayer2013-06-304-1/+19
| | | | | | | | | | | | actual mock objects from the mock library. I'd like to use mock for new tests so we might as well use it in obvious places. - use unittest.mock in py3.3 - changelog - add a note to README.unittests - add tests_require in setup.py - have tests import from sqlalchemy.testing.mock - apply usage of mock to one of the event tests. we can be using this approach all over the place.
* - additional fix for [ticket:2750] where on an update, we make sure theMike Bayer2013-06-301-1/+2
| | | | value is present
* A warning is emitted when trying to flush an object of an inheritedMike Bayer2013-06-302-1/+35
| | | | | mapped class where the polymorphic discriminator has been assigned to a value that is invalid for the class. [ticket:2750]
* The behavior of :func:`.extract` has been simplified on theMike Bayer2013-06-281-22/+0
| | | | | | | | | Postgresql dialect to no longer inject a hardcoded ``::timestamp`` or similar cast into the given expression, as this interfered with types such as timezone-aware datetimes, but also does not appear to be at all necessary with modern versions of psycopg2. Also in 0.8.2. [ticket:2740]
* improve the close handling here so that we don't double-close a connection;Mike Bayer2013-06-281-3/+5
| | | | we log this now so it apparently happens a bunch
* Type lookup when reflecting the Firebird types LONG andMike Bayer2013-06-281-7/+6
| | | | | | | | INT64 has been fixed so that LONG is treated as INTEGER, INT64 treated as BIGINT, unless the type has a "precision" in which case it's treated as NUMERIC. Patch courtesy Russell Stuart. [ticket:2757]
* Fixed bug in HSTORE type where keys/values that containedMike Bayer2013-06-281-3/+3
| | | | | | | backslashed quotes would not be escaped correctly when using the "non native" (i.e. non-psycopg2) means of translating HSTORE data. Patch courtesy Ryan Kelly. [ticket:2766]
* - fix a regression caused by #2587, where query.join() would apply anMike Bayer2013-06-271-1/+1
| | | | | adapter to an aliased-mapped, non-polymorphic selectable that prevented us from referring directly to that selectable.
* Merge branch 'ticket_2746'Mike Bayer2013-06-263-66/+186
|\ | | | | | | | | | | Conflicts: doc/build/changelog/changelog_08.rst doc/build/changelog/changelog_09.rst
| * - rework of correlation, continuing on #2668, #2746Mike Bayer2013-06-263-66/+186
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - add support for correlations to propagate all the way in; because correlations require context now, need to make sure a select enclosure of any level takes effect any number of levels deep. - fix what we said correlate_except() was supposed to do when we first released #2668 - "the FROM clause is left intact if the correlated SELECT is not used in the context of an enclosing SELECT..." - it was not considering the "existing_froms" collection at all, and prohibited additional FROMs from being placed in an any() or has(). - add test for multilevel any() - lots of docs, including glossary entries as we really need to define "WHERE clause", "columns clause" etc. so that we can explain correlation better - based on the insight that a SELECT can correlate anything that ultimately came from an enclosing SELECT that links to this one via WHERE/columns/HAVING/ORDER BY, have the compiler keep track of the FROM lists that correspond in this way, link it to the asfrom flag, so that we send to _get_display_froms() the exact list of candidate FROMs to correlate. no longer need any asfrom logic in the Select() itself - preserve 0.8.1's behavior for correlation when no correlate options are given, not to mention 0.7 and prior's behavior of not propagating implicit correlation more than one level.. this is to reduce surprises/hard-to-debug situations when a user isn't trying to correlate anything.
* | Fix indexes reflection in PostgreSQLpr/13Roman Podolyaka2013-06-262-15/+24
|/ | | | | | Reflection of indexes must preserve the order of columns. Fixes issue 2767.
* docsMike Bayer2013-06-232-9/+20
|
* doc fixesMike Bayer2013-06-231-5/+6
|
* - add a test for pullreq 8Mike Bayer2013-06-231-3/+3
| | | | - simplify
* Merge branch 'master' of https://github.com/asldevi/sqlalchemy into some_branchMike Bayer2013-06-231-1/+2
|\
| * make tests passpr/8Devi2013-06-201-1/+1
| |
| * check if compostite_class is of class typeDevi2013-06-191-1/+2
| | | | | | | | before checking if it is a subclass of `MutableComposite`
* | sort here so that exception messages are testableMike Bayer2013-06-231-1/+1
| |
* | tweak this for now, would need a testMike Bayer2013-06-231-3/+3
| |
* | The resolution of :class:`.ForeignKey` objects to theirMike Bayer2013-06-232-111/+237
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | target :class:`.Column` has been reworked to be as immediate as possible, based on the moment that the target :class:`.Column` is associated with the same :class:`.MetaData` as this :class:`.ForeignKey`, rather than waiting for the first time a join is constructed, or similar. This along with other improvements allows earlier detection of some foreign key configuration issues. Also included here is a rework of the type-propagation system, so that it should be reliable now to set the type as ``None`` on any :class:`.Column` that refers to another via :class:`.ForeignKey` - the type will be copied from the target column as soon as that other column is associated, and now works for composite foreign keys as well. [ticket:1765]
* | Merge pull request #11 from malor/fix_uc_reflectionmike bayer2013-06-233-13/+26
|\ \ | | | | | | Fix unique constraints reflection in SQLite and PostgreSQL
| * | Fix unique constraints reflection in PostgreSQLpr/11Roman Podolyaka2013-06-232-11/+18
| | | | | | | | | | | | Reflection of unique constraints must preserve the order of columns.
| * | Fix unique constraints reflection in SQLiteRoman Podolyaka2013-06-232-1/+6
| | | | | | | | | | | | | | | | | | | | | If SQLite keywords are used as column names, they are quoted. The code parsing the information about table unique constraints should be modified so that it properly removes double-quotes from column names.
| * | Improve _test_get_unique_constraints()Roman Podolyaka2013-06-231-1/+2
| | | | | | | | | | | | | | | | | | Call eq_() in a loop instead of comparing two lists directly. This makes it much easier to find out which element is not equal to the reference value.
* | | Fix unicode literals on Python 3.1 and 3.2pr/10Roman Podolyaka2013-06-231-1/+2
|/ / | | | | | | | | A few tests use u'' unicode literals which are not supported in Python versions 3.1 and 3.2.
* | Provided a new attribute for :class:`.TypeDecorator`Mike Bayer2013-06-222-3/+39
| | | | | | | | | | | | | | | | | | called :attr:`.TypeDecorator.coerce_to_is_types`, to make it easier to control how comparisons using ``==`` or ``!=`` to ``None`` and boolean types goes about producing an ``IS`` expression, or a plain equality expression with a bound parameter. [ticket:2744]
* | versionaddsMike Bayer2013-06-221-6/+33
| |
* | - 0.8 changelogMike Bayer2013-06-221-11/+11
| | | | | | | | - some whitespace
* | Merge pull request #5 from cjw296/pg-rangesmike bayer2013-06-224-2/+246
|\ \ | |/ |/| Support for Postgres range types.
| * Documentation for the new range type support.pr/5Chris Withers2013-06-103-6/+19
| |