summaryrefslogtreecommitdiff
path: root/doc
Commit message (Collapse)AuthorAgeFilesLines
* - Fixed bugs in ORM object comparisons where comparison ofMike Bayer2015-02-201-0/+12
| | | | | | | | | | 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
* - Fixed bug where internal assertion would fail in the case whereMike Bayer2015-02-201-0/+10
| | | | | | | | 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
* - Mapped state internals have been reworked to allow for a 50% reductionMike Bayer2015-02-181-0/+10
| | | | | | | | 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 a new section regarding multiprocessingMike Bayer2015-02-171-0/+60
|
* - The MySQL dialect now supports CAST on types that are constructedMike Bayer2015-02-091-0/+6
| | | | as :class:`.TypeDecorator` objects.
* - A warning is emitted when :func:`.cast` is used with the MySQLMike Bayer2015-02-091-0/+13
| | | | | | | | | | | 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
* - Literal values within a :class:`.DefaultClause`, which is invokedMike Bayer2015-02-092-2/+50
| | | | | | | when using the :paramref:`.Column.server_default` parameter, will now be rendered using the "inline" compiler, so that they are rendered as-is, rather than as bound parameters. fixes #3087
* - test + changelogMike Bayer2015-02-081-0/+8
|
* - cx_Oracle.makedsn can now be passed service_name; squashSławek Ehlert2014-04-021-0/+8
| | | | commit of pr152
* - The MySQL dialect now renders TIMESTAMP with NULL / NOT NULL inMike Bayer2015-02-052-0/+42
| | | | | | | | | all cases, so that MySQL 5.6.6 with the ``explicit_defaults_for_timestamp`` flag enabled will will allow TIMESTAMP to continue to work as expected when ``nullable=False``. Existing applications are unaffected as SQLAlchemy has always emitted NULL for a TIMESTAMP column that is ``nullable=True``. fixes #3155
* - Fixed bug in :class:`.Connection` and pool where theMike Bayer2015-02-041-0/+11
| | | | | | | | | :meth:`.Connection.invalidate` method, or an invalidation due to a database disconnect, would fail if the ``isolation_level`` parameter had been used with :meth:`.Connection.execution_options`; the "finalizer" that resets the isolation level would be called on the no longer opened connection. fixes #3302
* - A warning is emitted if the ``isolation_level`` parameter is usedMike Bayer2015-02-042-0/+169
| | | | | | | | | | | | | | | | with :meth:`.Connection.execution_options` when a :class:`.Transaction` is in play; DBAPIs and/or SQLAlchemy dialects such as psycopg2, MySQLdb may implicitly rollback or commit the transaction, or not change the setting til next transaction, so this is never safe. - Added new parameter :paramref:`.Session.connection.execution_options` which may be used to set up execution options on a :class:`.Connection` when it is first checked out, before the transaction has begun. This is used to set up options such as isolation level on the connection before the transaction starts. - added new documentation section detailing best practices for setting transaction isolation with sessions. fixes #3296
* - Fixed bug in lazy loading SQL construction whereby a complexMike Bayer2015-02-021-0/+10
| | | | | | | | primaryjoin that referred to the same "local" column multiple times in the "column that points to itself" style of self-referential join would not be substituted in all cases. The logic to determine substitutions here has been reworked to be more open-ended. fixes #3300
* - Repaired support for Postgresql UUID types in conjunction withMike Bayer2015-02-011-0/+12
| | | | | | | | | | the ARRAY type when using psycopg2. The psycopg2 dialect now employs use of the psycopg2.extras.register_uuid() hook so that UUID values are always passed to/from the DBAPI as UUID() objects. The :paramref:`.UUID.as_uuid` flag is still honored, except with psycopg2 we need to convert returned UUID objects back into strings when this is disabled. fixes #2940
* - Added support for the :class:`postgresql.JSONB` datatype whenMike Bayer2015-01-311-0/+23
| | | | | | | | | | | | | | | | | using psycopg2 2.5.4 or greater, which features native conversion of JSONB data so that SQLAlchemy's converters must be disabled; additionally, the newly added psycopg2 extension ``extras.register_default_jsonb`` is used to establish a JSON deserializer passed to the dialect via the ``json_deserializer`` argument. Also repaired the Postgresql integration tests which weren't actually round-tripping the JSONB type as opposed to the JSON type. Pull request courtesy Mateusz Susik. - Repaired the use of the "array_oid" flag when registering the HSTORE type with older psycopg2 versions < 2.4.3, which does not support this flag, as well as use of the native json serializer hook "register_default_json" with user-defined ``json_deserializer`` on psycopg2 versions < 2.5, which does not include native json.
* - The :class:`.CheckConstraint` construct now supports namingMike Bayer2015-01-303-2/+193
| | | | | | | | | | conventions that include the token ``%(column_0_name)s``; the constraint expression is scanned for columns. Additionally, naming conventions for check constraints that don't include the ``%(constraint_name)s`` token will now work for :class:`.SchemaType`- generated constraints, such as those of :class:`.Boolean` and :class:`.Enum`; this stopped working in 0.9.7 due to :ticket:`3067`. fixes #3299
* - Fixed bug in 0.9's foreign key setup system, such thatMike Bayer2015-01-281-0/+16
| | | | | | | | | | | | | | the logic used to link a :class:`.ForeignKey` to its parent could fail when the foreign key used "link_to_name=True" in conjunction with a target :class:`.Table` that would not receive its parent column until later, such as within a reflection + "useexisting" scenario, if the target column in fact had a key value different from its name, as would occur in reflection if column reflect events were used to alter the .key of reflected :class:`.Column` objects so that the link_to_name becomes significant. Also repaired support for column type via FK transmission in a similar way when target columns had a different key and were referenced using link_to_name. fixes #3298
* - fix link to non_primary flagMike Bayer2015-01-272-24/+41
| | | | - rewrite the multiple mappers section
* - additional test adjustments for pypy / psycopg2cffi. ThisMike Bayer2015-01-263-8/+30
| | | | | | | | | | consists mainly of adjusting fixtures to ensure connections are closed explicitly. psycopg2cffi also handles unicode bind parameter names differently than psycopg2, and seems to possibly have a little less control over floating point values at least in one test which is marked as a "fail", though will see if it runs differently on linux than osx.. - changelog for psycopg2cffi, fixes #3052
* Include psycopg2cffi in dialect docsShaun Stanworth2015-01-261-0/+5
|
* - changelog for #3262, fixes #3262Mike Bayer2015-01-261-0/+11
|
* - changelog for pullreq github:150Mike Bayer2015-01-261-0/+8
|
* - Added new user-space accessors for viewing transaction isolationMike Bayer2015-01-201-0/+8
| | | | | | | | | levels; :meth:`.Connection.get_isolation_level`, :attr:`.Connection.default_isolation_level`. - enhance documentation inter-linkage between new accessors, existing isolation_level parameters, as well as in the dialect-level methods which should be fully covered by Engine/Connection level APIs now.
* - enhance detail here regarding the difference betweenMike Bayer2015-01-201-4/+27
| | | | Connection.connection and engine.raw_connection()
* - restore r611883ffb35ca6664649f6328ae8 with additional fixes and an ↵Mike Bayer2015-01-192-0/+70
| | | | | | additional test that is much more specific to #1326
* - reverse the last commit temporarily as it breaks all the polymorphic casesMike Bayer2015-01-192-70/+0
|
* - The primary :class:`.Mapper` of a :class:`.Query` is now passed to theMike Bayer2015-01-192-0/+70
| | | | | | | | | | | :meth:`.Session.get_bind` method when calling upon :meth:`.Query.count`, :meth:`.Query.update`, :meth:`.Query.delete`, as well as queries against mapped columns, :obj:`.column_property` objects, and SQL functions and expressions derived from mapped columns. This allows sessions that rely upon either customized :meth:`.Session.get_bind` schemes or "bound" metadata to work in all relevant cases. fixes #3227 fixes #3242 fixes #1326
* - Custom dialects that implement :class:`.GenericTypeCompiler` canMike Bayer2015-01-161-0/+16
| | | | | | | | | | | | | | now be constructed such that the visit methods receive an indication of the owning expression object, if any. Any visit method that accepts keyword arguments (e.g. ``**kw``) will in most cases receive a keyword argument ``type_expression``, referring to the expression object that the type is contained within. For columns in DDL, the dialect's compiler class may need to alter its ``get_column_specification()`` method to support this as well. The ``UserDefinedType.get_col_spec()`` method will also receive ``type_expression`` if it provides ``**kw`` in its argument signature. fixes #3074
* - Fixed bug where Postgresql dialect would fail to render anMike Bayer2015-01-161-0/+11
| | | | | | | | expression in an :class:`.Index` that did not correspond directly to a table-bound column; typically when a :func:`.text` construct was one of the expressions within the index; or could misinterpret the list of expressions if one or more of them were such an expression. fixes #3174
* - add new section to ORM referring to runtime inspection API,Mike Bayer2015-01-141-0/+49
| | | | more links, attempt to fix #3290
* - The "wildcard" loader options, in particular the one set up byMike Bayer2015-01-131-0/+15
| | | | | | | | | | | | the :func:`.orm.load_only` option to cover all attributes not explicitly mentioned, now takes into account the superclasses of a given entity, if that entity is mapped with inheritance mapping, so that attribute names within the superclasses are also omitted from the load. Additionally, the polymorphic discriminator column is unconditionally included in the list, just in the same way that primary key columns are, so that even with load_only() set up, polymorphic loading of subtypes continues to function correctly. fixes #3287
* - The multi-values version of :meth:`.Insert.values` has beenMike Bayer2015-01-132-0/+102
| | | | | | | | | | | | repaired to work more usefully with tables that have Python- side default values and/or functions, as well as server-side defaults. The feature will now work with a dialect that uses "positional" parameters; a Python callable will also be invoked individually for each row just as is the case with an "executemany" style invocation; a server- side default column will no longer implicitly receive the value explicitly specified for the first row, instead refusing to invoke without an explicit value. fixes #3288
* - changelog for pr 41Mike Bayer2015-01-121-0/+9
|
* - Fixed bug where if an exception were thrown at the start of aMike Bayer2015-01-051-0/+13
| | | | | | | | | | :class:`.Query` before it fetched results, particularly when row processors can't be formed, the cursor would stay open with results pending and not actually be closed. This is typically only an issue on an interpreter like Pypy where the cursor isn't immediately GC'ed, and can in some circumstances lead to transactions/ locks being open longer than is desirable. fixes #3285
* fix verbiageMike Bayer2015-01-051-2/+2
|
* - add MemoizedSlots, a generalized solution to using __getattr__Mike Bayer2015-01-053-3/+29
| | | | | for memoization on a class that uses slots. - apply many more __slots__. mem use for nova now at 46% savings
* - make a new page that introduces mapping a little better for theMike Bayer2015-01-054-69/+126
| | | | "mapping" section, contrasts declarative and classical some more
* - Structural memory use has been improved via much more significant useMike Bayer2015-01-042-1/+47
| | | | | | | | | of ``__slots__`` for many internal objects. This optimization is particularly geared towards the base memory size of large applications that have lots of tables and columns, and greatly reduces memory size for a variety of high-volume objects including event listening internals, comparator objects and parts of the ORM attribute and loader strategy system.
* - The :class:`.mysql.SET` type has been overhauled to no longerMike Bayer2015-01-032-0/+67
| | | | | | | | | | | | | | assume that the empty string, or a set with a single empty string value, is in fact a set with a single empty string; instead, this is by default treated as the empty set. In order to handle persistence of a :class:`.mysql.SET` that actually wants to include the blank value ``''`` as a legitimate value, a new bitwise operational mode is added which is enabled by the :paramref:`.mysql.SET.retrieve_as_bitwise` flag, which will persist and retrieve values unambiguously using their bitflag positioning. Storage and retrieval of unicode values for driver configurations that aren't converting unicode natively is also repaired. fixes #3283
* - put this back now that we found the source of thisMike Bayer2015-01-021-5/+1
|
* - restate sort_tables in terms of a more fine grainedMike Bayer2015-01-014-23/+212
| | | | | | | | | | | | | sort_tables_and_constraints function. - The DDL generation system of :meth:`.MetaData.create_all` and :meth:`.Metadata.drop_all` has been enhanced to in most cases automatically handle the case of mutually dependent foreign key constraints; the need for the :paramref:`.ForeignKeyConstraint.use_alter` flag is greatly reduced. The system also works for constraints which aren't given a name up front; only in the case of DROP is a name required for at least one of the constraints involved in the cycle. fixes #3282
* - Added a new accessor :attr:`.Table.foreign_key_constraints`Mike Bayer2015-01-011-0/+7
| | | | | to complement the :attr:`.Table.foreign_keys` collection, as well as :attr:`.ForeignKeyConstraint.referred_table`.
* - fix some RST whitespace syntactical issues in toctreesMike Bayer2014-12-292-12/+13
| | | | | - have the topmost toctree only include page names - add glossary to toctree, remove search by itself
* - see if we can get RTD to use this for nowMike Bayer2014-12-281-1/+1
|
* bumpMike Bayer2014-12-281-1/+1
|
* bumpMike Bayer2014-12-281-1/+1
|
* - fix links for loading, add a redirect pageMike Bayer2014-12-273-3/+6
| | | | | | bump foo
* - another bumpMike Bayer2014-12-271-1/+1
|
* - remove private superclasses from docs in favor of fixingMike Bayer2014-12-275-16/+1
| | | | | | | zzzeeksphinx to omit these from warning Conflicts: doc/build/orm/internals.rst
* remove pipe...Mike Bayer2014-12-271-1/+1
|