| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
See README.unittests for information on how to run
the tests. [ticket:970]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Removed an obscure feature of execute() (including connection,
engine, Session) whereby a bindparam() construct can be sent as
a key to the params dictionary. This usage is undocumented
and is at the core of an issue whereby the bindparam() object
created implicitly by a text() construct may have the same
hash value as a string placed in the params dictionary and
may result in an inappropriate match when computing the final
bind parameters. Internal checks for this condition would
add significant latency to the critical task of parameter
rendering, so the behavior is removed. This is a backwards
incompatible change for any application that may have been
using this feature, however the feature has never been
documented.
|
| |
|
|
|
|
|
|
| |
names" functionality. [ticket:1284]
- Still doesn't work for PG/MySQL, which unfortunately would require
post_process_text() calls all over the place. Perhaps % escaping
can be assembled into IdentifierPreparer.quote() since that's where
identifier names are received.
|
| |
|
|
|
|
| |
names from [ticket:1256]. Added more tests. MySQL and
Postgres dialects still do not issue correct CREATE TABLE
statements for identifiers with percent signs in them.
|
| |
|
|
|
|
|
| |
to "%%".
Because of the backwards incompatible nature of this change,
a warning is emitted if '%%' is detected in the string. [ticket:1267]
|
| |
|
|
| |
sent to connection.execute() and friends. [ticket:935]
|
| |
|
|
|
|
| |
Includes simplifying the IDENTITY handling and the exception handling. Also
includes a cleanup of the connection string handling for pyodbc to favor
the DSN syntax.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a private method. Subclassing Connection
is not needed now that ConnectionProxy
is available.
- tightened the interface for the various _execute_XXX()
methods to reduce ambiguity
- __distill_params() no longer creates artificial [{}] entry,
blank dict is no longer passed through to do_execute()
in any case unless explicitly sent from the outside
as in connection.execute("somestring"), {})
- fixed a few old sql.query tests which were doing that
- removed needless do_execute() from mysql dialect
- fixed charset param not properly being sent to
_compat_fetchone() in mysql
|
| |
|
|
|
| |
This should assist with helping to document the reasons for testing failures.
Currently unspecified failures are defaulted to 'FIXME: unknown'.
|
| |
|
|
| |
a couple of insures that should be ensure.
|
| |
|
|
| |
the IN / NOT IN syntax when using a binary expression with a subquery.
|
| |
|
|
|
| |
- wrote a docstring for oracle dialect, needs formatting perhaps
- made FIRST_ROWS optimization optional based on optimize_limits=True, [ticket:536]
|
| |
|
|
| |
test_in_filtering_advanced test for mssql.
|
| |
|
|
| |
Now results in inequality comparison against self. More portable, but breaks with stored procedures that aren't pure functions.
|
| |
|
|
| |
selects. Even using the case when syntax it's not possible to test truth in this manner.
|
| |
|
|
|
|
|
|
|
|
|
| |
selectable by orm.query (they already had most ColumnElement
semantics).
- Added select_from() method to exists() construct, which becomes
more and more compatible with a regular select().
- Bind parameters/literals given a True/False value will detect
their type as Boolean
|
| |
|
|
|
|
|
|
|
| |
of elements as FROM clauses, allowing them to be used more
effectively in the columns clause of a SELECT.
- and_() and or_() now generate a ColumnElement, allowing
boolean expressions as result columns, i.e.
select([and_(1, 0)]). [ticket:798]
|
| |
|
|
|
|
| |
and instead uses subqueries in conjunction with a special
Oracle optimization comment. Allows LIMIT/OFFSET to work
in conjunction with DISTINCT. [ticket:536]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
own name
and not its contained expression, if the dialect reports true for supports_simple_order_by_label.
the flag is not propagated forwards, meant to closely mimic the syntax Postgres expects which is
that only a simple name can be in the ORDER BY, not a more complex expression or function call
with the label name embedded (mysql and sqlite support more complex expressions).
This further sets the standard for propigation of **kwargs within compiler, that we can't just send
**kwargs along blindly to each XXX.process() call; whenever a **kwarg needs to propagate through,
most methods will have to be aware of it and know when they should send it on forward and when not.
This was actually already the case with result_map as well.
The supports_simple_order_by dialect flag defaults to True but is conservatively explicitly set to
False on all dialects except SQLite/MySQL/Postgres to start.
[ticket:1068]
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
- @unsupported now only accepts a single target and demands a reason
for not running the test.
- @exclude also demands an exclusion reason
- Greatly expanded @testing.requires.<feature>, eliminating many
decorators in the suite and signficantly easing integration of
multi-driver support.
- New ORM test base class, and a featureful base for mapped tests
- Usage of 'global' for shared setup going away, * imports as well
|
| |
|
|
| |
0.4 development continues at /sqlalchemy/branches/rel_0_4
|
| | |
|
| |
|
|
|
| |
column labels would not be accessible using their straight
string name
|
| |
|
|
|
| |
tests extend from either TestBase or ORMTest, using additional mixins for
special assertion methods as needed
|
| |
|
|
| |
- test coverage for same
|
| |
|
|
|
|
| |
- Importing testenv has no side effects- explicit functions provide similar behavior to the old immediate behavior of testbase
- testing.db has the configured db
- Fixed up the perf/* scripts
|
| |
|
|
|
| |
compiles to ILIKE on postgres, lower(x) LIKE lower(y)
on all others [ticket:727]
|
| |
|
|
| |
No surprises.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
the tree can now run the full suite of tests out of the box.
- Migrated most @supported to @fails_on, @fails_on_everything_but, or (last
resort) @unsupported. @fails_on revealed a slew of bogus test skippage,
which was corrected.
- Added @fails_on_everything_but. Yes, the first usage *was*
"fails_on_everything_but('postgres')". How did you guess!
- Migrated @supported in dialect/* to the new test-class attribute __only_on__.
- Test classes can also have __unsupported_on__ and __excluded_on__.
|
| | |
|
| |
|
|
|
|
|
| |
times
in a statement. the collision check is strictly detecting non-unique's that happen to have
the same name.
|
| |
|
|
|
|
|
|
|
|
| |
"unique identifier" mechanisms as everything else. This doesn't affect
user code, except any code that might have been hardcoded against the generated
names. Generated bind params now have the form "<paramname>_<num>",
whereas before only the second bind of the same name would have this form.
- bindparam() objects themselves can be used as keys for execute(), i.e.
statement.execute({bind1:'foo', bind2:'bar'})
|
| |
|
|
|
|
|
| |
- changed the various "literal" generation functions to use an anonymous
bind parameter. not much changes here except their labels now look
like ":param_1", ":param_2" instead of ":literal"
- from_obj keyword argument to select() can be a scalar or a list.
|
| |
|
|
| |
supported.
|
| | |
|
| |
|
|
|
|
| |
when its an alias of a Table; added some test coverage for one particular
case from the doctests
- fixed "having" example in doctests, updated eager load example
|
| | |
|
| |
|
|
|
|
| |
- removed ClauseParameters object; compiled.params returns a regular dictionary
now, as well as result.last_inserted_params()/last_updated_params().
- various code trimming, method removals.
|
| |
|
|
| |
- All optional test Sequences are now optional=True
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
in result-set processing; nested selects which contain the same column
names don't affect the result or conflict with result-column metadata.
- query.get() and related functions (like many-to-one lazyloading)
use compile-time-aliased bind parameter names, to prevent
name conflicts with bind parameters that already exist in the
mapped selectable.
|
| | |
|
| | |
|
| | |
|