Commit Graph

6314 Commits

Author SHA1 Message Date
Mike Bayer 99350b159f - Fixed bug where "python setup.py test" wasn't calling into
distutils appropriately, and errors would be emitted at the end
of the test suite.
2014-07-09 15:50:17 -04:00
Mike Bayer e38bb315fd - The "evaulator" for query.update()/delete() won't work with multi-table
updates, and needs to be set to `synchronize_session=False` or
`synchronize_session='fetch'`; this now raises an exception, with a
message to change the synchronize setting.  This will be only a warning
in 0.9.7.  fixes #3117
2014-07-08 19:08:42 -04:00
jonathan vanasco c996b76d5b - add postgresql_regconfig argument to PG dialect for match() operator,
implements PG's to_tsquery('regconfig', 'arg') pattern. fixes #3078
2014-07-08 18:18:04 -04:00
mike bayer c9dceb0dfa Merge pull request #101 from ddimmich/master
Postgres 9.4 Jsonb support
2014-07-07 10:40:03 -04:00
mike bayer 7c29cff14d Merge pull request #100 from plaes/typos
Typo fixes
2014-07-06 17:17:59 -04:00
Mike Bayer 41563b5f5a Merged in therve/bug-3093/bug/3093 (pull request #24)
Return the assigned value in MultableDict.setdefault
2014-07-06 17:12:23 -04:00
mike bayer 49368458e0 Merge pull request #98 from abbec/mssql2008-multivalues-insert
Fixed support for multivalue inserts for MS SQL 2008
2014-07-06 16:55:05 -04:00
Mike Bayer 6a7ef34361 - clarify that the pg8000 backend has no impact of any kind on
the pg8000 DBAPI's encoding behavior, fixes #3112.
2014-07-04 15:49:01 -04:00
Mike Bayer dfb5707dae - rework the entire approach to #3076. As we need to catch all exceptions
in all cases unconditionally, the number of use cases that go beyond what
dbapi_error() is expecting has gone too far for an 0.9 release.
Additionally, the number of things we'd like to track is really a lot
more than the five arguments here, and ExecutionContext is really not
suitable as totally public API for this.   So restore dbapi_error
to its old version, deprecate, and build out handle_error instead.
This is a lot more extensible and doesn't get in the way of anything
compatibility-wise.
2014-07-04 15:40:47 -04:00
Mike Bayer c60eb86a91 - Added new attributes :attr:.ExecutionContext.exception and
:attr:`.ExecutionContext.is_disconnect` which are meaningful within
the :meth:`.ConnectionEvents.dbapi_error` handler to see both the
original DBAPI error as well as whether or not it represents
a disconnect.
2014-07-03 21:49:37 -04:00
Mike Bayer e0a9b94abb - The mechanics of the :meth:.ConnectionEvents.dbapi_error handler
have been enhanced such that the function handler is now capable
of raising or returning a new exception object, which will replace
the exception normally being thrown by SQLAlchemy.
fixes #3076
2014-07-03 17:30:49 -04:00
Mike Bayer 3e4286079c - add link to dialect docs for SQLite autoincrement from column autoincrement,
fixes #3110
2014-07-03 11:34:51 -04:00
Mike Bayer 427ee3a61e - Fixed bug where items that were persisted, deleted, or had a
primary key change within a savepoint block would not
participate in being restored to their former state (not in
session, in session, previous PK) after the outer transaction
were rolled back. fixes #3108
2014-07-01 12:12:51 -04:00
Damian Dimmich ceeee81017 jsonb support for <@, ?| and ?& added.
need to see if equality already works.
2014-07-01 13:24:30 +04:00
Mike Bayer 2d8d1dcf60 - repair the _enable_single_crit method, it was named the same
as the attribute and probably just replaced itself, so that is
now _set_enable_single_crit
- as a side effect of the main issue fixed here, correct the case in
adjust_for_single_inheritance where the same mapper appears more
than once in mapper_adapter_map; run through a set() for uniqueness.
- Fixed bug in subquery eager loading in conjunction with
:func:`.with_polymorphic`, the targeting of entities and columns
in the subquery load has been made more accurate with respect
to this type of entity and others. Fixes #3106
2014-06-30 20:25:04 -04:00
Mike Bayer 4b6d6d5f80 - add new section Working with Raw DBAPI Connections, fixes #2218. 2014-06-30 11:08:05 -04:00
Mike Bayer 992e06412c - attach the ResultMetaData to the Compiled object, when we detect that
the compiled cache is used.  That allows us to cache the whole metadata
and save on creating it at result time, when compiled cache is used.
2014-06-29 00:10:59 -04:00
Mike Bayer 3be078425f - cut out some calls by inlining the calls to get_history() 2014-06-28 23:34:05 -04:00
Damian Dimmich 4eca136e09 minor cleanup of the jsonb - had extraneous operators that where copied
from hstore that don't apply.

Add tests for ? and @> operators.
2014-06-28 23:11:03 +04:00
Damian Dimmich 4e5fcee975 add has_key & contains operators for jsonb (ported over from hstore) 2014-06-28 22:47:20 +04:00
Priit Laes eb5f398a01 typo: s/tranasction/transaction 2014-06-28 12:46:46 +03:00
Mike Bayer 01215cdaef - Fixed a bug within the custom operator plus :meth:.TypeEngine.with_variant
system, whereby using a :class:`.TypeDecorator` in conjunction with
variant would fail with an MRO error when a comparison operator was used.
fixes #3102
2014-06-27 16:08:42 -04:00
Mike Bayer 3ea154fbf5 - MySQL error 2014 "commands out of sync" appears to be raised as a
ProgrammingError, not OperationalError, in modern MySQL-Python versions;
all MySQL error codes that are tested for "is disconnect" are now
checked within OperationalError and ProgrammingError regardless.
fixes #3101
2014-06-27 15:52:40 -04:00
Mike Bayer f2cf62090c - Fixed bug involving dynamic attributes, that was again a regression
of 🎫`3060` from verision 0.9.5.  A self-referential relationship
with lazy='dynamic' would raise a TypeError within a flush operation.
fixes #3099
2014-06-26 14:58:42 -04:00
Mike Bayer ca58fa5d93 - Fixed bug when the declarative `__abstract__` flag was not being
distinguished for when it was actually the value ``False``.
The ``__abstract__`` flag needs to acutally evaluate to a True
value at the level being tested.
fixes #3097
2014-06-25 14:30:25 -04:00
Mike Bayer 02b0af4f7c - write some really complete docs on MSSQL autoincrement, fixes #3094 2014-06-24 12:25:28 -04:00
Thomas Herve e36fb9e87c Return the assigned value in MultableDict.setdefault 2014-06-24 09:55:53 +02:00
Damian Dimmich 01cc8fbacc initial support for JSONB - this only allows you to define the JSONB
datatype - this does not add any of the additional support for
querying/indexing yet.
2014-06-24 11:23:21 +04:00
Mike Bayer f10eb28d90 - reverse course in #3061 so that we instead no longer set None in the attribute
when we do a get; we return the None as always but we leave the dict blank
and the loader callable still in place.  The case for this implicit get on a pending object is not
super common and there really should be no change in state at all when this
operation proceeds.   This change is more dramatic as it reverses
a behavior SQLA has had since the first release.
fixes #3061
2014-06-23 19:50:23 -04:00
Mike Bayer 7e7447db1f - Reverted the change for 🎫3060 - this is a unit of work
fix that is updated more comprehensively in 1.0 via 🎫`3061`.
The fix in 🎫`3060` unfortunately produces a new issue whereby
an eager load of a many-to-one attribute can produce an event
that is interpreted into an attribute change.
2014-06-23 18:42:54 -04:00
Mike Bayer a1bbf3a005 - Additional checks have been added for the case where an inheriting
mapper is implicitly combining one of its column-based attributes
with that of the parent, where those columns normally don't necessarily
share the same value.  This is an extension of an existing check that
was added via 🎫`1892`; however this new check emits only a
warning, instead of an exception, to allow for applications that may
be relying upon the existing behavior.
fixes #3042
2014-06-20 18:47:28 -04:00
Mike Bayer bd56485f4c - The :paramref:.Column.nullable flag is implicitly set to `False`
when that :class:`.Column` is referred to in an explicit
:class:`.PrimaryKeyConstraint` for that table.  This behavior now
matches that of when the :class:`.Column` itself has the
:paramref:`.Column.primary_key` flag set to ``True``, which is
intended to be an exactly equivalent case.
fixes #3023
2014-06-20 18:03:28 -04:00
Mike Bayer 42bbb7163a - Added a new type :class:.postgresql.OID to the Postgresql dialect.
While "oid" is generally a private type within PG that is not exposed
in modern versions, there are some PG use cases such as large object
support where these types might be exposed, as well as within some
user-reported schema reflection use cases.
fixes #3002
2014-06-20 17:58:06 -04:00
Mike Bayer a46932422b - Fixed bug where column names added to `mysql_length` parameter
on an index needed to have the same quoting for quoted names in
order to be recognized.  The fix makes the quotes optional but
also provides the old behavior for backwards compatibility with those
using the workaround.
fixes #3085
2014-06-18 10:56:23 -04:00
Albert Cervin ed20c151cb - Fixed support for multivalue inserts for MS SQL 2008 since it is actually supported. 2014-06-16 11:13:18 +02:00
Mike Bayer 33cb84945f - Modified the behavior of :func:.orm.load_only such that primary key
columns are always added to the list of columns to be "undeferred";
otherwise, the ORM can't load the row's identity.   Apparently,
one can defer the mapped primary keys and the ORM will fail, that
hasn't been changed.  But as load_only is essentially saying
"defer all but X", it's more critical that PK cols not be part of this
deferral. fixes #3080
2014-06-12 11:47:50 -04:00
BY-jk 8b105cd5e4 Update compiler.py
Moved initialization into else block
Conflicts:
	lib/sqlalchemy/sql/compiler.py
2014-06-08 17:57:18 -04:00
Mike Bayer 46abb87ef4 Merge branch 'master' of https://github.com/BY-jk/sqlalchemy 2014-06-08 17:52:51 -04:00
Justin Wood (Callek) 8952724cdd once kwarg in event funcs is new in 0.9.4
event.listen and event.listen_for have a kwarg once added in 0.9.4 (not 0.9.3) CHANGELOG agrees with this as well. (as does my manual testing)
2014-06-05 10:40:34 -04:00
Mike Bayer 809a7890a1 - remove drizzle dialect
- restore mysqldb fully within dialects/mysql/, it's no longer a connector.
fixes #2984
2014-05-30 18:06:09 -04:00
Mike Bayer 814637e291 - vastly improve the "safe close cursor" tests in test_reconnect
- Fixed bug which would occur if a DBAPI exception
occurs when the engine first connects and does its initial checks,
and the exception is not a disconnect exception, yet the cursor
raises an error when we try to close it.  In this case the real
exception would be quashed as we tried to log the cursor close
exception via the connection pool and failed, as we were trying
to access the pool's logger in a way that is inappropriate
in this very specific scenario. fixes #3063
2014-05-30 16:24:38 -04:00
Mike Bayer 8daa6ccfb0 - The `__mapper_args__` dictionary is copied from a declarative
mixin or abstract class when accessed, so that modifications made
to this dictionary by declarative itself won't conflict with that
of other mappings.  The dictionary is modified regarding the
``version_id_col`` and ``polymorphic_on`` arguments, replacing the
column within with the one that is officially mapped to the local
class/table. fixes #3062
2014-05-30 15:36:13 -04:00
Mike Bayer 2e4d3e65e3 - changelog + docs for pg8000 transaction isolation level 2014-05-30 12:27:42 -04:00
Mike Bayer f000161f24 Merge branch 'master' of https://github.com/tlocke/sqlalchemy into tlocke-master 2014-05-30 12:08:26 -04:00
Mike Bayer 49c667e27d update comments 2014-05-30 12:00:05 -04:00
Mike Bayer 4eb855657a Merge branch 'psycopg_disconnect' of https://github.com/dirkmueller/sqlalchemy 2014-05-30 11:53:46 -04:00
BY-jk 39bea64bc3 Wrong type usage
Wrong Type (TEXT) being used in StringTest
2014-05-30 15:18:02 +02:00
Mike Bayer 28fbecaaa0 revert this, not sure why that changed 2014-05-30 01:38:12 -04:00
Mike Bayer 69dbcdd0eb - Related to 🎫3060, an adjustment has been made to the unit
of work such that loading for related many-to-one objects is slightly
more aggressive, in the case of a graph of self-referential objects
that are to be deleted; the load of related objects is to help
determine the correct order for deletion if passive_deletes is
not set.
- revert the changes to test_delete_unloaded_m2o, these deletes do in fact
need to occur in the order of the two child objects first.
2014-05-30 01:32:53 -04:00
Mike Bayer 2c8689fd14 - add a new assertsql construct "Or", so that we can test for a UOW flush
that might take one of multiple directions; apply this to test_delete_unloaded_m2o
which is now illustrating multiple paths due to #3060/#3061, though still doing the
right thing.
2014-05-30 00:21:11 -04:00