]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/log
thirdparty/sqlalchemy/sqlalchemy.git
10 years ago- changelog for #3333, fixes #3333
Mike Bayer [Fri, 20 Mar 2015 15:28:47 +0000 (11:28 -0400)] 
- changelog for #3333, fixes #3333

10 years agoMerge remote-tracking branch 'origin/pr/158' into pr158
Mike Bayer [Fri, 20 Mar 2015 15:19:35 +0000 (11:19 -0400)] 
Merge remote-tracking branch 'origin/pr/158' into pr158

10 years ago- Loosened some restrictions that were added to ``@declared_attr``
Mike Bayer [Wed, 18 Mar 2015 22:57:13 +0000 (18:57 -0400)] 
- Loosened some restrictions that were added to ``@declared_attr``
objects, such that they were prevented from being called outside
of the declarative process; this is related to the enhancements
of #3150 which allow ``@declared_attr`` to return a value that is
cached based on the current class as it's being configured.
The exception raise has been removed, and the behavior changed
so that outside of the declarative process, the function decorated by
``@declared_attr`` is called every time just like a regular
``@property``, without using any caching, as none is available
at this stage.
fixes #3331

10 years ago- fix typo, fixes #3325
Mike Bayer [Tue, 17 Mar 2015 21:32:16 +0000 (17:32 -0400)] 
- fix typo, fixes #3325

10 years agob2 now
Mike Bayer [Tue, 17 Mar 2015 17:53:36 +0000 (13:53 -0400)] 
b2 now

10 years ago- fix incorrect example
Mike Bayer [Tue, 17 Mar 2015 16:33:58 +0000 (12:33 -0400)] 
- fix incorrect example

10 years ago- The "auto close" for :class:`.ResultProxy` is now a "soft" close.
Mike Bayer [Tue, 17 Mar 2015 16:32:33 +0000 (12:32 -0400)] 
- The "auto close" for :class:`.ResultProxy` is now a "soft" close.
That is, after exhausing all rows using the fetch methods, the
DBAPI cursor is released as before and the object may be safely
discarded, but the fetch methods may continue to be called for which
they will return an end-of-result object (None for fetchone, empty list
for fetchmany and fetchall).   Only if :meth:`.ResultProxy.close`
is called explicitly will these methods raise the "result is closed"
error.
fixes #3330 fixes #3329

10 years ago- merge 0.9 changelog
Mike Bayer [Mon, 16 Mar 2015 18:11:49 +0000 (14:11 -0400)] 
- merge 0.9 changelog

10 years ago- changelog for #3327 fixes #3327
Mike Bayer [Mon, 16 Mar 2015 16:18:58 +0000 (12:18 -0400)] 
- changelog for #3327 fixes #3327

10 years agoAccept unicode in CascadeOptions
Julien Castets [Mon, 16 Mar 2015 10:45:06 +0000 (11:45 +0100)] 
Accept unicode in CascadeOptions

10 years ago- remove now-misleading comment that SQLite doesn't support MATCH,
Mike Bayer [Sat, 14 Mar 2015 14:17:12 +0000 (10:17 -0400)] 
- remove now-misleading comment that SQLite doesn't support MATCH,
since they've apparently added something for it

10 years ago1.0.0b1 rel_1_0_0b1
Mike Bayer [Fri, 13 Mar 2015 20:28:03 +0000 (16:28 -0400)] 
1.0.0b1

10 years ago- add notes for prerelease install
Mike Bayer [Fri, 13 Mar 2015 20:33:44 +0000 (16:33 -0400)] 
- add notes for prerelease install

10 years ago- call this 1.0.0b1
Mike Bayer [Fri, 13 Mar 2015 20:23:12 +0000 (16:23 -0400)] 
- call this 1.0.0b1

10 years ago- tweaks regarding the use_alter update
Mike Bayer [Fri, 13 Mar 2015 20:22:01 +0000 (16:22 -0400)] 
- tweaks regarding the use_alter update

10 years ago- ensure as_declarative is part of __all__ here
Mike Bayer [Thu, 12 Mar 2015 20:23:43 +0000 (16:23 -0400)] 
- ensure as_declarative is part of __all__ here

