Commit Graph

7482 Commits

Author SHA1 Message Date
Taavi Burns 59f78fbcdc Removes garbage from the end of an example SQL query line. 2012-12-31 00:32:01 -05:00
Taavi Burns 3657f21224 Adjusts example code so it can be successfully pasted into a REPL. 2012-12-31 00:31:43 -05:00
Taavi Burns 9a8711c360 Fixes grammar in docstring. 2012-12-31 00:21:05 -05:00
Mike Bayer b30ef87d27 Extended the :doc:/core/inspection system so that all Python descriptors
associated with the ORM or its extensions can be retrieved.
This fulfills the common request of being able to inspect
all :class:`.QueryableAttribute` descriptors in addition to
extension types such as :class:`.hybrid_property` and
:class:`.AssociationProxy`.  See :attr:`.Mapper.all_orm_descriptors`.
2012-12-29 19:31:28 -05:00
Mike Bayer 559b83312c changelog for pullreq 33 2012-12-28 20:45:39 -05:00
Owen Nelson 16ab0d61ef Fixes issue where GAE error handling can cause AttributeError: 'NoneType' object has no attribute 'group' 2012-12-28 20:20:23 -05:00
Owen Nelson 989f11b4fc GAE dialect now supports the use of credentials 2012-12-28 20:18:20 -05:00
Diana Clarke 6691e1a022 fixing typos in the types docs (see #2639) 2012-12-23 18:15:12 -05:00
Diana Clarke 49ff85bfd8 typo in joined table inheritance docs see #2641 2012-12-23 16:13:59 -05:00
Mike Bayer 5b23a68080 - add tests to ensure SELECT of dynamic collection not emitted
on regular append/remove history
- fix the real cause of the original #2637 issue, backrefs call upon
the "pop()" method now which wasn't implemented for Dynamic
2012-12-22 18:40:06 -05:00
Mike Bayer efbbe88705 - revert the full iteration of the collection for a passive history event; that's
the wrong behavior, and for the original #2637 issue we will have to fix the
association proxy, which is #2642
2012-12-22 10:36:55 -05:00
Mike Bayer 3522785ef4 - significantly rework the approach to collection events and history within DynamicAttributeImpl
- Fixes to the "dynamic" loader on :func:`.relationship`, includes
that backrefs will work properly even when autoflush is disabled,
history events are more accurate in scenarios where multiple add/remove
of the same object occurs, as can often be the case in conjunction
with the association proxy.  [ticket:2637]
2012-12-21 17:53:57 -05:00
Mike Bayer cf50ac219e - cleanup on these tests
- add "extend()" to AppenderQuery
2012-12-21 13:29:48 -05:00
Diana Clarke 72d4f3e220 docs - missing 'attr' in AssociationProxy join see #2636 2012-12-16 08:01:08 -05:00
Mike Bayer 5c3fd2105e Added tag rel_0_8_8b2 for changeset 332560b1fd 2012-12-14 15:52:30 -05:00
Mike Bayer 332560b1fd 0.8.0b2 rel_0_8_0b2 2012-12-14 15:40:05 -05:00
Mike Bayer 3765920b77 this comment is entirely from some ancient version of the code 2012-12-14 10:33:23 -05:00
Mike Bayer 850e881ce2 More adjustment to this SQLite related issue which was released in
0.7.9, to intercept legacy SQLite quoting characters when reflecting
foreign keys.  In addition to intercepting double quotes, other
quoting characters such as brackets, backticks, and single quotes
are now also intercepted. [ticket:2568]
2012-12-14 10:29:46 -05:00
Mike Bayer ce3333a65c The :meth:.Query.select_from method can now be used with a
:func:`.aliased` construct without it interfering with the entities
being selected.  [ticket:2635]
2012-12-13 18:45:15 -05:00
Mike Bayer fbd81de0eb Fixed a regression caused by 🎫2410 whereby a
:class:`.CheckConstraint` would apply itself back to the
original table during a :meth:`.Table.tometadata` operation, as
it would parse the SQL expression for a parent table. The
operation now copies the given expression to correspond to the
new table.
[ticket:2633]
2012-12-11 16:31:41 -05:00
Mike Bayer d9d6dcea77 add future 2012-12-11 10:34:33 -05:00
Mike Bayer 70d38af42e Fixed table reflection for Oracle when accessing a synonym that refers
to a DBLINK remote database; while the syntax has been present in the
Oracle dialect for some time, up until now it has never been tested.
The syntax has been tested against a sample database linking to itself,
however there's still some uncertainty as to what should be used for the
"owner" when querying the remote database for table information.
Currently, the value of "username" from user_db_links is used to
match the "owner".  [ticket:2619]
2012-12-09 18:28:08 -05:00
Mike Bayer ee8dde9f1c typo 2012-12-09 14:43:49 -05:00
Mike Bayer 7443d50d31 - documentation and changelog for [ticket:2601] 2012-12-09 14:12:22 -05:00
Mike Bayer fef25bdcf9 add a doc for the [ticket:2631] quirk 2012-12-08 20:39:32 -05:00
Mike Bayer 3859742a91 Fixed bug where using server_onupdate=<FetchedValue|DefaultClause>
without passing the "for_update=True" flag would apply the default
object to the server_default, blowing away whatever was there.
The explicit for_update=True argument shouldn't be needed with this usage
(especially since the documentation shows an example without it being
used) so it is now arranged internally using a copy of the given default
object, if the flag isn't set to what corresponds to that argument.
Also in 0.7.10. [ticket:2631]
2012-12-08 20:28:43 -05:00
Mike Bayer 33bafcb132 Fixed bug whereby using a label_length on dialect that was smaller
than the size of actual column identifiers would fail to render
the columns correctly in a SELECT statement.
[ticket:2610]
2012-12-08 19:25:04 -05:00
Mike Bayer c183aa098b - refactor test_labels into all compiler/defaultdialect tests 2012-12-08 19:10:44 -05:00
Mike Bayer 9608eb8f1a attempt to hide these from 2to3 2012-12-08 17:50:51 -05:00
Mike Bayer 788da7fed9 - version check for sqlite on multivalues is 3.7.11 2012-12-08 16:18:21 -05:00
Mike Bayer 8070cbde71 internally at least refer to multirow as "multivalues", to distinguish between
an INSERT that's used in executemany() as opposed to one which has a VALUES
clause with multiple entries.
2012-12-08 16:17:20 -05:00
Mike Bayer 927b985983 - multivalued inserts, [ticket:2623]
- update "not supported" messages for empty inserts, mutlivalue inserts

- rework the ValuesBase approach for multiple value sets so that stmt.parameters
does store a list for multiple values; the _has_multiple_parameters flag now indicates
which of the two modes the statement is within.  it now raises exceptions if a subsequent
call to values() attempts to call a ValuesBase with one mode in the style of the other
mode; that is, you can't switch a single- or multi- valued ValuesBase to the other mode,
and also if a multiple value is passed simultaneously with a kwargs set.
Added tests for these error conditions

- Calling values() multiple times in multivalue mode now extends the parameter list to
include the new parameter sets.

- add error/test if multiple *args were passed to ValuesBase.values()

- rework the compiler approach for multivalue inserts, back to where
_get_colparams() returns the same list of (column, value) as before, thereby
maintaining the identical number of append() and other calls when multivalue
is not enabled.  In the case of multivalue, it makes a last-minute switch to return
a list of lists instead of the single list.  As it constructs the additional lists, the inline
defaults and other calculated default parameters of the first parameter
set are copied into the newly generated lists so that these features continue
to function for a multivalue insert.   Multivalue inserts now add no additional
function calls to the compilation for regular insert constructs.

- parameter lists for multivalue inserts now includes an integer index for all
parameter sets.

- add detailed documentation for ValuesBase.values(), including careful wording
to describe the difference between multiple values and an executemany() call.

- add a test for multivalue insert + returning - it works !

- remove the very old/never used "postgresql_returning"/"firebird_returning" flags.
2012-12-08 14:25:42 -05:00
Mike Bayer 1ee4736bea merge latest default 2012-12-08 11:23:21 -05:00
Diana Clarke f8caf05593 fixing InstrumentationManager links 2012-12-07 22:42:34 -05:00
Diana Clarke 2b991ac9b5 fixing sessionmaker link 2012-12-07 22:23:25 -05:00
Mike Bayer 9d817406e2 The Oracle LONG type, while an unbounded text type, does not appear
to use the cx_Oracle.LOB type when result rows are returned,
so the dialect has been repaired to exclude LONG from
having cx_Oracle.LOB filtering applied.  Also in 0.7.10.
[ticket:2620]
2012-12-06 19:30:49 -05:00
Mike Bayer 8f55656186 merge dance 2012-12-06 19:14:39 -05:00
Mike Bayer af1a545bdd Repaired the usage of `.prepare()` in conjunction with
cx_Oracle so that a return value of ``False`` will result
in no call to ``connection.commit()``, hence avoiding
"no transaction" errors.   Two-phase transactions have
now been shown to work in a rudimental fashion with
SQLAlchemy and cx_oracle, however are subject to caveats
observed with the driver; check the documentation
for details.  Also in 0.7.10.
[ticket:2611]
2012-12-06 19:10:06 -05:00
Diana Clarke 54f45deb97 fixing broken links (see #2625) 2012-12-06 00:00:17 -05:00
Diana Clarke 73f25332b9 fixing broken links (see #2625) 2012-12-05 23:19:24 -05:00
Idan Kamara d57c1c2ddd compiler: add support for multirow inserts
Some databases support this syntax for inserts:

INSERT INTO table (id, name) VALUES
('v1', 'v2'),
('v3', 'v4');

which greatly increases INSERT speed.

It is now possible to pass a list of lists/tuples/dictionaries as
the values param to the Insert construct. We convert it to a flat
dictionary so we can continue using bind params. The above query
will be converted to:

INSERT INTO table (id, name) VALUES
(:id, :name),
(:id0, :name0);

Currently only supported on postgresql, mysql and sqlite.
2012-12-06 00:11:52 +02:00
Idan Kamara 51839352a4 compiler: adjust _get_colparams to return the columns and parameters in separate lists 2012-12-05 23:45:49 +02:00
Idan Kamara 20dd73f575 updatebase: add support for multi parameters 2012-12-06 00:12:16 +02:00
Mike Bayer 850fb33094 changelog 2012-12-03 19:59:05 -05:00
Mike Bayer 69e967e3c3 merge decimal thing 2012-12-03 19:57:28 -05:00
Mike Bayer d89d71d1da The :class:.MutableComposite type did not allow for the
:meth:`.MutableBase.coerce` method to be used, even though
the code seemed to indicate this intent, so this now works
and a brief example is added.  As a side-effect,
the mechanics of this event handler have been changed so that
new :class:`.MutableComposite` types no longer add per-type
global event handlers.  Also in 0.7.10

[ticket:2624]
2012-12-03 19:49:42 -05:00
Mike Bayer c333b68071 whitespace 2012-12-03 19:49:05 -05:00
Mike Bayer dda33be687 cleanup 2012-12-03 19:01:25 -05:00
Diana Clarke e99f8be371 visit_DECIMAL should include precision and scale (when provided) just like visit_NUMERIC see #2618 2012-12-03 07:40:00 -05:00
Mike Bayer 4950b85e83 - BinaryExpression now keeps track of "left" and "right" as passed in,
so that they can be compared in ``__nonzero__`` prior to their
self_group() step.  [ticket:2621]
2012-12-02 12:37:52 -05:00