Commit Graph

10240 Commits

Author SHA1 Message Date
Mike Bayer 3f23e65dab - remove now-misleading comment that SQLite doesn't support MATCH,
since they've apparently added something for it
2015-03-14 10:17:12 -04:00
Mike Bayer 175e5c97a7 1.0.0b1 rel_1_0_0b1 2015-03-13 16:40:39 -04:00
Mike Bayer f1e777b2ab - add notes for prerelease install 2015-03-13 16:36:43 -04:00
INADA Naoki 69dadc88e0 Add mention about mysqlclient 2015-03-14 05:35:11 +09:00
Mike Bayer 64b7a50cbd - call this 1.0.0b1 2015-03-13 16:23:12 -04:00
Mike Bayer 4077e99f3f - tweaks regarding the use_alter update 2015-03-13 16:22:01 -04:00
Mike Bayer a54b783c49 - ensure as_declarative is part of __all__ here 2015-03-12 16:23:43 -04:00
Mike Bayer 75b4c67a56 - repair forwards-port directives 2015-03-12 16:23:24 -04:00
Mike Bayer dcbedfd61a - fix a get call here, we should figure this out since we dont want
to be using getattr
2015-03-12 13:34:43 -04:00
Mike Bayer 941fe5e060 - add the fact that we can cache the sql naively as well 2015-03-12 12:19:35 -04:00
Mike Bayer e42d8184ac - fix quantize recipe, fixes #3322 2015-03-12 11:50:00 -04:00
Mike Bayer 6b76352f46 - add a rationale section 2015-03-12 11:23:44 -04:00
Mike Bayer f211ad254d - try to document how to get columns from constraints.
unfortunately Sphinx refuses to work correctly for the columns
attribute so we just add a lame message to contains_column().
2015-03-12 10:14:52 -04:00
Mike Bayer e3b46bd624 - Added a new extension suite :mod:sqlalchemy.ext.baked. This
simple but unusual system allows for a dramatic savings in Python
overhead for the construction and processing of orm :class:`.Query`
objects, from query construction up through rendering of a string
SQL statement.
fixes #3054
2015-03-11 20:31:11 -04:00
Mike Bayer b815e94833 - Added a new entry `"entity"` to the dictionaries returned by
:attr:`.Query.column_descriptions`.  This refers to the primary ORM
mapped class or aliased class that is referred to by the expression.
Compared to the existing entry for ``"type"``, it will always be
a mapped entity, even if extracted from a column expression, or
None if the given expression is a pure core expression.
references #3320
2015-03-11 14:46:52 -04:00
Mike Bayer 71b8df2e53 - The Postgresql :class:.postgresql.ENUM type will emit a
DROP TYPE instruction when a plain ``table.drop()`` is called,
assuming the object is not associated directly with a
:class:`.MetaData` object.   In order to accomodate the use case of
an enumerated type shared between multiple tables, the type should
be associated directly with the :class:`.MetaData` object; in this
case the type will only be created at the metadata level, or if
created directly.  The rules for create/drop of
Postgresql enumerated types have been highly reworked in general.
fixes #3319
2015-03-11 11:41:52 -04:00
Mike Bayer 710021d22e - Added a new event suite :class:.QueryEvents. The
:meth:`.QueryEvents.before_compile` event allows the creation
of functions which may place additional modifications to
:class:`.Query` objects before the construction of the SELECT
statement.   It is hoped that this event be made much more
useful via the advent of a new inspection system that will
allow for detailed modifications to be made against
:class:`.Query` objects in an automated fashion.
fixes #3317
2015-03-10 19:56:59 -04:00
Mike Bayer 201ba16fc8 - The subquery wrapping which occurs when joined eager loading
is used with a one-to-many query that also features LIMIT,
OFFSET, or DISTINCT has been disabled in the case of a one-to-one
relationship, that is a one-to-many with
:paramref:`.relationship.uselist` set to False.  This will produce
more efficient queries in these cases.
fixes #3249
2015-03-10 18:23:23 -04:00
Mike Bayer 66fa5b50a5 - Fixed bug where the session attachment error "object is already
attached to session X" would fail to prevent the object from
also being attached to the new session, in the case that execution
continued after the error raise occurred.
fixes #3301
2015-03-10 17:51:35 -04:00
Mike Bayer 95e53d0b60 - Fixed bug where using an `__abstract__` mixin in the middle
of a declarative inheritance hierarchy would prevent attributes
and configuration being correctly propagated from the base class
to the inheriting class.
fixes #3219 fixes #3240
2015-03-10 17:21:46 -04:00
Mike Bayer a4a826021f - keep this as 100 2015-03-10 16:57:48 -04:00
Mike Bayer 39f2df3eba - feature, not enhancement 2015-03-10 16:16:49 -04:00
Mike Bayer ebee0c9df3 - 0.9.9 changelog update 2015-03-10 15:59:34 -04:00
Mike Bayer 50866d2f85 - copyright 2015 2015-03-10 15:24:28 -04:00
Mike Bayer ff846286f2 - repair doclevel 2015-03-10 15:16:02 -04:00
Mike Bayer 5d1206c10a - changelog and docs for pullreq bitbucket:45 2015-03-10 15:05:27 -04:00
Mike Bayer 7ac81f6d0a Merge branch 'postgres-concurrently' of https://bitbucket.org/iurisilvio/sqlalchemy into pr45 2015-03-10 15:00:21 -04:00
Gilles Dartiguelongue 9d617468a6 Fix dependencies for running coverage checks 2015-03-10 14:56:17 -04:00
Mike Bayer 78874d3679 - changelog for pr github:154 2015-03-10 14:54:20 -04:00
Gilles Dartiguelongue 9fee9cb87e Fix slice addressing of _AssociationList with python3 2015-03-10 14:28:50 -04:00
Mike Bayer 6ac0555eaa - changelog / doc for sqlite partial indexes 2015-03-10 14:18:35 -04:00
Mike Bayer ddf35e2f04 Merge branch 'sqlite-partial-indexes' of https://bitbucket.org/groner/sqlalchemy into pr42 2015-03-10 14:12:58 -04:00
Mike Bayer 26d5983489 - updated counts 2015-03-09 16:02:55 -04:00
Mike Bayer b8a39b8636 - fix a potential race condition where the per-mapper LRUCache used by
persistence.py could theoretically hit the limit of the cache
(100 items by default) and at some points fail to have a key that
we check for, due to the cleanup.   This has never been observed
so its likely that so far, the total number of INSERT, UPDATE and
DELETE statement structures in real apps has not exceeded 100
on a per-mapper basis; this could happen for apps that run a
very wide variety of attribute modified combinations into the unit
of work, *and* which have very high concurrency going on.
This change will be a lot more significant when we open up
use of LRUCache + compiled cache with the baked query extension.
2015-03-09 15:24:37 -04:00
Mike Bayer adaa003300 - reduce some callcounts related to the lightweight tuple,
basically by caching them.
- improve LRUCache so that size management only proceeds
in one thread, add a real get() method
2015-03-09 15:24:01 -04:00
Mike Bayer 611d88d234 - add a callers option 2015-03-09 15:19:49 -04:00
Mike Bayer 9afe585f45 - pick around gaining modest dings in callcounts here and there 2015-03-09 14:36:23 -04:00
Mike Bayer fcfa62bd76 - start locking down querying for cols after observing yesterdays
callcount bump due to the slots thing
- rewrite profiles using new technique
2015-03-09 13:07:09 -04:00
Mike Bayer fdd2b42db5 - we really don't want to force lib here, but we do need
it for the plain "pytest" case, so do an append instead of an insert
- add a new tox file to do a full regen of callcounts
2015-03-09 13:05:46 -04:00
Mike Bayer a421106c9d - random performance whacking vs. 0.9, in particular we have to watch
for the slots-based __getattr__ thing getting hit
2015-03-08 15:32:21 -04:00
Mike Bayer a92f6662b4 - add this for testing 2015-03-08 14:43:42 -04:00
Mike Bayer 7c9a0e18be - fix some more result_map calls 2015-03-08 14:16:59 -04:00
Mike Bayer 4ba715f80a - rename _select_wraps
- replace force_result_map with a mini-API for nested result sets, add
coverage
2015-03-08 12:33:38 -04:00
Mike Bayer 9854114f57 foo 2015-03-08 11:34:14 -04:00
Mike Bayer 17b2fd3fba - the change for #918 was of course not nearly that simple.
The "wrapping" employed by the mssql and oracle dialects using the
"iswrapper" argument was not being used intelligently by the compiler,
and the result map was being written incorrectly, using
*more* columns in the result map than were actually returned by
the statement, due to "row number" columns that are inside the
subquery.   The compiler now writes out result map on the
"top level" select in all cases
fully, and for the mssql/oracle wrapping case extracts out
the "proxied" columns in a second step, which only includes
those columns that are proxied outwards to the top level.

