summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | - changelog and docs for pullreq bitbucket:45Mike Bayer2015-03-102-0/+30
| |
* | Merge branch 'postgres-concurrently' of ↵Mike Bayer2015-03-102-2/+19
|\ \ | | | | | | | | | https://bitbucket.org/iurisilvio/sqlalchemy into pr45
| * | Dialect option `postgresql_concurrently` to `Index` construct.Iuri de Silvio2015-02-252-2/+19
| | |
* | | Fix dependencies for running coverage checksGilles Dartiguelongue2015-03-101-1/+3
| | |
* | | - changelog for pr github:154Mike Bayer2015-03-101-0/+8
| | |
* | | Fix slice addressing of _AssociationList with python3Gilles Dartiguelongue2015-03-102-1/+20
| | |
* | | - changelog / doc for sqlite partial indexesMike Bayer2015-03-102-0/+31
| | |
* | | Merge branch 'sqlite-partial-indexes' of ↵Mike Bayer2015-03-102-3/+38
|\ \ \ | | | | | | | | | | | | https://bitbucket.org/groner/sqlalchemy into pr42
| * | | Partial index support with sqlite dialects.Kai Groner2015-01-261-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From https://www.sqlite.org/partialindex.html > Partial indexes have been supported in SQLite since version 3.8.0. Reflection does not expose the predicate of partial indexes. The postgresql dialect does detect such indexes and issue a warning. I looked into matching this level of support, but the sqlite pragma index_info does not expose the predicate. Getting this data would probably require parsing the CREATE INDEX statement from sqlite_master.
| * | | Test for partial index support in sqlite dialects.Kai Groner2015-01-261-1/+22
| | | |
* | | | - updated countsMike Bayer2015-03-091-137/+137
| | | |
* | | | - fix a potential race condition where the per-mapper LRUCache used byMike Bayer2015-03-091-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | - reduce some callcounts related to the lightweight tuple,Mike Bayer2015-03-091-29/+56
| | | | | | | | | | | | | | | | | | | | | | | | basically by caching them. - improve LRUCache so that size management only proceeds in one thread, add a real get() method
* | | | - add a callers optionMike Bayer2015-03-091-1/+7
| | | |
* | | | - pick around gaining modest dings in callcounts here and thereMike Bayer2015-03-097-126/+146
| | | |
* | | | - start locking down querying for cols after observing yesterdaysMike Bayer2015-03-092-196/+361
| | | | | | | | | | | | | | | | | | | | callcount bump due to the slots thing - rewrite profiles using new technique
* | | | - we really don't want to force lib here, but we do needMike Bayer2015-03-093-4/+31
| | | | | | | | | | | | | | | | | | | | 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
* | | | - random performance whacking vs. 0.9, in particular we have to watchMike Bayer2015-03-086-26/+33
| | | | | | | | | | | | | | | | for the slots-based __getattr__ thing getting hit
* | | | - add this for testingMike Bayer2015-03-081-0/+109
| | | |
* | | | - fix some more result_map callsMike Bayer2015-03-083-14/+14
| | | |
* | | | - rename _select_wrapsMike Bayer2015-03-084-16/+96
| | | | | | | | | | | | | | | | | | | | - replace force_result_map with a mini-API for nested result sets, add coverage
* | | | fooMike Bayer2015-03-089-69/+69
| | | |
* | | | - the change for #918 was of course not nearly that simple.Mike Bayer2015-03-076-42/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | - do a full rewrite of callcountsMike Bayer2015-03-071-94/+93
| | | |
* | | | - The SQL compiler now generates the mapping of expected columnspositional_targetingMike Bayer2015-03-077-92/+231
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merged in jocmeh/sqlalchemy (pull request #46) Mike Bayer2015-03-061-2/+2
|\ \ \ \ | | | | | | | | | | minor docstring fix in MappedCollection class
| * | | | minor docstring fix in MappedCollection classJochem Oosterveen2015-03-061-2/+2
|/ / / /
* | | | - changelog and migration notes for new pg8000 features fromMike Bayer2015-03-022-0/+30
| | | | | | | | | | | | | | | | pullreq github:132
* | | | - add a skip for JSONB on pg8000 if we are on 1.10.1 or earlierMike Bayer2015-03-022-0/+9
| | | |
* | | | Merge remote-tracking branch 'origin/pr/132' into pr132Mike Bayer2015-03-022-17/+83
|\ \ \ \
| * | | | Changed pg8000 dialect to cope with native JSONpr/132Tony Locke2015-01-031-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | For versions > 1.10.1 pg8000 returns de-serialized JSON objects rather than a string. SQL parameters are still strings though.
| * | | | Make pg8000 version detection more robustTony Locke2014-12-161-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pg8000 uses Versioneer, which means that development versions have version strings that don't fit into the dotted triple number format. Released versions will always fit the triple format though.
| * | | | pg8000 client_encoding in create_engine()Tony Locke2014-12-162-10/+60
| | | | | | | | | | | | | | | | | | | | | | | | | The pg8000 dialect now supports the setting of the PostgreSQL parameter client_encoding from create_engine().
* | | | | - squash-merge the final row_proc integration branch. this isMike Bayer2015-03-0111-100/+211
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a much more modest outcome than what we started with. The work of create_row_processor() for ColumnProperty objects is essentially done at query setup time combined with some lookups in _instance_processor(). - to allow this change for deferred columns, deferred columns no longer search for themselves in the result. If they've been set up as deferred without any explicit directive to undefer them, then this is what was asked for. if we don't do this, then we're stuck with this performance penalty for all deferred columns which in the vast majority of typical use cases (e.g. loading large, legacy tables or tables with many/large very seldom used values) won't be present in the result and won't be accessed at all.
* | | | Update migration_09.rstpr/159Jason Held2015-02-251-1/+1
| | | | | | | | | | | | typo fix: indivdual -> individual.
* | | | - repair issue in declared_attr.cascading such that within aMike Bayer2015-02-242-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | subclass, the value returned by the descriptor is not available because the superclass is already mapped with the InstrumentedAttribute, until the subclass is mapped. We add a setattr() to set up that attribute so that the __mapper_args__ hook and possibly others have access to the "cascaded" version of the attribute within the call.
* | | | - Fixed bugs in ORM object comparisons where comparison ofMike Bayer2015-02-204-13/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | many-to-one ``!= None`` would fail if the source were an aliased class, or if the query needed to apply special aliasing to the expression due to aliased joins or polymorphic querying; also fixed bug in the case where comparing a many-to-one to an object state would fail if the query needed to apply special aliasing due to aliased joins or polymorphic querying. fixes #3310
* | | | - remove the need for a recursive call hereMike Bayer2015-02-201-5/+12
| | | |
* | | | - Fixed bug where internal assertion would fail in the case whereMike Bayer2015-02-203-2/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | an ``after_rollback()`` handler for a :class:`.Session` incorrectly adds state to that :class:`.Session` within the handler, and the task to warn and remove this state (established by :ticket:`2389`) attempts to proceed. fixes #3309
* | | | - expect_warnings was not expecting and neither was assert_warningsMike Bayer2015-02-193-33/+55
| | | | | | | | | | | | | | | | asserting.
* | | | - repair merge failureMike Bayer2015-02-191-22/+6
| | | |
* | | | - autopep8Mike Bayer2015-02-191-39/+43
| | | |
* | | | - Mapped state internals have been reworked to allow for a 50% reductionMike Bayer2015-02-1812-144/+300
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in callcounts specific to the "expiration" of objects, as in the "auto expire" feature of :meth:`.Session.commit` and for :meth:`.Session.expire_all`, as well as in the "cleanup" step which occurs when object states are garbage collected. fixes #3307
* | | | - add the test_expire_lots test for comparisonMike Bayer2015-02-182-0/+71
| | | |
* | | | - add a new section regarding multiprocessingMike Bayer2015-02-171-0/+60
| | | |
* | | | - additional mysql cast-related test fixesMike Bayer2015-02-092-0/+9
| | | |
* | | | - The MySQL dialect now supports CAST on types that are constructedMike Bayer2015-02-093-4/+23
| | | | | | | | | | | | | | | | as :class:`.TypeDecorator` objects.
* | | | - add a fix to MySQL re: #3074 tests, make sure we check table is presentMike Bayer2015-02-091-1/+2
| | | |
* | | | - test skips for MySQL w new cast warningMike Bayer2015-02-091-0/+16
| | | |
* | | | - A warning is emitted when :func:`.cast` is used with the MySQLMike Bayer2015-02-093-29/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dialect on a type where MySQL does not support CAST; MySQL only supports CAST on a subset of datatypes. SQLAlchemy has for a long time just omitted the CAST for unsupported types in the case of MySQL. While we don't want to change this now, we emit a warning to show that it's taken place. A warning is also emitted when a CAST is used with an older MySQL version (< 4) that doesn't support CAST at all, it's skipped in this case as well. fixes #3237