Commit Graph

10240 Commits

Author SHA1 Message Date
Peter Demin f8eb7c2858 Update base.py
Docstring typo keysowrds => keywords
2015-10-07 11:38:48 -04:00
Mike Bayer 414af7b612 - The system by which a :class:.Column considers itself to be an
"auto increment" column has been changed, such that autoincrement
is no longer implicitly enabled for a :class:`.Table` that has a
composite primary key.  In order to accommodate being able to enable
autoincrement for a composite PK member column while at the same time
maintaining SQLAlchemy's long standing behavior of enabling
implicit autoincrement for a single integer primary key, a third
state has been added to the :paramref:`.Column.autoincrement` parameter
``"auto"``, which is now the default. fixes #3216
- The MySQL dialect no longer generates an extra "KEY" directive when
generating CREATE TABLE DDL for a table using InnoDB with a
composite primary key with AUTO_INCREMENT on a column that isn't the
first column;  to overcome InnoDB's limitation here, the PRIMARY KEY
constraint is now generated with the AUTO_INCREMENT column placed
first in the list of columns.
2015-10-07 10:02:45 -04:00
Mike Bayer 4578ab54a5 - Fixed bug in Oracle dialect where reflection of tables and other
symbols with names quoted to force all-lower-case would not be
identified properly in reflection queries.  The :class:`.quoted_name`
construct is now applied to incoming symbol names that detect as
forced into all-lower-case within the "name normalize" process.
fixes #3548
2015-10-05 09:49:34 -04:00
Mike Bayer d84dea62de - add an additional note regarding select_from, fixes #3546 2015-10-02 11:23:50 -04:00
Mike Bayer ac08920284 - remove ambiguous use of the phrase "joined together by AND" as this
may be construed as the Python "and" keyword
- add notes to ORM tutorial for beginners that Python "and" keyword
is not to be used
fixes #3545
2015-10-01 09:38:22 -04:00
Mike Bayer 7393ee8d4f - bzzt, fix the base _post_configure_engine() call to not fail 2015-09-29 11:33:45 -04:00
Mike Bayer 5bb2536cc5 - limit the search for schemas to not include "temp", which is sort of an implicit schema
- repair the CREATE INDEX ddl for schemas
- update provisioning to include support for setting up ATTACH DATABASE up front
for the test_schema; enable "schemas" testing for SQLite
- changelog / migration notes for new SQLite schema support
- include the "schema" as the "remote_schema" when we reflect SQLite FKs
2015-09-28 17:48:55 -04:00
Mike Bayer e4d445c6f5 Merge remote-tracking branch 'origin/pr/198' into pr198 2015-09-28 15:40:39 -04:00
Eric Siegerman febe0c0faa Doc fix 2015-09-28 12:12:27 -04:00
Eric Siegerman 2e5e6ff96c Remplement Query.one() in terms of .one_or_none()
Thanks to Mike Bayer for suggesting a simpler refactoring.
2015-09-28 12:08:19 -04:00
Mike Bayer 1704eacf24 - fix bool test 2015-09-27 12:13:06 -04:00
Mike Bayer a8e1d33ae5 - break out critical aspects of test_query into their own tests
finally, test_resultset and test_insert_exec.   Update all
idioms within these.
2015-09-27 12:09:24 -04:00
Eric Siegerman 91255618dd Fix sqlalchemy.ext.baked.Result.one_or_none() exception message
Also add a couple of missing tests.
2015-09-24 15:25:15 -04:00
Mike Bayer 5b71858533 - replicate Query.one_or_none to BakedQuery
- changelog / version note finishing
2015-09-24 13:52:25 -04:00
Eric Siegerman a9b5fb3f49 Add Query.one_or_none() 2015-09-24 13:22:45 -04:00
Eric Siegerman 0854f82993 Add a lot more detail
(cherry picked from commit 5db5e18d3b)
2015-09-23 17:05:20 -04:00
Eric Siegerman f29be1e6f7 Add some markup
(cherry picked from commit 81eefe038e)
2015-09-23 17:05:14 -04:00
Eric Siegerman 1195155937 A few minor rewordings
(cherry picked from commit ea084bdc65)
2015-09-23 17:05:06 -04:00
Mike Bayer 47fcb1d0b6 - Fixed rare TypeError which could occur when stringifying certain
kinds of internal column loader options within internal logging.
fixes #3539
2015-09-23 16:40:16 -04:00
Mike Bayer 3dfcb10bef - The `legacy_schema_aliasing` flag, introduced in version 1.0.5
as part of 🎫`3424` to allow disabling of the MSSQL dialect's
attempts to create aliases for schema-qualified tables, now defaults
to False; the old behavior is now disabled unless explicitly turned on.
fixes #3434
2015-09-19 18:06:23 -04:00
Mike Bayer 80aeba3d5e - Added a new type-level modifier :meth:.TypeEngine.evaluates_none
which indicates to the ORM that a positive set of None should be
persisted as the value NULL, instead of omitting the column from
the INSERT statement.  This feature is used both as part of the
implementation for 🎫`3514` as well as a standalone feature
available on any type.  fixes #3250
- add new documentation section illustrating the "how to force null"
 use case of #3250
