| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Reflection of unique constraints must preserve the order of columns.
|
|
|
|
|
|
|
| |
If SQLite keywords are used as column names, they are
quoted. The code parsing the information about table
unique constraints should be modified so that it properly
removes double-quotes from column names.
|
|
|
|
|
|
| |
Call eq_() in a loop instead of comparing two lists
directly. This makes it much easier to find out which
element is not equal to the reference value.
|
|
|
|
|
|
|
|
|
| |
called :attr:`.TypeDecorator.coerce_to_is_types`,
to make it easier to control how comparisons using
``==`` or ``!=`` to ``None`` and boolean types goes
about producing an ``IS`` expression, or a plain
equality expression with a bound parameter.
[ticket:2744]
|
| |
|
|
|
|
| |
- some whitespace
|
|\
| |
| | |
Support for Postgres range types.
|
| | |
|
| | |
|
| |
| |
| |
| | |
http://www.postgresql.org/docs/9.2/interactive/functions-range.html
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
passes in AliasedInsp and allows more flexibility.
- rework the AliasedClass/AliasedInsp relationship so that AliasedInsp has
all state and functionality. AliasedClass is just a facade.
[ticket:2756]
|
| |
| |
| |
| | |
- docs
|
|\ \
| | |
| | | |
Add AUTOCOMMIT isolation level support for psycopg2
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
One can use this to emit statements, which can not be
executed within a transaction (e. g. CREATE DATABASE):
from sqlalchemy import create_engine
eng = create_engine('postgresql://test:test@localhost/test')
conn = eng.connect().execution_options(isolation_level='AUTOCOMMIT')
conn.execute('CREATE DATABASE test2;')
Fixes issue #2072.
|
|/ /
| |
| |
| |
| |
| |
| | |
entities against the same base class joined to each other as well
would not track columns on the base table independently of each other if
the string of joins were more than two entities long. Also in 0.8.2.
[ticket:2759]
|
| | |
|
| |
| |
| |
| |
| | |
would produce a parenthesized expression not accepted by some databases.
[ticket:2754]
|
|/
|
|
|
|
| |
the :func:`.aliased` function. Previously, composite attributes
wouldn't work correctly in comparison operations when aliasing
was applied. Also in 0.8.2. [ticket:2755]
|
| |
|
| |
|
|
|
|
|
|
| |
- version (0.9 for now)
- changelog
- move the test into the test suite so that all dialects can take advantage of it
|
|\
| |
| | |
Add basic support of unique constraints reflection
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Inspection API already supports reflection of table
indexes information and those also include unique
constraints (at least for PostgreSQL and MySQL).
But it could be actually useful to distinguish between
indexes and plain unique constraints (though both are
implemented in the same way internally in RDBMS).
This change adds a new method to Inspection API - get_unique_constraints()
and implements it for SQLite, PostgreSQL and MySQL dialects.
|
|/
|
|
|
|
| |
"commit-on-return". This is enabled with the rest of pool
"debug" logging.
[ticket:2752]
|
| |
|
| |
|
|
|
|
| |
- docs docs docs
|
|\
| |
| | |
Makes gaerdbms for App Engine use local MySQL server when running in dev_appserver2
|
| | |
|
| | |
|
| |
| |
| |
| | |
dev_appserver2.
|
| |
| |
| |
| | |
- use an isinstance() check, concerned a TypeError might be indiscriminate
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently, one can specify the prefix length for an index
column using 'mysql_length' keyword argument when creating
an Index instance. But in case of composite indexes the
prefix length value is applied only to the last column.
Extend the existing API in way so that 'mysql_length' argument
value can be either:
- an integer specifying the same prefix length value
for each column of an index
- a (column_name --> integer value) mapping specifying
the prefix length value for each column of an index
separately
Fixes issue #2704.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scalar values, for comparisons to None to also take into account
the association record itself being non-present, in addition to the
existing test for the scalar endpoint on the association record
being NULL. Previously, comparing ``Cls.scalar == None`` would return
records for which ``Cls.associated`` were present and
``Cls.associated.scalar`` is None, but not rows for which
``Cls.associated`` is non-present. More significantly, the
inverse operation ``Cls.scalar != None`` *would* return ``Cls``
rows for which ``Cls.associated`` was non-present.
Additionally, added a special use case where you
can call ``Cls.scalar.has()`` with no arguments,
when ``Cls.scalar`` is a column-based value - this returns whether or
not ``Cls.associated`` has any rows present, regardless of whether
or not ``Cls.associated.scalar`` is NULL or not.
[ticket:2751]
|
|
|
|
|
|
|
|
|
|
|
| |
fetched when joining/joinedloading across a many-to-many
relationship to a single-table-inheriting
subclass with a specific discriminator value, due to "secondary"
rows that would come back. The "secondary" and right-side
tables are now inner joined inside of parenthesis for all
ORM joins on many-to-many relationships so that the left->right
join can accurately filtered.
[ticket:2369]
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
query.join(), but if
you're dealing with aliased() or with_polymorphic() you need to say "flat=True". Just the one
flag though, "flat" implies "aliased".
|
| | |
|
| | |
|
|/
|
|
|
|
|
| |
a CAST call that was added in 0.8.1 to help with driver issues,
which apparently is not compatible on 2000.
The CAST remains in place for SQL Server 2005 and greater.
[ticket:2747]
|
|\
| |
| |
| |
| |
| | |
Conflicts:
test/profiles.txt
test/sql/test_selectable.py
|
| |
| |
| |
| |
| | |
- fix the result map rewriter for col mismatches, since the rewritten
select at the moment typically has more columns than the original
|
| |
| |
| |
| |
| |
| | |
the joins as is, regardless of the dialect not supporting it. use_labels=True
indicates a higher level of automation and also can maintain the labels
between rewritten and not. use_labels=False indicates a manual use case.
|
| | |
|
| | |
|
| |
| |
| |
| | |
workaround
|