10 years ago- repair forwards-port directives
Mike Bayer [Thu, 12 Mar 2015 20:23:09 +0000 (16:23 -0400)] 
- repair forwards-port directives

10 years ago- fix a get call here, we should figure this out since we dont want
Mike Bayer [Thu, 12 Mar 2015 17:34:43 +0000 (13:34 -0400)] 
- fix a get call here, we should figure this out since we dont want
to be using getattr

10 years ago- add the fact that we can cache the sql naively as well
Mike Bayer [Thu, 12 Mar 2015 16:19:35 +0000 (12:19 -0400)] 
- add the fact that we can cache the sql naively as well

10 years ago- fix quantize recipe, fixes #3322
Mike Bayer [Thu, 12 Mar 2015 15:48:47 +0000 (11:48 -0400)] 
- fix quantize recipe, fixes #3322

10 years ago- add a rationale section
Mike Bayer [Thu, 12 Mar 2015 15:23:44 +0000 (11:23 -0400)] 
- add a rationale section

10 years ago- try to document how to get columns from constraints.
Mike Bayer [Thu, 12 Mar 2015 14:14:52 +0000 (10:14 -0400)] 
- try to document how to get columns from constraints.
unfortunately Sphinx refuses to work correctly for the columns
attribute so we just add a lame message to contains_column().

10 years ago- Added a new extension suite :mod:`sqlalchemy.ext.baked`. This
Mike Bayer [Thu, 12 Mar 2015 00:22:42 +0000 (20:22 -0400)] 
- Added a new extension suite :mod:`sqlalchemy.ext.baked`.  This
simple but unusual system allows for a dramatic savings in Python
overhead for the construction and processing of orm :class:`.Query`
objects, from query construction up through rendering of a string
SQL statement.
fixes #3054

10 years ago- Added a new entry ``"entity"`` to the dictionaries returned by
Mike Bayer [Wed, 11 Mar 2015 18:46:52 +0000 (14:46 -0400)] 
- Added a new entry ``"entity"`` to the dictionaries returned by
:attr:`.Query.column_descriptions`.  This refers to the primary ORM
mapped class or aliased class that is referred to by the expression.
Compared to the existing entry for ``"type"``, it will always be
a mapped entity, even if extracted from a column expression, or
None if the given expression is a pure core expression.
references #3320

10 years ago- The Postgresql :class:`.postgresql.ENUM` type will emit a
Mike Bayer [Wed, 11 Mar 2015 15:41:52 +0000 (11:41 -0400)] 
- The Postgresql :class:`.postgresql.ENUM` type will emit a
DROP TYPE instruction when a plain ``table.drop()`` is called,
assuming the object is not associated directly with a
:class:`.MetaData` object.   In order to accomodate the use case of
an enumerated type shared between multiple tables, the type should
be associated directly with the :class:`.MetaData` object; in this
case the type will only be created at the metadata level, or if
created directly.  The rules for create/drop of
Postgresql enumerated types have been highly reworked in general.
fixes #3319

10 years ago- Added a new event suite :class:`.QueryEvents`. The
Mike Bayer [Tue, 10 Mar 2015 23:56:59 +0000 (19:56 -0400)] 
- Added a new event suite :class:`.QueryEvents`.  The
:meth:`.QueryEvents.before_compile` event allows the creation
of functions which may place additional modifications to
:class:`.Query` objects before the construction of the SELECT
statement.   It is hoped that this event be made much more
useful via the advent of a new inspection system that will
allow for detailed modifications to be made against
:class:`.Query` objects in an automated fashion.
fixes #3317

10 years ago- The subquery wrapping which occurs when joined eager loading
Mike Bayer [Tue, 10 Mar 2015 22:23:23 +0000 (18:23 -0400)] 
- The subquery wrapping which occurs when joined eager loading
is used with a one-to-many query that also features LIMIT,
OFFSET, or DISTINCT has been disabled in the case of a one-to-one
relationship, that is a one-to-many with
:paramref:`.relationship.uselist` set to False.  This will produce
more efficient queries in these cases.
fixes #3249

