| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
assisting with alembic installations that have upgraded and are dealing with
PG index/unique constraint 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.
|
| |
|
|
|
|
|
|
|
|
| |
when using the pypostgresql adapter, which returns these values
as lists vs. psycopg2's return type of string.
[ticket:2855]
Conflicts:
doc/build/changelog/changelog_09.rst
lib/sqlalchemy/__init__.py
|
| | |
|
| |
|
|
|
|
| |
server default for a column; this code was original from
PG system views which truncated the string for readability.
[ticket:2844]
|
| |
|
|
|
| |
rendered in the column list of a CREATE INDEX statement.
[ticket:2742]
|
| |
|
|
|
|
|
|
|
|
|
| |
mssql to ensure that any literal SQL expression values are
rendered directly as literals, instead of as bound parameters,
within a CREATE INDEX statement. [ticket:2742]
- don't need expression_as_ddl(); literal_binds and include_table
take care of this functionality.
Conflicts:
lib/sqlalchemy/sql/util.py
|
| |
|
|
| |
- use match with a .* preceding instead of search
|
| |
|
|
| |
re.match to re.search
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Postgresql dialect to no longer inject a hardcoded ``::timestamp``
or similar cast into the given expression, as this interfered
with types such as timezone-aware datetimes, but also
does not appear to be at all necessary with modern versions
of psycopg2. Also in 0.8.2.
[ticket:2740]
Conflicts:
doc/build/changelog/changelog_09.rst
|
| |
|
|
|
|
|
|
|
|
|
| |
backslashed quotes would not be escaped correctly when
using the "non native" (i.e. non-psycopg2) means
of translating HSTORE data. Patch courtesy Ryan Kelly.
[ticket:2766]
Conflicts:
doc/build/changelog/changelog_09.rst
lib/sqlalchemy/dialects/postgresql/hstore.py
|
| | |
|
| |
|
|
| |
Fix indexes reflection in PostgreSQL
|
| | |
|
| | |
|
| |
|
|
| |
- some whitespace
|
| |
|
|
| |
Support for Postgres range types.
|
| | |
|
| |
|
|
|
|
|
| |
- docs
Conflicts:
doc/build/changelog/changelog_09.rst
|
| |
|
|
| |
Add AUTOCOMMIT isolation level support for psycopg2
|
| | |
|
| |
|
|
| |
- fix test
|
| | |
|
| |
|
|
|
| |
add unicode encoding for py2k for the non-native hstore, pullreq for
native psycopg2 support coming....
|
| |
|
|
| |
since Py3K strings have __iter__
|
| |
|
|
| |
false positives for SQL statements containing certain text
|
| |
|
|
|
|
|
|
| |
to check for all the various "disconnect" messages within
the full exception hierarchy. Specifically the
"closed the connection unexpectedly" message has now been
seen in at least three different exception types.
[ticket:2712]
|
| | |
|
| |
|
|
| |
unconditonally instead so that it works in all cases.
|
| |
|
|
|
|
|
|
|
|
| |
input types of sets, generators, etc. but only when a dimension
is specified for the ARRAY; otherwise, the dialect
needs to peek inside of "arr[0]" to guess how many
dimensions are in use. If this occurs with a non
list/tuple type, the error message is now informative
and directs to specify a dimension for the ARRAY.
[ticket:2681]
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
function syntax, renders as "SUBSTRING(x FROM y FOR z)"
when regular ``func.substring()`` is used.
Also in 0.7.11. Courtesy Gunnlaugur Por Briem.
[ticket:2676]
|
| |
|
|
|
|
| |
- other cleanup
- don't need compat.decimal, that approach never panned out. hopefully
outside libs aren't pulling it in, they shouldn't be
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
functions, in addition to straight columns. Common modifiers
include using ``somecolumn.desc()`` for a descending index and
``func.lower(somecolumn)`` for a case-insensitive index, depending on the
capabilities of the target backend.
[ticket:695]
|
| |
|
|
|
| |
inside of an :func:`.expression.insert` construct would produce an
error regarding a parameter issue in the ``self_group()`` method.
|
| | |
|
| |
|
|
|
| |
an INSERT that's used in executemany() as opposed to one which has a VALUES
clause with multiple entries.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
- don't need a custom exception here, just use ValueError
|
| | |
|
| | |
|