This change might have implications for 3rd party dialects that
might be imitating oracle's approach.   They can safely continue
to use the "iswrapper" kw which is now ignored, but they may
need to also add the _select_wraps argument as well.
2015-03-07 23:03:27 -05:00
Mike Bayer d70cf329cf - do a full rewrite of callcounts 2015-03-07 18:04:49 -05:00
Mike Bayer b3d3795de0 - The SQL compiler now generates the mapping of expected columns
such that they are matched to the received result set positionally,
rather than by name.  Originally, this was seen as a way to handle
cases where we had columns returned with difficult-to-predict names,
though in modern use that issue has been overcome by anonymous
labeling.   In this version, the approach basically reduces function
call count per-result by a few dozen calls, or more for larger
sets of result columns.  The approach still degrades into a modern
version of the old approach if textual elements modify the result
map, or if any discrepancy in size exists between
the compiled set of columns versus what was received, so there's no
issue for partially or fully textual compilation scenarios where these
lists might not line up.  fixes #918
- callcounts still need to be adjusted down for this so zoomark
tests won't pass at the moment
2015-03-07 17:18:31 -05:00
Sebastian Bank e0d7f52439 unit-test deterministic topological sort 2015-03-07 19:36:41 +01:00
Sebastian Bank b3f9698c63 make sort_tables order deterministic 2015-03-07 14:04:14 +01:00
Sebastian Bank 81d2b2f44f Merged zzzeek/sqlalchemy into master 2015-03-07 11:18:07 +01:00