10 years ago- Fixed bug where the session attachment error "object is already
Mike Bayer [Tue, 10 Mar 2015 21:51:35 +0000 (17:51 -0400)] 
- Fixed bug where the session attachment error "object is already
attached to session X" would fail to prevent the object from
also being attached to the new session, in the case that execution
continued after the error raise occurred.
fixes #3301

10 years ago- Fixed bug where using an ``__abstract__`` mixin in the middle
Mike Bayer [Tue, 10 Mar 2015 21:21:46 +0000 (17:21 -0400)] 
- Fixed bug where using an ``__abstract__`` mixin in the middle
of a declarative inheritance hierarchy would prevent attributes
and configuration being correctly propagated from the base class
to the inheriting class.
fixes #3219 fixes #3240

10 years ago- keep this as 100
Mike Bayer [Tue, 10 Mar 2015 20:57:48 +0000 (16:57 -0400)] 
- keep this as 100

10 years ago- feature, not enhancement
Mike Bayer [Tue, 10 Mar 2015 20:16:15 +0000 (16:16 -0400)] 
- feature, not enhancement

10 years ago- 0.9.9 changelog update
Mike Bayer [Tue, 10 Mar 2015 19:59:34 +0000 (15:59 -0400)] 
- 0.9.9 changelog update

10 years ago- copyright 2015
Mike Bayer [Tue, 10 Mar 2015 19:24:28 +0000 (15:24 -0400)] 
- copyright 2015

10 years ago- repair doclevel
Mike Bayer [Tue, 10 Mar 2015 19:16:02 +0000 (15:16 -0400)] 
- repair doclevel

10 years ago- changelog and docs for pullreq bitbucket:45
Mike Bayer [Tue, 10 Mar 2015 19:05:27 +0000 (15:05 -0400)] 
- changelog and docs for pullreq bitbucket:45

10 years agoMerge branch 'postgres-concurrently' of https://bitbucket.org/iurisilvio/sqlalchemy...
Mike Bayer [Tue, 10 Mar 2015 19:00:21 +0000 (15:00 -0400)] 
Merge branch 'postgres-concurrently' of https://bitbucket.org/iurisilvio/sqlalchemy into pr45

10 years agoFix dependencies for running coverage checks
Gilles Dartiguelongue [Mon, 23 Feb 2015 10:59:28 +0000 (11:59 +0100)] 
Fix dependencies for running coverage checks

10 years ago- changelog for pr github:154
Mike Bayer [Tue, 10 Mar 2015 18:54:20 +0000 (14:54 -0400)] 
- changelog for pr github:154

10 years agoFix slice addressing of _AssociationList with python3
Gilles Dartiguelongue [Tue, 9 Dec 2014 11:08:12 +0000 (12:08 +0100)] 
Fix slice addressing of _AssociationList with python3

10 years ago- changelog / doc for sqlite partial indexes
Mike Bayer [Tue, 10 Mar 2015 18:18:35 +0000 (14:18 -0400)] 
- changelog / doc for sqlite partial indexes

10 years agoMerge branch 'sqlite-partial-indexes' of https://bitbucket.org/groner/sqlalchemy...
Mike Bayer [Tue, 10 Mar 2015 18:12:58 +0000 (14:12 -0400)] 
Merge branch 'sqlite-partial-indexes' of https://bitbucket.org/groner/sqlalchemy into pr42

10 years ago- updated counts
Mike Bayer [Mon, 9 Mar 2015 20:02:55 +0000 (16:02 -0400)] 
- updated counts

10 years ago- fix a potential race condition where the per-mapper LRUCache used by
Mike Bayer [Mon, 9 Mar 2015 19:24:37 +0000 (15:24 -0400)] 
- fix a potential race condition where the per-mapper LRUCache used by
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.

10 years ago- reduce some callcounts related to the lightweight tuple,
Mike Bayer [Mon, 9 Mar 2015 19:24:01 +0000 (15:24 -0400)] 
- reduce some callcounts related to the lightweight tuple,
basically by caching them.
- improve LRUCache so that size management only proceeds
in one thread, add a real get() method

10 years ago- add a callers option
Mike Bayer [Mon, 9 Mar 2015 19:19:49 +0000 (15:19 -0400)] 
- add a callers option

