summaryrefslogtreecommitdiff
path: root/test/aaa_profiling
Commit message (Collapse)AuthorAgeFilesLines
* - Removal of event listeners is now implemented. The feature isMike Bayer2013-07-261-0/+1
| | | | | | | | | | | | | | | | provided via the :func:`.event.remove` function. [ticket:2268] - reorganization of event.py module into a package; with the addition of the docstring work as well as the new registry for removal, there's a lot more code now. the package separates concerns and provides a top-level doc for each subsection of functionality - the remove feature works by providing the EventKey object which associates the user-provided arguments to listen() with a global, weak-referencing registry. This registry stores a collection of _ListenerCollection and _DispatchDescriptor objects associated with each set of arguments, as well as the wrapped function which was applied to that collection. The EventKey can then be recreated for a removal, all the _ListenerCollection and _DispatchDescriptor objects are located, and the correct wrapped function is removed from each one.
* A performance fix related to the usage of the :func:`.defer` optionMike Bayer2013-07-131-1/+53
| | | | | | | | | | | | | 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]
* - replace most explicitly-named test objects called "Mock..." withMike Bayer2013-06-301-2/+3
| | | | | | | | | | | | 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.
* - zoomark testsMike Bayer2013-05-262-0/+4
| | | | - rewrite all profiles, we'll review the diffs to see if anything is too far out
* a pass where we try to squash down as many list()/keys() combinationsMike Bayer2013-05-261-2/+3
| | | | as possible
* - the raw 2to3 runMike Bayer2013-04-276-108/+108
| | | | - went through examples/ and cleaned out excess list() calls
* testing.crashes on cymysql >= 0.6Hajime Nakagami2013-04-201-1/+1
|
* skip with cymysql 0.6Hajime Nakagami2013-04-201-0/+1
|
* A major fix to the way in which a select() object producesMike Bayer2013-04-111-0/+12
| | | | | | | | | | | | | | | | | | | labeled columns when apply_labels() is used; this mode produces a SELECT where each column is labeled as in <tablename>_<columnname>, to remove column name collisions for a multiple table select. The fix is that if two labels collide when combined with the table name, i.e. "foo.bar_id" and "foo_bar.id", anonymous aliasing will be applied to one of the dupes. This allows the ORM to handle both columns independently; previously, 0.7 would in some cases silently emit a second SELECT for the column that was "duped", and in 0.8 an ambiguous column error would be emitted. The "keys" applied to the .c. collection of the select() will also be deduped, so that the "column being replaced" warning will no longer emit for any select() that specifies use_labels, though the dupe key will be given an anonymous label which isn't generally user-friendly. [ticket:2702]
* - remove all compat items that are pre-2.5 (hooray)Mike Bayer2013-03-091-1/+1
| | | | | | - other cleanup - don't need compat.decimal, that approach never panned out. hopefully outside libs aren't pulling it in, they shouldn't be
* - add workaround for sqlite memusage tests, so no longer need to count to ↵Mike Bayer2013-01-121-11/+26
| | | | | | | | | | | | | 220/skip tests - Fixed potential memory leak which could occur if an arbitrary number of :class:`.sessionmaker` objects were created. The anonymous subclass created by the sessionmaker, when dereferenced, would not be garbage collected due to remaining class-level references from the event package. This issue also applies to any custom system that made use of ad-hoc subclasses in conjunction with an event dispatcher. Also in 0.7.10. [ticket:2650]
* - refactor of pathing mechanics, to address #2614, #2617Mike Bayer2012-12-011-2/+4
| | | | | | | | | | | | | | | | | | | - paths now store Mapper + MapperProperty now instead of string key, so that the parent mapper for the property is known, supports same-named properties on multiple subclasses - the Mapper within the path is now always relevant to the property to the right of it. PathRegistry does the translation now, instead of having all the outside users of PathRegistry worry about it, to produce a path that is much more consistent. Paths are now consistent with mappings in all cases. Special logic to get at "with_polymorphic" structures and such added also. - AliasedClass now has two modes, "use_mapper_path" and regular; "use_mapper_path" is for all those situations where we put an AliasedClass in for a plain class internally, and want it to "path" with the plain mapper. - The AliasedInsp is now the first class "entity" for an AliasedClass, and is passed around internally and used as attr._parententity and such. it is the AliasedClass analogue for Mapper.
* need to disable hstore for the "player" here. should really get rid of the ↵Mike Bayer2012-11-182-3/+6
| | | | | | recorder/player thing at this point
* - import fixesMike Bayer2012-09-292-2/+4
|
* getting everything to pass againMike Bayer2012-09-271-1/+2
|
* trying different approaches to test layout. in this one, the testing modulesMike Bayer2012-09-277-15/+17
| | | | | | | become an externally usable package but still remains within the main sqlalchemy parent package. in this system, we use kind of an ugly hack to get the noseplugin imported outside of the "sqlalchemy" package, while still making it available within sqlalchemy for usage by third party libraries.
* - [feature] To complement [ticket:2547], typesMike Bayer2012-08-171-6/+16
| | | | | | | | | | | | | | | | can now provide "bind expressions" and "column expressions" which allow compile-time injection of SQL expressions into statements on a per-column or per-bind level. This is to suit the use case of a type which needs to augment bind- and result- behavior at the SQL level, as opposed to in the Python level. Allows for schemes like transparent encryption/ decryption, usage of Postgis functions, etc. [ticket:1534] - update postgis example fully. - still need to repair the result map propagation here to be transparent for cases like "labeled column".
* - this is a refcount testMike Bayer2012-08-111-0/+2
|
* OK! let's turn this around completely. Forget making a single count acrossMike Bayer2012-08-115-52/+38
| | | | | | all platforms. let's instead store callcounts for *all* observed platforms in a datafile. Will try to get enough platforms in the file for jenkins to have meaningful results. for platforms not in the file, it's just skiptest.
* adjustmentsMike Bayer2012-08-115-8/+8
|
* final cleanupMike Bayer2012-08-103-6/+6
|
* adjustMike Bayer2012-08-091-1/+1
|
* - make sure event mechanics have completed before running this test, lower ↵Mike Bayer2012-08-091-6/+10
| | | | callcount
* adjustmentMike Bayer2012-08-091-1/+1
|
* more adjustmentsMike Bayer2012-08-093-8/+7
|
* - a new approach to profiling where we attempt to strip outMike Bayer2012-08-096-102/+48
| | | | | | parts of the pstats that are idiosyncratic to different platforms. the goal is no per-version assertions on tests, version differences in theory would go into the list of profiling exceptions.
* - fixesMike Bayer2012-08-071-1/+1
|
* -whitespace bonanza, contdMike Bayer2012-07-282-6/+6
|
* trailing whitespace bonanzaMike Bayer2012-07-281-4/+4
|
* - some more interpret_as_fromsMike Bayer2012-07-231-8/+8
|
* callcounts due to more engine event logicMike Bayer2012-07-191-4/+2
|
* try to get these to pass on jenkinsMike Bayer2012-07-171-2/+2
|
* relax this variance for nowMike Bayer2012-07-171-2/+2
|
* some test fixes and cleanupMike Bayer2012-07-161-17/+17
|
* move mapper-level UOW functionality straight into unitofwork also. there'sMike Bayer2012-07-141-2/+2
| | | | | | no need for this to be per-mapper. can't move dependency init off of property though as this init needs to happen up front, added a test to prove it.
* turn commit_all into an iterative methodMike Bayer2012-06-251-1/+1
|
* - somehting is making this test have an inconsistent callcountMike Bayer2012-06-241-1/+1
|
* callcounts, due to the DummyLock cleanupMike Bayer2012-06-231-3/+3
|
* a likely callcountMike Bayer2012-06-211-1/+6
|
* callcountMike Bayer2012-06-201-2/+1
|
* - [feature] The of_type() construct on attributesMike Bayer2012-06-201-46/+112
| | | | | | | | | | | | | | | | | | | | | | | | now accepts aliased() class constructs as well as with_polymorphic constructs, and works with query.join(), any(), has(), and also eager loaders subqueryload(), joinedload(), contains_eager() [ticket:2438] [ticket:1106] - a rewrite of the query path system to use an object based approach for more succinct usage. the system has been designed carefully to not add an excessive method overhead. - [feature] select() features a correlate_except() method, auto correlates all selectables except those passed. Is needed here for the updated any()/has() functionality. - remove some old cruft from LoaderStrategy, init(),debug_callable() - use a namedtuple for _extended_entity_info. This method should become standard within the orm internals - some tweaks to the memory profile tests, number of runs can be customized to work around pysqlite's very annoying behavior - try to simplify PropertyOption._get_paths(), rename to _process_paths(), returns a single list now. overall works more completely as was needed for of_type() functionality
* obnoxious callcountsMike Bayer2012-06-161-1/+1
|
* callcount fixMike Bayer2012-06-131-1/+2
|
* weird, seems like hasattr() doesn't count as a function call in the same way ↵Mike Bayer2012-06-121-1/+1
| | | | as isinstance()...
* - [bug] Fixed bug affecting Py3K wherebyMike Bayer2012-06-111-2/+1
| | | | | | | | string positional parameters passed to engine/connection execute() would fail to be interpreted correctly, due to __iter__ being present on Py3K string. [ticket:2503]. Also in 0.7.8.
* callcountMike Bayer2012-06-111-1/+1
|
* make sure integer is here. only the C ext doesn't try to call ↵Mike Bayer2012-06-111-0/+1
| | | | | | "key_fallback" for integer here, pure python one does.
* callcount adjustMike Bayer2012-06-081-1/+1
|
* - [bug] Fixed memory leak in C version ofMike Bayer2012-06-011-0/+57
| | | | | | | | result proxy whereby DBAPIs which don't deliver pure Python tuples for result rows would fail to decrement refcounts correctly. The most prominently affected DBAPI is pyodbc. [ticket:2489]
* callcount bump to work around sqlite's silly column name workaroundMike Bayer2012-05-041-4/+4
|