summaryrefslogtreecommitdiff
path: root/CHANGES
Commit message (Collapse)AuthorAgeFilesLines
* - move all CHANGES files into the sphinx docs. this is rudimental nowMike Bayer2012-10-201-6693/+6
| | | | | | but puts the changelog in a more data driven format, so that we can begin linking version directives with them as well as with migration documents, once those are also moved into sphinx.
* - rework the sphinx customizations into distinct modulesMike Bayer2012-10-191-2/+3
| | | | | | | - build a new Sphinx extension that allows dialect info to be entered as directives which is then rendered consistently throughout all dialect/dbapi sections - break out the "empty_strings" requirement for oracle test
* - move out maxdbMike Bayer2012-10-181-0/+8
| | | | | | - begin consolidating docs for dialects to be more self contained - add a separate section for "external" dialects - not sure how we're going to go with this yet.
* - [bug] TypeDecorator now includes a generic repr()Mike Bayer2012-10-181-0/+8
| | | | | | | | | that works in terms of the "impl" type by default. This is a behavioral change for those TypeDecorator classes that specify a custom __init__ method; those types will need to re-define __repr__() if they need __repr__() to provide a faithful constructor representation. [ticket:2594]
* - [feature] The Query can now load entity/scalar-mixedMike Bayer2012-10-151-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | "tuple" rows that contain types which aren't hashable, by setting the flag "hashable=False" on the corresponding TypeEngine object in use. Custom types that return unhashable types (typically lists) can set this flag to False. [ticket:2592] - [bug] Applying a column expression to a select statement using a label with or without other modifying constructs will no longer "target" that expression to the underlying Column; this affects ORM operations that rely upon Column targeting in order to retrieve results. That is, a query like query(User.id, User.id.label('foo')) will now track the value of each "User.id" expression separately instead of munging them together. It is not expected that any users will be impacted by this; however, a usage that uses select() in conjunction with query.from_statement() and attempts to load fully composed ORM entities may not function as expected if the select() named Column objects with arbitrary .label() names, as these will no longer target to the Column objects mapped by that entity. [ticket:2591]
* - allow a __clause_element__() to be passed to query.filter() alsoMike Bayer2012-10-151-1/+2
|
* - [feature] "scalar" selects now have a WHERE methodMike Bayer2012-10-151-0/+20
| | | | | | | | | | | | | | | | | | | | to help with generative building. Also slight adjustment regarding how SS "correlates" columns; the new methodology no longer applies meaning to the underlying Table column being selected. This improves some fairly esoteric situations, and the logic that was there didn't seem to have any purpose. - [feature] Some support for auto-rendering of a relationship join condition based on the mapped attribute, with usage of core SQL constructs. E.g. select([SomeClass]).where(SomeClass.somerelationship) would render SELECT from "someclass" and use the primaryjoin of "somerelationship" as the WHERE clause. This changes the previous meaning of "SomeClass.somerelationship" when used in a core SQL context; previously, it would "resolve" to the parent selectable, which wasn't generally useful. Related to [ticket:2245].
* - [feature] Improvements to event listening forMike Bayer2012-10-121-0/+18
| | | | | | | | | | | | | | | | | | | mapped classes allows that unmapped classes can be specified for instance- and mapper-events. The established events will be automatically set up on subclasses of that class when the propagate=True flag is passed, and the events will be set up for that class itself if and when it is ultimately mapped. [ticket:2585] - [bug] The instrumentation events class_instrument(), class_uninstrument(), and attribute_instrument() will now fire off only for descendant classes of the class assigned to listen(). Previously, an event listener would be assigned to listen for all classes in all cases regardless of the "target" argument passed. [ticket:2590]
* - [feature] Added "collation" parameter to allMike Bayer2012-10-101-0/+10
| | | | | | | | | | | String types. When present, renders as COLLATE <collation>. This to support the COLLATE keyword now supported by several databases including MySQL, SQLite, and Postgresql. [ticket:2276] - [change] The Text() type renders the length given to it, if a length was specified.
* - [feature] Added TIME type to mysql dialect,Mike Bayer2012-10-101-0/+9
| | | | | | | | | | | | accepts "fst" argument which is the new "fractional seconds" specifier for recent MySQL versions. The datatype will interpret a microseconds portion received from the driver, however note that at this time most/all MySQL DBAPIs do not support returning this value. [ticket:2534] - attempted to modernize the types tests in test_mysql a little, though has a long way to go
* - changelog update, added 0.7's version of [ticket:2561] and alsoMike Bayer2012-10-101-2/+12
| | | | r74618cabb1cb referred to the wrong ticket.
* - [feature] Added "read_timeout" flag to MySQLdbMike Bayer2012-10-101-0/+3
| | | | dialect. [ticket:2554]
* - [feature] Added "raise_on_warnings" flag to OurSQLMike Bayer2012-10-101-0/+4
| | | | dialect. [ticket:2523]
* - [feature] Various API tweaks to the "dialect"Mike Bayer2012-10-081-0/+6
| | | | | | | API to better support highly specialized systems such as the Akiban database, including more hooks to allow an execution context to access type processors.
* - [bug] Continuing [ticket:2566] regarding extraMike Bayer2012-10-061-0/+15
| | | | | | | | | | | | | | | | state post-flush due to event listeners; any states that are marked as "dirty" from an attribute perspective, usually via column-attribute set events within after_insert(), after_update(), etc., will get the "history" flag reset in all cases, instead of only those instances that were part of the flush. This has the effect that this "dirty" state doesn't carry over after the flush and won't result in UPDATE statements. A warning is emitted to this effect; the set_committed_state() method can be used to assign attributes on objects without producing history events. [ticket:2582]
* - [feature] The Session will produce warningsMike Bayer2012-10-041-0/+18
| | | | | | | | | | | | | | | | | | | when unsupported methods are used inside the "execute" portion of the flush. These are the familiar methods add(), delete(), etc. as well as collection and related-object manipulations, as called within mapper-level flush events like after_insert(), after_update(), etc. It's been prominently documented for a long time that SQLAlchemy cannot guarantee results when the Session is manipulated within the execution of the flush plan, however users are still doing it, so now there's a warning. Maybe someday the Session will be enhanced to support these operations inside of the flush, but for now, results can't be guaranteed.
* - [bug] Fixed Session accounting bug whereby replacingMike Bayer2012-10-031-0/+12
| | | | | | | | | | a deleted object in the identity map with another object of the same primary key would raise a "conflicting state" error on rollback(), if the replaced primary key were established either via non-unitofwork-established INSERT statement or by primary key switch of another instance. [ticket:2583]
* - fix the fixture here that wasn't creating consistentlyMike Bayer2012-10-011-0/+5
| | | | | | | - rewrite --dropfirst to be more industrial strength, includes views - fix order_by="foreign_key" to maintain the same ordering as metadata.sorted_tables. Not ideal that this was the other way throughout 0.7 but this is still a little-used method, in contrast to metadata.sorted_tables.
* - [feature] the MS Access dialect has beenMike Bayer2012-09-301-0/+10
| | | | | | | | | | moved to its own project on Bitbucket, taking advantage of the new SQLAlchemy dialect compliance suite. The dialect is still in very rough shape and probably not ready for general use yet, however it does have *extremely* rudimental functionality now.
* mssql: - [bug] Fixed bug where reflection of primary key constraintMike Bayer2012-09-301-0/+4
| | | | | | | would double up columns if the same constraint/table existed in multiple schemas. - force returns_rows to False for inserts where we know rows shouldnt be returned; allows post_exec() to use the cursor without issue
* - [bug] Fixed bug in over() construct wherebyMike Bayer2012-09-301-0/+7
| | | | | | | | passing an empty list for either partition_by or order_by, as opposed to None, would fail to generate correctly. Courtesy Gunnlaugur Por Briem. [ticket:2574]
* - [bug] Fixed compiler bug whereby using a correlatedMike Bayer2012-09-301-0/+6
| | | | | | | subquery within an ORDER BY would fail to render correctly if the stament also used LIMIT/OFFSET, due to mis-rendering within the ROW_NUMBER() OVER clause. Fix courtesy sayap [ticket:2538]
* - [bug] The CreateIndex construct in OracleMike Bayer2012-09-301-0/+7
| | | | | | | | will now schema-qualify the name of the index to be that of the parent table. Previously this name was omitted which apparently creates the index in the default schema, rather than that of the table.
* - more tests, move some tests out of test_reflection, test_queryMike Bayer2012-09-271-0/+15
|
* - [feature] Added support for the localtimestamp()Mike Bayer2012-09-261-0/+4
| | | | | SQL function implemented in SQLite, courtesy Richard Mitchell. Added test
* - [bug] Added 'terminating connection' to the listMike Bayer2012-09-251-0/+5
| | | | | | of messages we use to detect a disconnect with PG, which appears to be present in some versions when the server is restarted. [ticket:2570]
* - [bug] Fixed the DropIndex construct to supportMike Bayer2012-09-241-0/+4
| | | | | an Index associated with a Table in a remote schema. [ticket:2571]
* - [feature] An experimental dialect for the fdbMike Bayer2012-09-231-0/+4
| | | | | driver is added, but is untested as I cannot get the fdb package to build. [ticket:2504]
* - got firebird runningMike Bayer2012-09-231-0/+9
| | | | | | | | | | | | - add some failure cases - [bug] Firebird now uses strict "ansi bind rules" so that bound parameters don't render in the columns clause of a statement - they render literally instead. - [bug] Support for passing datetime as date when using the DateTime type with Firebird; other dialects support this.
* - [bug] Columns in reflected primary key constraintMike Bayer2012-09-231-0/+7
| | | | | | | are now returned in the order in which the constraint itself defines them, rather than how the table orders them. Courtesy Gunnlaugur Por Briem. [ticket:2531].
* - [bug] When the primary key column of a TableMike Bayer2012-09-231-0/+6
| | | | | | | | is replaced, such as via extend_existing, the "auto increment" column used by insert() constructs is reset. Previously it would remain referring to the previous primary key column. [ticket:2525]
* - [feature] An explicit error is raised whenMike Bayer2012-09-231-0/+5
| | | | | | a ForeignKeyConstraint() that was constructed to refer to multiple remote tables is first used. [ticket:2455]
* - [bug] Adjusted column default reflection code toMike Bayer2012-09-231-0/+5
| | | | | | | | convert non-string values to string, to accommodate old SQLite versions that don't deliver default info as a string. [ticket:2265] - factor sqlite column reflection to be like we did for postgresql, in a separate method.
* move this to 0.8Mike Bayer2012-09-221-5/+6
|
* - [bug] A tweak to column precedence which moves theMike Bayer2012-09-221-0/+6
| | | | | | | "concat" and "match" operators to be the same as that of "is", "like", and others; this helps with parenthesization rendering when used in conjunction with "IS". [ticket:2564]
* - [bug] Added missing operators is_(), isnot()Mike Bayer2012-09-221-0/+5
| | | | | | to the ColumnOperators base, so that these long-available operators are present as methods like all the other operators. [ticket:2544]
* - [bug] Extra logic has been added to the "flush"Mike Bayer2012-09-221-2/+13
| | | | | | | | | | | | that occurs within Session.commit(), such that the extra state added by an after_flush() or after_flush_postexec() hook is also flushed in a subsequent flush, before the "commit" completes. Subsequent calls to flush() will continue until the after_flush hooks stop adding new state. An "overflow" counter of 100 is also in place, in the event of a broken after_flush() hook adding new content each time. [ticket:2566]
* finished fixes for mxodbc; need to use at least version 3.2.1Mike Bayer2012-09-211-0/+4
|
* - [feature] New session events after_transaction_createMike Bayer2012-09-201-0/+7
| | | | | | | | and after_transaction_end allows tracking of new SessionTransaction objects. If the object is inspected, can be used to determine when a session first becomes active and when it deactivates.
* - [bug] Adjusted a very old bugfix which attemptedMike Bayer2012-09-191-0/+14
| | | | | | | | | | | | | | to work around a SQLite issue that itself was "fixed" as of sqlite 3.6.14, regarding quotes surrounding a table name when using the "foreign_key_list" pragma. The fix has been adjusted to not interfere with quotes that are *actually in the name* of a column or table, to as much a degree as possible; sqlite still doesn't return the correct result for foreign_key_list() if the target table actually has quotes surrounding its name, as *part* of its name (i.e. """mytable"""). [ticket:2568]
* - [bug] Fixed bug where incorrect type informationMike Bayer2012-09-161-0/+5
| | | | | | would be passed when the ORM would bind the "version" column, when using the "version" feature. Tests courtesy Daniel Miller. [ticket:2539]
* - genericize the test for ischema_namesMike Bayer2012-09-161-0/+24
| | | | | - some fixes to the patch to handle empty args, whitespace - changelog clarifies where this API fits at the moment
* - [bug] Fixed a disconnect that slowly evolvedMike Bayer2012-09-141-0/+10
| | | | | | | | | | | between a @declared_attr Column and a directly-defined Column on a mixin. In both cases, the Column will be applied to the declared class' table, but not to that of a joined inheritance subclass. Previously, the directly-defined Column would be placed on both the base and the sub table, which isn't typically what's desired. [ticket:2565]
* - [bug] CompileError is raised when VARCHAR withMike Bayer2012-09-101-0/+4
| | | | | no length is attempted to be emitted, same way as MySQL. [ticket:2505]
* - [feature] The cast() and extract() constructsMike Bayer2012-09-101-0/+8
| | | | | | | | | will now be produced via the func.* accessor as well, as users naturally try to access these names from func.* they might as well do what's expected, even though the returned object is not a FunctionElement. [ticket:2562]
* - [feature] Added a hook to the system of renderingMike Bayer2012-09-091-0/+6
| | | | | | | CREATE TABLE that provides access to the render for each Column individually, by constructing a @compiles function against the new schema.CreateColumn construct. [ticket:2463]
* - [feature] The types of columns excluded from theMike Bayer2012-09-051-0/+7
| | | | | | | | setinputsizes() set can be customized by sending a list of string DBAPI type names to exclude. This list was previously fixed. The list also now defaults to STRING, UNICODE, removing CLOB, NCLOB from the list. [ticket:2469]
* `lshift` (<<) and `rshift` (>>) are also supported as optional operators.Mike Bayer2012-09-041-1/+3
|
* - [bug] Fixed a regression since 0.6 regardingMike Bayer2012-08-311-0/+15
| | | | | | | | | | | | | | | | result-row targeting. It should be possible to use a select() statement with string based columns in it, that is select(['id', 'name']).select_from('mytable'), and have this statement be targetable by Column objects with those names; this is the mechanism by which query(MyClass).from_statement(some_statement) works. At some point the specific case of using select(['id']), which is equivalent to select([literal_column('id')]), stopped working here, so this has been re-instated and of course tested. [ticket:2558]
* - [feature] Reworked the startswith(), endswith(),Mike Bayer2012-08-271-0/+12
| | | | | | | | | | | | contains() operators to do a better job with negation (NOT LIKE), and also to assemble them at compilation time so that their rendered SQL can be altered, such as in the case for Firebird STARTING WITH [ticket:2470] - [feature] firebird - The "startswith()" operator renders as "STARTING WITH", "~startswith()" renders as "NOT STARTING WITH", using FB's more efficient operator. [ticket:2470]