- alter our change from #3514 so that the class-level flag is now
called "should_evaluate_none"; so that "evaluates_none" is now
a generative method.
2015-09-19 16:27:51 -04:00
Mike Bayer 371f1a82c5 - The use of a :class:.postgresql.ARRAY object that refers
to a :class:`.types.Enum` or :class:`.postgresql.ENUM` subtype
will now emit the expected "CREATE TYPE" and "DROP TYPE" DDL when
the type is used within a "CREATE TABLE" or "DROP TABLE".
fixes #2729
2015-09-19 11:58:50 -04:00
Mike Bayer 53defccab7 - fixes for the ORM side test for #3531. 2015-09-17 10:18:57 -04:00
Mike Bayer 24a7241b5e - The :func:.type_coerce construct is now a fully fledged Core
expression element which is late-evaluated at compile time.  Previously,
the function was only a conversion function which would handle different
expression inputs by returning either a :class:`.Label` of a column-oriented
expression or a copy of a given :class:`.BindParameter` object,
which in particular prevented the operation from being logically
maintained when an ORM-level expression transformation would convert
a column to a bound parameter (e.g. for lazy loading).
fixes #3531
2015-09-16 18:46:53 -04:00
Mike Bayer 7eb34baf99 - fix incorrect example in inheritance docs 2015-09-15 11:17:13 -04:00
Mike Bayer fe41e39b9b - add new entry for sharing of Engine across process boundaries 2015-09-14 11:02:43 -04:00
Mike Bayer ad28e228e3 - call it deque, since you can really pop from either side 2015-09-10 10:28:42 -04:00
Mike Bayer 03797b7847 - add a new FAQ recipe for "walk all objects", replacing the need
to use mapper.cascade_iterator() for this purpose as it was not really
designed for that use case.  Add docs to cascade_iterator() pointing
to the recipe.  fixes #3498
2015-09-10 10:00:46 -04:00
Jason Myers db824b5353 Correcting the Hybrid Property Example
Fixes #3528

