summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/compiler.py
Commit message (Collapse)AuthorAgeFilesLines
...
* - removed regular expression step from most statement compilations.Mike Bayer2007-10-271-37/+27
| | | | | | also fixes [ticket:833] - inlining on PG with_returning() call - extra options added for profiling
* Added support for dialects that have both sequences and autoincrementing PKs.Jason Kirtland2007-10-231-3/+9
|
* - Fixed SQL compiler's awareness of top-level column labels as usedMike Bayer2007-10-161-2/+2
| | | | | | | | | | 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.
* Fix broken update/delete queries on MSSQL when tables have a schemaPaul Johnston2007-10-121-2/+3
|
* - Cleaned up visit_insert a bit, inserts are ~3% faster now.Jason Kirtland2007-10-081-4/+7
|
* - fix to anonymous label generation of long table/column names [ticket:806]Mike Bayer2007-10-071-1/+1
|
* removed unused _fold_identifier_case methodMike Bayer2007-10-021-12/+0
|
* - The IdentifierPreprarer's _requires_quotes test is now regex based.Jason Kirtland2007-09-271-9/+7
| | | | | | 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.
* - added "schema" argument to Sequence; use this with Postgres /Oracle when ↵Mike Bayer2007-09-221-2/+5
| | | | | | the sequence is located in an alternate schema. Implements part of [ticket:584], should fix [ticket:761].
* - column defaults and onupdates, executing inline, will add parenthesisMike Bayer2007-09-061-2/+2
| | | | for subqueries and other parenthesis-requiring expressions
* remove unused methodMike Bayer2007-09-041-6/+0
|
* - took out method calls for oid_columnMike Bayer2007-09-041-3/+3
| | | | | | - 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).
* - removed "parameters" argument from clauseelement.compile(), replaced withMike Bayer2007-09-041-16/+10
| | | | | | | | "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.
* factored out uses_sequences_for_inserts() intoMike Bayer2007-09-011-4/+1
| | | | preexecute_sequence dialect attribute
* - got all examples workingMike Bayer2007-09-011-18/+12
| | | | | | | - inline default execution occurs for *all* non-PK columns unconditionally - preexecute only for non-executemany PK cols on PG, Oracle, etc. - new default docs
* whats a big commit without some errant print statements ? :)Mike Bayer2007-09-011-1/+0
|
* - merged inline inserts branchMike Bayer2007-09-011-52/+56
| | | | | | | | | | | | - 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
* Inlined ClauseParameters.set_parameter (simple assignment) in construct_paramsJason Kirtland2007-08-211-2/+3
| | | | Big drop in function count for inserts (22%) with about a 3% wall clock improvement.
* tweak that construct_params optimization, one of the adjustments wasn't neededJason Kirtland2007-08-211-4/+1
|
* A couple critical path optimizationsJason Kirtland2007-08-211-5/+10
| | | | (some sql operations faster by nearly 10% wallclock, general orm around 3%)
* - method call removalMike Bayer2007-08-201-55/+43
|
* an early out processing insert/update column parameters was a bit too early.Ants Aasma2007-08-191-5/+5
|
* light docstring tweaks to the poolJason Kirtland2007-08-191-1/+1
| | | | more pedantic DBAPI -> DB-API changes in docstrings
* 1. Module layout. sql.py and related move into a package called "sql".Mike Bayer2007-08-181-0/+1114
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