summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | - ensure literal_binds works with LIMIT clause, FOR UPDATEMike Bayer2014-09-0310-29/+48
| | | | | | | |
| * | | | | | | - The hostname-based connection format for SQL Server when usingMike Bayer2014-09-035-64/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pyodbc will no longer specify a default "driver name", and a warning is emitted if this is missing. The optimal driver name for SQL Server changes frequently and is per-platform, so hostname based connections need to specify this. DSN-based connections are preferred. fixes #3182
* | | | | | | | - large resultsetsMike Bayer2014-09-034-20/+337
| | | | | | | |
* | | | | | | | - wipMike Bayer2014-09-032-27/+194
| | | | | | | |
* | | | | | | | - lets start exampling this stuffMike Bayer2014-09-022-0/+148
| | | | | | | |
* | | | | | | | - add options to get back pk defaults for inserts.Mike Bayer2014-09-022-18/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | times spent start getting barely different...
* | | | | | | | Merge branch 'master' into ticket_3100Mike Bayer2014-09-0284-2681/+5264
|\ \ \ \ \ \ \ \ | |/ / / / / / /
| * | | | | | | - default dialect, plus test against the default dialect...Mike Bayer2014-09-021-1/+1
| | | | | | | |
| * | | | | | | - An adjustment to table/index reflection such that if an indexMike Bayer2014-09-023-8/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | reports a column that isn't found to be present in the table, a warning is emitted and the column is skipped. This can occur for some special system column situations as has been observed with Oracle. fixes #3180
| * | | | | | | default dialectMike Bayer2014-09-021-0/+2
| | | | | | | |
| * | | | | | | - add logic to compiler such that if stack is empty, we justMike Bayer2014-09-025-3/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | stringify a _label_reference() as is. - add .key to _label_reference(), so that when _make_proxy() is called, we don't call str() on it anyway. - add a test to exercise Query's behavior of adding all the order_by expressions to the columns list of the select, assert that things work out when we have a _label_reference there, that it gets sucked into the columns list and spit out on the other side, it's referred to appropriately, etc. _label_reference() could theoretically be resolved at the point we iterate _raw_columns() but it's better to just let things work as they already do (except nicer, since we get "tablename.colname" instead of just "somename" in the columns list) so that we aren't adding a ton of overhead to _columns_plus_names in the common case.
| * | | | | | | - reorganizeMike Bayer2014-09-011-434/+436
| | | | | | | |
| * | | | | | | - The :func:`~.expression.column` and :func:`~.expression.table`Mike Bayer2014-09-0133-200/+779
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | constructs are now importable from the "from sqlalchemy" namespace, just like every other Core construct. - The implicit conversion of strings to :func:`.text` constructs when passed to most builder methods of :func:`.select` as well as :class:`.Query` now emits a warning with just the plain string sent. The textual conversion still proceeds normally, however. The only method that accepts a string without a warning are the "label reference" methods like order_by(), group_by(); these functions will now at compile time attempt to resolve a single string argument to a column or label expression present in the selectable; if none is located, the expression still renders, but you get the warning again. The rationale here is that the implicit conversion from string to text is more unexpected than not these days, and it is better that the user send more direction to the Core / ORM when passing a raw string as to what direction should be taken. Core/ORM tutorials have been updated to go more in depth as to how text is handled. fixes #2992
| * | | | | | | - more updates to text docs, literal_column, column etc. in prepMike Bayer2014-09-013-41/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for ticket 2992.
| * | | | | | | - walk back these literal SQL lectures into something much more succinct.Mike Bayer2014-08-312-100/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the ORM one in particular was really long winded and I don't really care if people use text() anyway, they'll figure it out ;)
| * | | | | | | - improve from_statement() docMike Bayer2014-08-311-3/+9
| | | | | | | |
| * | | | | | | - optional 'b' here for py3kMike Bayer2014-08-311-1/+1
| | | | | | | |
| * | | | | | | - refine this a bit to better check for exception typeMike Bayer2014-08-311-7/+8
| | | | | | | |
| * | | | | | | - these tests were squashing deprecation warnings all along...Mike Bayer2014-08-311-5/+8
| | | | | | | |
| * | | | | | | - A new style of warning can be emitted which will "filter" up toMike Bayer2014-08-3117-132/+226
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | N occurrences of a parameterized string. This allows parameterized warnings that can refer to their arguments to be delivered a fixed number of times until allowing Python warning filters to squelch them, and prevents memory from growing unbounded within Python's warning registries. fixes #3178
| * | | | | | | - updated callcountsMike Bayer2014-08-311-4/+4
| | | | | | | |
| * | | | | | | - start encouraging the use of text() for injection of string-based SQLMike Bayer2014-08-312-15/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rather than straight strings. reference #2992
| * | | | | | | - alter the yield_per eager restriction such that joined many-to-one loadsMike Bayer2014-08-305-20/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | are still OK, since these should be fine.
| * | | | | | | - continue moving things out that don't need to be thereMike Bayer2014-08-302-68/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - an existing state shouldn't need its load_options/load_path updated; it should maintain those from its original Query source. there's no tests that check this behavior
| * | | | | | | - clean up zoomark a little and try to get new profiles writtenMike Bayer2014-08-304-14/+21
| | | | | | | |
| * | | | | | | - do the polymorphic thing as a decorator so it's out of the way otherwiseMike Bayer2014-08-291-31/+22
| | | | | | | |
| * | | | | | | - bump callcounts downMike Bayer2014-08-291-5/+105
| | | | | | | |
| * | | | | | | - pull out populators back into separate functions, though still very inlinedMike Bayer2014-08-291-82/+114
| | | | | | | |
| * | | | | | | - further move things vertically, at which point things are inlined enoughMike Bayer2014-08-291-51/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that I'd like to start de-inlining again in the hopes of making this readable.
| * | | | | | | - need to use safe_discard() at least in _restore_snapshot(), let's use itMike Bayer2014-08-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | everywhere in Session since the optimized one only applies to loading
| * | | | | | | - use default dialect for compile test hereMike Bayer2014-08-291-1/+2
| | | | | | | |
| * | | | | | | - defaultdict benchmarks faster than a namedtuple; OKMike Bayer2014-08-294-108/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - inline the column-based expiration operations as well
| * | | | | | | - reorganize how create_row_processor() communicates up toMike Bayer2014-08-293-82/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | instances(), using a named tuple it can assign to directly. this way we never have to worry about that structure changing anymore, though we are still having it append (key, fn) which is kind of awkward. - inline _populators() into instance(), it's a little verbose but saves an fn call
| * | | | | | | - re-establish and test some behavior from previous versions, thatMike Bayer2014-08-292-11/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | if a load() or refresh() event changes history (which...why...but anyway) the state of the object is the same; currently it seems that history gets reset but on a refresh, the object still goes into session.dirty - simplify what we store in partials
| * | | | | | | - The :class:`.Query` will raise an exception when :meth:`.Query.yield_per`Mike Bayer2014-08-295-4/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is used with mappings or options where eager loading, either joined or subquery, would take place. These loading strategies are not currently compatible with yield_per, so by raising this error, the method is safer to use - combine with sending False to :meth:`.Query.enable_eagerloads` to disable the eager loaders.
| * | | | | | | - we've got 25% improvement so let's talk about itMike Bayer2014-08-291-0/+48
| | | | | | | |
| * | | | | | | - add some more docs to yield_perMike Bayer2014-08-291-18/+38
| | | | | | | |
| * | | | | | | - use a faster discard when loadingMike Bayer2014-08-293-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - don't do a bool on identity map since it calls __len__
| * | | | | | | - inline the commit of partials tooMike Bayer2014-08-291-3/+3
| | | | | | | |
| * | | | | | | - Changed the approach by which the "single inheritance criterion"Mike Bayer2014-08-294-4/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is applied, when using :meth:`.Query.from_self`, or its common user :meth:`.Query.count`. The criteria to limit rows to those with a certain type is now indicated on the inside subquery, not the outside one, so that even if the "type" column is not available in the columns clause, we can filter on it on the "inner" query. fixes #3177
| * | | | | | | - dropping callcountsMike Bayer2014-08-291-6/+98
| | | | | | | |
| * | | | | | | inlines galoreMike Bayer2014-08-291-34/+32
| | | | | | | |
| * | | | | | | - major refactoring/inlining to loader.instances(), though not reallyMike Bayer2014-08-2817-544/+289
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | any speed improvements :(. code is in a much better place to be run into C, however - The ``proc()`` callable passed to the ``create_row_processor()`` method of custom :class:`.Bundle` classes now accepts only a single "row" argument. - Deprecated event hooks removed: ``populate_instance``, ``create_instance``, ``translate_row``, ``append_result`` - the getter() idea is somewhat restored; see ref #3175
| * | | | | | | - Made a small adjustment to the mechanics of lazy loading,Mike Bayer2014-08-284-3/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | such that it has less chance of interfering with a joinload() in the very rare circumstance that an object points to itself; in this scenario, the object refers to itself while loading its attributes which can cause a mixup between loaders. The use case of "object points to itself" is not fully supported, but the fix also removes some overhead so for now is part of testing. fixes #3145
| * | | | | | | - flake8Mike Bayer2014-08-281-212/+298
| | | | | | | |
| * | | | | | | - this is small optimization, currently it's the best we can doMike Bayer2014-08-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for #3175. fixes #3175 (for now)
| * | | | | | | - A new implementation for :class:`.KeyedTuple` used by theMike Bayer2014-08-287-46/+166
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | :class:`.Query` object offers dramatic speed improvements when fetching large numbers of column-oriented rows. fixes #3176
| * | | | | | | - The behavior of :paramref:`.joinedload.innerjoin` as well asMike Bayer2014-08-266-51/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | :paramref:`.relationship.innerjoin` is now to use "nested" inner joins, that is, right-nested, as the default behavior when an inner join joined eager load is chained to an outer join eager load. fixes #3008
| * | | | | | | - hard-won pep8 formatting of one of the giants...Mike Bayer2014-08-261-1013/+1476
| | | | | | | |
| * | | | | | | - updates to migration / changelog for 1.0Mike Bayer2014-08-264-26/+165
| | |_|_|/ / / | |/| | | | |