summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Adjusted fix for skipping tests unsupported by pypy in 0.8.xpr/22Ian Delaney2013-08-194-12/+10
|
* Skip tests not supporting pypy in 0.8, fixes trac/ticket/2805#ticketIan Delaney2013-08-194-2/+11
|
* - spot checking of imports, obsolete functionsMike Bayer2013-08-1710-37/+15
|
* Improved support for the cymysql driver, supporting version 0.6.5,Mike Bayer2013-08-176-5/+13
| | | | courtesy Hajime Nakagami.
* 0.8 changelogMike Bayer2013-08-171-0/+7
|
* - changelogMike Bayer2013-08-172-26/+33
| | | | - clean up these tests to not use globals so much, close out the session
* Merged in prschmid/sqlalchemy (pull request #4) Mike Bayer2013-08-171-3/+3
|\ | | | | Made primary_key autoincrement=False in versioning example.
| * Made primary_key autoincrement=False in versioning example.Patrick R. Schmid2013-07-311-3/+3
| |
* | Merged in bacher09/sqlalchemy (pull request #5) Mike Bayer2013-08-171-1/+1
|\ \ | | | | | | Fix typo in comparator_factory example
| * | Fix typo in comparator_factory exampleSlava Bacherikov2013-08-091-1/+1
| | |
* | | merge error here, though also hedge between explaining about the expressions ↵Mike Bayer2013-08-161-7/+0
| | | | | | | | | | | | | | | | | | here vs. hoping they read the class-level docstring
* | | - apply an import refactoring to the ORM as wellMike Bayer2013-08-1446-3449/+3481
| | | | | | | | | | | | | | | | | | | | | | | | | | | - rework the event system so that event modules load after their targets, dependencies are reversed - create an improved strategy lookup system for the ORM - rework the ORM to have very few import cycles - move out "importlater" to just util.dependency - other tricks to cross-populate modules in as clear a way as possible
* | | fix missing savepoint structuresMike Bayer2013-08-121-0/+3
| | |
* | | - header commentsMike Bayer2013-08-126-5/+17
| | |
* | | - A large refactoring of the ``sqlalchemy.sql`` package has reorganizedMike Bayer2013-08-1244-13551/+13866
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the import structure of many core modules. ``sqlalchemy.schema`` and ``sqlalchemy.types`` remain in the top-level package, but are now just lists of names that pull from within ``sqlalchemy.sql``. Their implementations are now broken out among ``sqlalchemy.sql.type_api``, ``sqlalchemy.sql.sqltypes``, ``sqlalchemy.sql.schema`` and ``sqlalchemy.sql.ddl``, the last of which was moved from ``sqlalchemy.engine``. ``sqlalchemy.sql.expression`` is also a namespace now which pulls implementations mostly from ``sqlalchemy.sql.elements``, ``sqlalchemy.sql.selectable``, and ``sqlalchemy.sql.dml``. Most of the "factory" functions used to create SQL expression objects have been moved to classmethods or constructors, which are exposed in ``sqlalchemy.sql.expression`` using a programmatic system. Care has been taken such that all the original import namespaces remain intact and there should be no impact on any existing applications. The rationale here was to break out these very large modules into smaller ones, provide more manageable lists of function names, to greatly reduce "import cycles" and clarify the up-front importing of names, and to remove the need for redundant functions and documentation throughout the expression package.
* | | add some more detail about concurrencyMike Bayer2013-08-121-6/+23
| | |
* | | - more "when do i create the session" docs, get specificMike Bayer2013-08-122-184/+397
| | | | | | | | | | | | | | | - more glossary terms - turn the session FAQ into rst sections at last
* | | add more docs to index, even though this seems to be a little redundantMike Bayer2013-08-111-10/+29
|/ /
* | Merge pull request #21 from svrin/patch-1mike bayer2013-08-081-1/+1
|\ \ | | | | | | Typo in engines.rst
| * | Typopr/21Severin Orth2013-08-081-1/+1
|/ /
* | - The :meth:`.Operators.notin_` operator added in 0.8 now properlyMike Bayer2013-08-074-1/+29
| | | | | | | | | | produces the negation of the expression "IN" returns when used against an empty collection. Also in 0.8.3.
* | ok forget it, that approach didn't really cover every base, soMike Bayer2013-08-043-16/+34
| | | | | | | | we are pretty much back to the beginning, nothing to see here
* | find some more inline imports and move them outMike Bayer2013-08-046-10/+8
| |
* | - add predictable_gc to a few more tests showing up on pypyMike Bayer2013-08-042-6/+8
| |
* | - don't need resolve, don't need import for this. just look in sys.modules,Mike Bayer2013-08-044-47/+17
| | | | | | | | since we are dealing with cycles in any case.
* | tweaksMike Bayer2013-08-021-6/+3
| |
* | - after discussions with the original project folks working with zope securityMike Bayer2013-08-022-68/+57
| | | | | | | | | | | | | | | | | | | | | | proxies, they aren't overriding getattr() or setattr() at all. so all the hardcoded getattr()/setattr() is removed from collections.py. Lots of these getattr/setattr were against the attributeimpl and decorated functions and don't seem like they'd ever be needed; for a user that needs special access to a collection, we can evaulate that use case and add a single point of "unwrapping", and probably add a hook for it via InstrumentationManager so that the collection implementation isn't complicated by it.
* | rework the test here to suit 0.8/0.9 mostly, include time testsMike Bayer2013-08-021-94/+86
| |
* | a missing cursor.close() here caused a *huge* amount of weird locking ↵Mike Bayer2013-08-021-7/+10
| | | | | | | | | | | | | | | | issues with pypy, what is strange is how it only occurred in some very specific places under very particular conditions, perhaps it has to do with whether or not this cursor gets gc'ed or not.
* | - add a clear() to SetIsh here so that the control/direct gets clearedMike Bayer2013-08-021-10/+16
| | | | | | | | | | before we do the pop() test. - make clear()/pop() test unconditional
* | Added a new attribute :attr:`.Session.info` to :class:`.Session`;Mike Bayer2013-08-023-2/+69
| | | | | | | | | | | | | | | | this is a dictionary where applications can store arbitrary data local to a :class:`.Session`. The contents of :attr:`.Session.info` can be also be initialized using the ``info`` argument of :class:`.Session` or :class:`.sessionmaker`.
* | - assorted fixes raised by pypy 2.1beta2, but all of which are goodMike Bayer2013-08-016-12/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ideas in general: - pypy2.1 w/ sqlite3 is the first DBAPI we're seeing returning unicode in cursor.description without being py3k. add a new on-connect check for this, if we get back a u"", just don't do description decoding, should be OK for now. - the set tests in test_collection were assuming the two sets would be ordered the same when it tested pop(), can't really assume that. - test_serializer gets worse and worse, pickle is just not really viable here, ding out pypy - pypy2.1b2 seems to allow cursor.lastrowid to work (or we changed something?) - pool._threadconns.current() is a weakref, it can be None - another one of those logging.handlers imports
* | Updates to MySQL reserved words for versions 5.5, 5.6, courtesyMike Bayer2013-07-314-0/+31
| | | | | | | | | | Hanno Schlichting. Also in 0.8.3, 0.7.11. [ticket:2791]
* | fix missing commaMike Bayer2013-07-311-1/+1
| |
* | - update ORM event docs to include that you can listen on an unmapped base,Mike Bayer2013-07-311-29/+32
| | | | | | | | [ticket:2777]
* | fix changelogMike Bayer2013-07-311-1/+1
| |
* | - Fixed bug in common table expression system where if the CTE wereMike Bayer2013-07-316-12/+71
|/ | | | | | used only as an ``alias()`` construct, it would not render using the WITH keyword. Also in 0.8.3, 0.7.11. [ticket:2783]
* modernize this a bitMike Bayer2013-07-271-19/+10
|
* - this collection can be None on cleanup, so check for thatMike Bayer2013-07-271-1/+1
|
* last updatedMike Bayer2013-07-271-1/+1
|
* try seeing if just clearing this ahead of time helpsMike Bayer2013-07-271-0/+1
|
* - fix issue in join rewriting whereby we need to ensure the .key and .nameMike Bayer2013-07-272-5/+86
| | | | | | are transferred correctly for when .key is present; tests have been enhanced to test this condition for render, result map construction, statement execution. [ticket:2790]
* - The C extensions are ported to Python 3 and will build underMike Bayer2013-07-267-55/+394
| | | | any supported CPython 2 or 3 environment. [ticket:2161]
* - add event.contains() function to the event package, returns TrueMike Bayer2013-07-265-18/+25
| | | | | if the given target/event/fn is set up to listen. - repair mutable package which is doing some conditional event listening
* - Removal of event listeners is now implemented. The feature isMike Bayer2013-07-2616-825/+1392
| | | | | | | | | | | | | | | | 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.
* - The mechanism by which attribute events pass along anMike Bayer2013-07-268-65/+231
| | | | | | | | | | | | | | | | | | | :class:`.AttributeImpl` as an "initiator" token has been changed; the object is now an event-specific object called :class:`.attributes.Event`. Additionally, the attribute system no longer halts events based on a matching "initiator" token; this logic has been moved to be specific to ORM backref event handlers, which are the typical source of the re-propagation of an attribute event onto subsequent append/set/remove operations. End user code which emulates the behavior of backrefs must now ensure that recursive event propagation schemes are halted, if the scheme does not use the backref handlers. Using this new system, backref handlers can now peform a "two-hop" operation when an object is appended to a collection, associated with a new many-to-one, de-associated with the previous many-to-one, and then removed from a previous collection. Before this change, the last step of removal from the previous collection would not occur. [ticket:2789]
* tpoMike Bayer2013-07-201-9/+9
|
* - Improved the examples in ``examples/generic_associations``, includingMike Bayer2013-07-1910-49/+276
| | | | | | | | | | | | | | | that ``discriminator_on_association.py`` makes use of single table inheritance do the work with the "discriminator". Also added a true "generic foreign key" example, which works similarly to other popular frameworks in that it uses an open-ended integer to point to any other table, foregoing traditional referential integrity. While we don't recommend this pattern, information wants to be free. Also in 0.8.3. - Added a convenience class decorator :func:`.as_declarative`, is a wrapper for :func:`.declarative_base` which allows an existing base class to be applied using a nifty class-decorated approach. Also in 0.8.3.
* Merge pull request #18 from davidjb/patch-1mike bayer2013-07-191-2/+2
|\ | | | | Minor hybrid extension documentation update
| * Minor hybrid extension documentation updatepr/18David Beitey2013-07-191-2/+2
|/