| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
also fixes [ticket:833]
- inlining on PG with_returning() call
- extra options added for profiling
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Any out-of-tree dialects that provide custom sets of legal_characters
or illegal_initial_characters will need to move to regexes or override
_requires_quotes.
|
|
|
|
|
|
| |
the sequence is
located in an alternate schema. Implements part of [ticket:584], should fix [ticket:761].
|
|
|
|
| |
for subqueries and other parenthesis-requiring expressions
|
| |
|
|
|
|
|
|
| |
- reduced complexity of parameter handling during execution; __distill_params does all
parameter munging, executioncontext.parameters always holds a list of parameter structures
(lists, tuples, or dicts).
|
|
|
|
|
|
|
|
| |
"column_keys". the parameters sent to execute() only interact with the
insert/update statement compilation process in terms of the column names
present but not the values for those columns.
produces more consistent execute/executemany behavior, simplifies things a
bit internally.
|
|
|
|
| |
preexecute_sequence dialect attribute
|
|
|
|
|
|
|
| |
- inline default execution occurs for *all* non-PK columns
unconditionally - preexecute only for non-executemany PK cols on
PG, Oracle, etc.
- new default docs
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- all executemany() style calls put all sequences and SQL defaults inline into a single SQL statement
and don't do any pre-execution
- regular Insert and Update objects can have inline=True, forcing all executions to be inlined.
- no last_inserted_ids(), lastrow_has_defaults() available with inline execution
- calculation of pre/post execute pushed into compiler; DefaultExecutionContext greatly simplified
- fixed postgres reflection of primary key columns with no sequence/default generator, sets autoincrement=False
- fixed postgres executemany() behavior regarding sequences present, not present, passivedefaults, etc.
- all tests pass for sqlite, mysql, postgres; oracle tests pass as well as they did previously including all
insert/update/default functionality
|
|
|
|
| |
Big drop in function count for inserts (22%) with about a 3% wall clock improvement.
|
| |
|
|
|
|
| |
(some sql operations faster by nearly 10% wallclock, general orm around 3%)
|
| |
|
| |
|
|
|
|
| |
more pedantic DBAPI -> DB-API changes in docstrings
|
|
2. compiler names changed to be less verbose, unused classes removed.
3. Methods on Dialect which return compilers, schema generators, identifier preparers
have changed to direct class references, typically on the Dialect class itself
or optionally as attributes on an individual Dialect instance if conditional behavior is needed.
This takes away the need for Dialect subclasses to know how to instantiate these
objects, and also reduces method overhead by one call for each one.
4. as a result of 3., some internal signatures have changed for things like compiler() (now statement_compiler()), preparer(), etc., mostly in that the dialect needs to be passed explicitly as the first argument (since they are just class references now). The compiler() method on Engine and Connection is now also named statement_compiler(), but as before does not take the dialect as an argument.
5. changed _process_row function on RowProxy to be a class reference, cuts out 50K method calls from insertspeed.py
|