positional column targeting
Issue #918
resolved
this would mostly help with things like func.foo(type_=Date).execute(), where theres not very good column name targeting and you cant even get labels in there. defect because the above is impossible to do right now for a DB like oracle. patch which doesnt pass all tests yet attached.
Comments (3)
-
reporter -
reporter - changed status to resolved
- The SQL compiler now generates the mapping of expected columns
such that they are matched to the received result set positionally,
rather than by name. Originally, this was seen as a way to handle
cases where we had columns returned with difficult-to-predict names,
though in modern use that issue has been overcome by anonymous
labeling. In this version, the approach basically reduces function
call count per-result by a few dozen calls, or more for larger
sets of result columns. The approach still degrades into a modern
version of the old approach if textual elements modify the result
map, or if any discrepancy in size exists between
the compiled set of columns versus what was received, so there's no
issue for partially or fully textual compilation scenarios where these
lists might not line up. fixes
#918 - callcounts still need to be adjusted down for this so zoomark tests won't pass at the moment
→ <<cset b3d3795de0d4>>
-
reporter - Fixed regression where :meth:
.ResultProxy.keys
would return un-adjusted internal symbol names for "anonymous" labels, which are the "foo_1" types of labels we see generated for SQL functions without labels and similar. This was a side effect of the performance enhancements implemented as part of references#918. fixes#3483
→ <<cset d7ceb63c94e4>>
- Fixed regression where :meth:
- Log in to comment
function names just needed a label which has been added in a recent release. positional has issues, including incompatibility with the current style of text() constructs, and the fact that we "unique" column names in SELECT constructs implying we are already very name-based (compiler needs more left turns to do unique+positional at the same time). we could also never be 100% sure about text constructs which may have multiple column expressions present.