10 years ago- pick around gaining modest dings in callcounts here and there
Mike Bayer [Mon, 9 Mar 2015 18:36:23 +0000 (14:36 -0400)] 
- pick around gaining modest dings in callcounts here and there

10 years ago- start locking down querying for cols after observing yesterdays
Mike Bayer [Mon, 9 Mar 2015 17:07:09 +0000 (13:07 -0400)] 
- start locking down querying for cols after observing yesterdays
callcount bump due to the slots thing
- rewrite profiles using new technique

10 years ago- we really don't want to force lib here, but we do need
Mike Bayer [Mon, 9 Mar 2015 16:26:30 +0000 (12:26 -0400)] 
- we really don't want to force lib here, but we do need
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

10 years ago- random performance whacking vs. 0.9, in particular we have to watch
Mike Bayer [Sun, 8 Mar 2015 19:32:21 +0000 (15:32 -0400)] 
- random performance whacking vs. 0.9, in particular we have to watch
for the slots-based __getattr__ thing getting hit

10 years ago- add this for testing
Mike Bayer [Sun, 8 Mar 2015 18:43:42 +0000 (14:43 -0400)] 
- add this for testing

10 years ago- fix some more result_map calls
Mike Bayer [Sun, 8 Mar 2015 18:16:59 +0000 (14:16 -0400)] 
- fix some more result_map calls

10 years ago- rename _select_wraps
Mike Bayer [Sun, 8 Mar 2015 16:33:38 +0000 (12:33 -0400)] 
- rename _select_wraps
- replace force_result_map with a mini-API for nested result sets, add
coverage

10 years agofoo
Mike Bayer [Sun, 8 Mar 2015 15:29:10 +0000 (11:29 -0400)] 
foo

10 years ago- the change for #918 was of course not nearly that simple.
Mike Bayer [Sun, 8 Mar 2015 03:51:12 +0000 (22:51 -0500)] 
- the change for #918 was of course not nearly that simple.
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.

10 years ago- do a full rewrite of callcounts
Mike Bayer [Sat, 7 Mar 2015 23:04:49 +0000 (18:04 -0500)] 
- do a full rewrite of callcounts

10 years ago- The SQL compiler now generates the mapping of expected columns
Mike Bayer [Sat, 7 Mar 2015 17:48:13 +0000 (12:48 -0500)] 
- The SQL compiler now generates the mapping of expected columns
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

