| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
type class as an argument which is internally converted to an
instance, using the same convention long established by other
constructs such as :class:`.Column`. fixes #3122
|
|
|
|
| |
to get all flake8 passing
|
|
|
|
| |
implements PG's to_tsquery('regconfig', 'arg') pattern. fixes #3078
|
|
|
|
| |
fixes #3110
|
| |
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
system, whereby using a :class:`.TypeDecorator` in conjunction with
variant would fail with an MRO error when a comparison operator was used.
fixes #3102
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Moved initialization into else block
Conflicts:
lib/sqlalchemy/sql/compiler.py
|
|
|
|
|
| |
UNION would wrap the union in an anonymous (e.g. unlabled) subquery.
fixes #3044
|
|
|
|
|
|
| |
due to repeats would not correctly be rewritten in subqueries.
This would affect SELECT queries with any kind of subquery + join.
fixes #3057
|
|
|
|
|
|
|
| |
:meth:`.Operators.__or__` and :meth:`.Operators.__invert__`
operator overload methods could not be overridden within a custom
:class:`.TypeEngine.Comparator` implementation.
fixes #3012
|
|
|
|
|
|
|
|
|
| |
filter operators section
- add language to MATCH explicitly stating this operator varies by backend and is not available
on SQLite, as the tutorial defaults to SQLite to start with, fix #3059
- on the actual match() documentation fix this up to be more accurate, list some example renderings
for different backends. again mention SQLite not supported
|
|
|
|
| |
- add new FAQ for rendering SQL as a string
|
|
|
|
| |
- implement for SQL server, use window functions when simple limit/offset not available
|
|\
| |
| |
| | |
https://bitbucket.org/dobesv/sqlalchemy/branch/issue_3034 into ticket_3034
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
a BindParameter, instead of _offset and _limit in GenerativeSelect.
|
| |
| |
| |
| | |
on a query.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Removed ungrammatical apostrophes from documentation, replacing
"it's" with "its" where appropriate (but in a few cases with "it is"
when that read better).
While doing that, I also fixed a couple of minor typos etc.
as I noticed them.
|
| |
| |
| |
| |
| |
| |
| | |
would produce an empty WHERE clause when an empty :func:`.and_()`
or :func:`.or_()` or other blank expression were applied. This is
now consistent with that of :func:`.select`.
fixes #3045
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
"SELECT FIRST n ROWS" using a bound parameter (only firebird has both),
combined with column-level subqueries
which also feature "limit" as well as "positional" bound parameters
(e.g. qmark style) would erroneously assign the subquery-level positions
before that of the enclosing SELECT, thus returning parameters which
are out of order. Fixes #3038
|
|/
|
|
| |
Found using: https://github.com/intgr/topy
|
|
|
|
|
|
|
|
|
|
| |
a join condition that is strictly from a single column to itself,
translated through some kind of SQL function or expression. This
is kind of experimental, but the first proof of concept is a
"materialized path" join condition where a path string is compared
to itself using "like". The :meth:`.Operators.like` operator has
also been added to the list of valid operators to use in a primaryjoin
condition. fixes #3029
|
|
|
|
|
|
|
| |
specify a :func:`.text` expression as the target; the index no longer
needs to have a table-bound column present if the index is to be
manually added to the table, either via inline declaration or via
:meth:`.Table.append_constraint`. fixes #3028
|
|
|
|
|
| |
adding an argument for a construct not previously included for any
special arguments would fail. fixes #3024
|
|
|
|
|
|
| |
feature from :ticket:`1068` would not apply quoting rules to the
label name as rendered in the ORDER BY.
fix #3020, re: #1068
|
|
|
|
|
|
| |
``sqlalchemy.sql.expression``
import namespace, which was removed at the beginning of 0.9.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
need to line up
- alter this in the unit tests as well as these queries were just copied from the tests
- remove the included_parts.join(parts) from the core CTE doc (also just copied from the
test, where we want to make sure joins don't get screwed up with the CTE) as it doesn't
contribute to the query itself
fixes #3014
|
|
|
|
| |
- rewrite callcounts for select()
|
|
|
|
|
|
|
| |
the new rules for "where" and "having" woudn't take effect for the
"whereclause" and "having" kw arguments of the :func:`.select` construct,
which is also what :class:`.Query` uses so wasn't working in the
ORM either. fixes #3013 re: #2804
|
|
|
|
|
|
|
| |
renders "BETWEEN SYMMETRIC". Also added a new negation operator
"notbetween_op", which now allows an expression like ``~col.between(x, y)``
to render as "col NOT BETWEEN x AND y", rather than a parentheiszed NOT
string. fixes #2990
|
|
|
|
| |
there are multiple, equivalent foreign keys
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
a table has multiple, composite foreign keys targeting a parent table,
the :paramref:`.relationship.foreign_keys` argument will be properly
interpreted in order to resolve the ambiguity; previously this condition
would raise that there were multiple FK paths when in fact the
foreign_keys argument should be establishing which one is expected.
fixes #2965
|
|\
| |
| |
| | |
into t
|
| |
| |
| |
| |
| |
| |
| |
| | |
If autoloading of a table fails, don't register it in a metadata
instance. It seems that the original behaviour was accidentally
changed in f6198d9abf453182f4b111e0579a7a4ef1614e79, restore it.
Closes issue #2988
|
|/
|
|
|
| |
"true" / "false" or "1" / "0".
- added Boolean tests to the test suite
|
|
|
|
|
|
|
|
| |
mark a constraint name as already having had a naming convention applied.
This token will be used by Alembic migrations as of Alembic 0.6.4
in order to render constraints in migration scripts with names marked
as already having been subject to a naming convention.
re: #2991
|
|
|
|
|
|
| |
apply to :class:`.CheckConstraint` objects that are associated
directly with a :class:`.Column` instead of just on the
:class:`.Table`.
|
|
|
|
|
|
|
|
|
| |
where the name of a check constraint making use of the
`"%(constraint_name)s"` token would get doubled up for the
constraint generated by a boolean or enum type, and overall
duplicate events would cause the `"%(constraint_name)s"` token
to keep compounding itself.
fixes #2991
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is currently being supported in addition to nose, and will likely
be preferred to nose going forward. The nose plugin system used
by SQLAlchemy has been split out so that it works under pytest as
well. There are no plans to drop support for nose at the moment
and we hope that the test suite itself can continue to remain as
agnostic of testing platform as possible. See the file
README.unittests.rst for updated information on running tests
with pytest.
The test plugin system has also been enhanced to support running
tests against mutiple database URLs at once, by specifying the ``--db``
and/or ``--dburi`` flags multiple times. This does not run the entire test
suite for each database, but instead allows test cases that are specific
to certain backends make use of that backend as the test is run.
When using pytest as the test runner, the system will also run
specific test suites multiple times, once for each database, particularly
those tests within the "dialect suite". The plan is that the enhanced
system will also be used by Alembic, and allow Alembic to run
migration operation tests against multiple backends in one run, including
third-party backends not included within Alembic itself.
Third party dialects and extensions are also encouraged to standardize
on SQLAlchemy's test suite as a basis; see the file README.dialects.rst
for background on building out from SQLAlchemy's test platform.
|
|
|
|
|
| |
methods, classes, builtins, functools.partial(), everything known so far
- use get_callable_argspec() within ColumnDefault._maybe_wrap_callable, re: #2979
|
|
|
|
|
|
| |
in particular the logic used to wrap "column default" callables
wouldn't work properly for Python built-ins.
fixes #2979
|
|
|
|
|
|
|
|
|
|
|
| |
the first SQL expression would be applied as the "comparison type"
to a compared tuple value; this has the effect in some cases of an
inappropriate "type coersion" occurring, such as when a tuple that
has a mix of String and Binary values improperly coerces target
values to Binary even though that's not what they are on the left
side. :func:`.tuple_` now expects heterogeneous types within its
list of values.
fixes #2977
|