Signed-off-by: Jason Myers <jason@jasonamyers.com>
2015-09-10 08:23:54 -05:00
Brian Van Klaveren 4d53b31247 Support get_schema_names for SQLite
Should return "main" and the names of attached databases.
2015-09-09 14:23:27 -07:00
Brian Van Klaveren 8174e7236b Support get_schema_names for SQLite 2015-09-09 14:03:14 -07:00
Mike Bayer be548690c7 - profile update 2015-09-08 18:15:12 -04:00
Mike Bayer f5b13797a6 Merged in bsmithgall/sqlalchemy/event-doc-link-fix (pull request #60)
fix typo in session events docs
2015-09-08 18:10:51 -04:00
mike bayer 74781d8532 Merge pull request #197 from davidjb/master
Minor grammar fix for capitalisation in session docs
2015-09-08 18:09:06 -04:00
Mike Bayer 0997e843f2 - Internal calls to "bookkeeping" functions within
:meth:`.Session.bulk_save_objects` and related bulk methods have
been scaled back to the extent that this functionality is not
currently used, e.g. checks for column default values to be
fetched after an INSERT or UPDATE statement.
fixes #3526
2015-09-08 14:12:32 -04:00
Mike Bayer 68a6701c6d - Fixed bug in :meth:.Session.bulk_save_objects where a mapped
column that had some kind of "fetch on update" value and was not
locally present in the given object would cause an AttributeError
within the operation.
fixes #3525
2015-09-08 13:00:26 -04:00
bsmithgall 2fb3bb31ef fix typo in session events docs 2015-09-07 21:37:19 -04:00
Mike Bayer 176ac6ab09 - update moved link, fixes #3351 2015-09-03 16:42:43 -04:00
Mike Bayer 67a42103d9 - rewrite some profiles that went *down*! woop 2015-09-03 14:39:32 -04:00
Mike Bayer 7699bd733b - reduce some callcounts within the new events 2015-09-03 11:11:25 -04:00
Mike Bayer 606135dd98 Merge branch 'ticket_2677' 2015-09-02 17:55:26 -04:00
Mike Bayer 108c60f460 - The :class:.SessionEvents suite now includes events to allow
unambiguous tracking of all object lifecycle state transitions
in terms of the :class:`.Session` itself, e.g. pending,
transient,  persistent, detached.   The state of the object
within each event is also defined.
fixes #2677
- Added a new session lifecycle state :term:`deleted`.  This new state
represents an object that has been deleted from the :term:`persistent`
state and will move to the :term:`detached` state once the transaction
is committed.  This resolves the long-standing issue that objects
which were deleted existed in a gray area between persistent and
detached.   The :attr:`.InstanceState.persistent` accessor will
**no longer** report on a deleted object as persistent; the
:attr:`.InstanceState.deleted` accessor will instead be True for
these objects, until they become detached.
- The :paramref:`.Session.weak_identity_map` parameter is deprecated.
See the new recipe at :ref:`session_referencing_behavior` for
an event-based approach to maintaining strong identity map behavior.
references #3517
2015-09-02 17:55:15 -04:00
Mike Bayer 8be93c23ee - add new documentation that applies to all modern SQLA versions,
detailing ORM event recipes across the board.
2015-09-02 11:58:59 -04:00
Mike Bayer 6d0c0994e9 - add a note about DISTINCT in query w/ ORDER BY, references #3518 2015-08-31 13:13:04 -04:00
Mike Bayer c39ff9978d - Fixed regression in 1.0-released default-processor for multi-VALUES
insert statement, 🎫`3288`, where the column type for the
default-holding column would not be propagated to the compiled
statement in the case where the default was being used,
leading to bind-level type handlers not being invoked.
fixes #3520
2015-08-31 11:30:03 -04:00
David\ Beitey 3bd58fac7b Minor grammar fix for capitalisation in session docs 2015-08-28 13:57:54 +10:00
Mike Bayer 956907a4b1 - use consistent and descriptive language in all cases
where we refer to the "weak_identity_map" option, and add additional
exposition in the session documentation which refers to it.
fixes #3517
2015-08-27 23:38:14 -04:00
Mike Bayer ed535649d4 - The :class:.TypeDecorator type extender will now work in conjunction
with a :class:`.SchemaType` implementation, typically :class:`.Enum`
or :class:`.Boolean` with regards to ensuring that the per-table
events are propagated from the implementation type to the outer type.
These events are used
to ensure that the constraints or Postgresql types (e.g. ENUM)
are correctly created (and possibly dropped) along with the parent
table.
fixes #2919
2015-08-27 18:04:25 -04:00
Mike Bayer d459afa8db - reword and update documentation on passive_updates=False; as virtually
all DBs now support ON UPDATE CASCADE other than Oracle, there's no need
to try to reimplement more functionality here and users should be encouraged
to forego natural PKs unless their target platform supports them.
references #2666
2015-08-27 15:56:00 -04:00
Mike Bayer 410be197ef - add a postgresql-specific form of array_agg() that injects the
ARRAY type, references #3132
2015-08-27 11:22:05 -04:00