10 years agoMerged in jocmeh/sqlalchemy (pull request #46)
Mike Bayer [Fri, 6 Mar 2015 16:20:45 +0000 (11:20 -0500)] 
Merged in jocmeh/sqlalchemy (pull request #46)

minor docstring fix in MappedCollection class

10 years agominor docstring fix in MappedCollection class
Jochem Oosterveen [Fri, 6 Mar 2015 15:58:30 +0000 (16:58 +0100)] 
minor docstring fix in MappedCollection class

10 years ago- changelog and migration notes for new pg8000 features from
Mike Bayer [Tue, 3 Mar 2015 00:27:21 +0000 (19:27 -0500)] 
- changelog and migration notes for new pg8000 features from
pullreq github:132

10 years ago- add a skip for JSONB on pg8000 if we are on 1.10.1 or earlier
Mike Bayer [Tue, 3 Mar 2015 00:16:37 +0000 (19:16 -0500)] 
- add a skip for JSONB on pg8000 if we are on 1.10.1 or earlier

10 years agoMerge remote-tracking branch 'origin/pr/132' into pr132
Mike Bayer [Tue, 3 Mar 2015 00:00:19 +0000 (19:00 -0500)] 
Merge remote-tracking branch 'origin/pr/132' into pr132

10 years ago- squash-merge the final row_proc integration branch. this is
Mike Bayer [Sun, 1 Mar 2015 21:09:11 +0000 (16:09 -0500)] 
- squash-merge the final row_proc integration branch.  this is
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.

10 years agoDialect option `postgresql_concurrently` to `Index` construct.
Iuri de Silvio [Thu, 26 Feb 2015 00:05:31 +0000 (21:05 -0300)] 
Dialect option `postgresql_concurrently` to `Index` construct.

10 years agoUpdate migration_09.rst
Jason Held [Wed, 25 Feb 2015 17:49:20 +0000 (12:49 -0500)] 
Update migration_09.rst

typo fix: indivdual -> individual.

10 years ago- repair issue in declared_attr.cascading such that within a
Mike Bayer [Tue, 24 Feb 2015 20:29:30 +0000 (15:29 -0500)] 
- repair issue in declared_attr.cascading such that within a
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.

10 years ago- Fixed bugs in ORM object comparisons where comparison of
Mike Bayer [Fri, 20 Feb 2015 20:14:08 +0000 (15:14 -0500)] 
- Fixed bugs in ORM object comparisons where comparison of
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

10 years ago- remove the need for a recursive call here
Mike Bayer [Fri, 20 Feb 2015 05:11:48 +0000 (00:11 -0500)] 
- remove the need for a recursive call here

10 years ago- Fixed bug where internal assertion would fail in the case where
Mike Bayer [Fri, 20 Feb 2015 05:01:19 +0000 (00:01 -0500)] 
- Fixed bug where internal assertion would fail in the case where
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

10 years ago- expect_warnings was not expecting and neither was assert_warnings
Mike Bayer [Thu, 19 Feb 2015 17:01:48 +0000 (12:01 -0500)] 
- expect_warnings was not expecting and neither was assert_warnings
asserting.

10 years ago- repair merge failure
Mike Bayer [Thu, 19 Feb 2015 17:01:22 +0000 (12:01 -0500)] 
- repair merge failure

10 years ago- autopep8
Mike Bayer [Thu, 19 Feb 2015 16:37:44 +0000 (11:37 -0500)] 
- autopep8

10 years ago- Mapped state internals have been reworked to allow for a 50% reduction
Mike Bayer [Wed, 18 Feb 2015 21:08:19 +0000 (16:08 -0500)] 
- Mapped state internals have been reworked to allow for a 50% reduction
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

10 years ago- add the test_expire_lots test for comparison
Mike Bayer [Wed, 18 Feb 2015 20:50:37 +0000 (15:50 -0500)] 
- add the test_expire_lots test for comparison

10 years ago- add a new section regarding multiprocessing
Mike Bayer [Tue, 17 Feb 2015 18:43:48 +0000 (13:43 -0500)] 
- add a new section regarding multiprocessing

10 years ago- additional mysql cast-related test fixes
Mike Bayer [Tue, 10 Feb 2015 01:49:19 +0000 (20:49 -0500)] 
- additional mysql cast-related test fixes

10 years ago- The MySQL dialect now supports CAST on types that are constructed
Mike Bayer [Tue, 10 Feb 2015 01:43:28 +0000 (20:43 -0500)] 
- The MySQL dialect now supports CAST on types that are constructed
as :class:`.TypeDecorator` objects.

10 years ago- add a fix to MySQL re: #3074 tests, make sure we check table is present
Mike Bayer [Tue, 10 Feb 2015 01:32:53 +0000 (20:32 -0500)] 
- add a fix to MySQL re: #3074 tests, make sure we check table is present

10 years ago- test skips for MySQL w new cast warning
Mike Bayer [Tue, 10 Feb 2015 01:32:06 +0000 (20:32 -0500)] 
- test skips for MySQL w new cast warning

10 years ago- A warning is emitted when :func:`.cast` is used with the MySQL
Mike Bayer [Mon, 9 Feb 2015 20:29:14 +0000 (15:29 -0500)] 
- A warning is emitted when :func:`.cast` is used with the MySQL
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

10 years ago- flake8
Mike Bayer [Mon, 9 Feb 2015 20:08:52 +0000 (15:08 -0500)] 
- flake8

10 years ago- Literal values within a :class:`.DefaultClause`, which is invoked
Mike Bayer [Mon, 9 Feb 2015 19:58:26 +0000 (14:58 -0500)] 
- Literal values within a :class:`.DefaultClause`, which is invoked
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

10 years ago- remove meaningless assignment
Mike Bayer [Mon, 9 Feb 2015 01:14:37 +0000 (20:14 -0500)] 
- remove meaningless assignment

10 years ago- test + changelog
Mike Bayer [Mon, 9 Feb 2015 00:58:34 +0000 (19:58 -0500)] 
- test + changelog

10 years agoMerge remote-tracking branch 'origin/pr/147' into pr147
Mike Bayer [Mon, 9 Feb 2015 00:50:41 +0000 (19:50 -0500)] 
Merge remote-tracking branch 'origin/pr/147' into pr147

Conflicts:
lib/sqlalchemy/orm/query.py

10 years ago- add versionadded for service_name
Mike Bayer [Mon, 9 Feb 2015 00:13:21 +0000 (19:13 -0500)] 
- add versionadded for service_name

10 years agofix Python 2-specific byte conversion
David Marin [Fri, 6 Feb 2015 00:51:57 +0000 (16:51 -0800)] 
fix Python 2-specific byte conversion

10 years ago- The MySQL dialect now renders TIMESTAMP with NULL / NOT NULL in
Mike Bayer [Thu, 5 Feb 2015 21:17:23 +0000 (16:17 -0500)] 
- The MySQL dialect now renders TIMESTAMP with NULL / NOT NULL in
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

10 years ago- Fixed bug in :class:`.Connection` and pool where the
Mike Bayer [Wed, 4 Feb 2015 23:51:24 +0000 (18:51 -0500)] 
- Fixed bug in :class:`.Connection` and pool where the
: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

10 years ago- A warning is emitted if the ``isolation_level`` parameter is used
Mike Bayer [Wed, 4 Feb 2015 22:07:15 +0000 (17:07 -0500)] 
- A warning is emitted if the ``isolation_level`` parameter is used
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

10 years ago- Fixed bug in lazy loading SQL construction whereby a complex
Mike Bayer [Tue, 3 Feb 2015 00:46:13 +0000 (19:46 -0500)] 
- Fixed bug in lazy loading SQL construction whereby a complex
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

10 years ago- don't overwrite an existing _strategy_keys collection;
Mike Bayer [Mon, 2 Feb 2015 17:58:24 +0000 (12:58 -0500)] 
- don't overwrite an existing _strategy_keys collection;
this would cause LazyLoader to be initialized twice per property.

10 years ago- Repaired support for Postgresql UUID types in conjunction with
Mike Bayer [Mon, 2 Feb 2015 00:00:07 +0000 (19:00 -0500)] 
- Repaired support for Postgresql UUID types in conjunction with
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

10 years agoMerge remote-tracking branch 'origin/pr/68' into pr68
Mike Bayer [Sun, 1 Feb 2015 23:43:34 +0000 (18:43 -0500)] 
Merge remote-tracking branch 'origin/pr/68' into pr68

10 years ago- Added support for the :class:`postgresql.JSONB` datatype when
Mike Bayer [Sun, 1 Feb 2015 00:04:54 +0000 (19:04 -0500)] 
- Added support for the :class:`postgresql.JSONB` datatype when
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.

10 years agoMerge remote-tracking branch 'origin/pr/145' into pr145
Mike Bayer [Sat, 31 Jan 2015 22:53:02 +0000 (17:53 -0500)] 
Merge remote-tracking branch 'origin/pr/145' into pr145

10 years ago- The :class:`.CheckConstraint` construct now supports naming
Mike Bayer [Fri, 30 Jan 2015 18:38:51 +0000 (13:38 -0500)] 
- The :class:`.CheckConstraint` construct now supports naming
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

10 years ago- Fixed bug in 0.9's foreign key setup system, such that
Mike Bayer [Wed, 28 Jan 2015 16:48:20 +0000 (11:48 -0500)] 
- Fixed bug in 0.9's foreign key setup system, such that
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

10 years ago- fix link to non_primary flag
Mike Bayer [Tue, 27 Jan 2015 05:34:10 +0000 (00:34 -0500)] 
- fix link to non_primary flag
- rewrite the multiple mappers section

10 years ago- fix this test for py3k
Mike Bayer [Tue, 27 Jan 2015 03:45:12 +0000 (22:45 -0500)] 
- fix this test for py3k

10 years ago- additional test adjustments for pypy / psycopg2cffi. This
Mike Bayer [Mon, 26 Jan 2015 23:02:46 +0000 (18:02 -0500)] 
- additional test adjustments for pypy / psycopg2cffi.  This
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