public class OrderedMap extends MethodProc implements Inlineable
order by clause.
(ValuesMap is used for FLWOR expression
that don't have an order by clause.)
As returned by the parser:
for $x1 in exp1, $x2 in exp2 where cond order by comparator1 ... return bodyis represented as
ordered-map(tuple-sequence, body-function, comparator-function1, flags1, collation1, ...)Here tuple-sequence is an expression that returns a sequence of tuples, which are currently implemnted as Java Object[] arrays. After inlining we get:
ordered-map(tuple-sequence.
OrderedTuples.make$V(body-function,
new Object[]{comparator-function1, flags1, collation1, ...}))
A future optimization would be to create an instance of a new sub-class
of OrderedTuples. Then the body-function and comparator-functions
could be compiled as methods to that class. That wins especially
if it saves us having to create extra frame classes.| Modifier and Type | Field and Description |
|---|---|
static OrderedMap |
orderedMap |
applyToConsumerDefaultMP, argTypes, NO_MATCH, NO_MATCH_AMBIGUOUS, NO_MATCH_BAD_TYPE, NO_MATCH_GUARD_FALSE, NO_MATCH_TOO_FEW_ARGS, NO_MATCH_TOO_MANY_ARGS, NO_MATCH_UNUSED_KEYWORD, THROW_ON_EXCEPTION applyToObject, noArgs applyMethodType, applyToConsumerDefault, applyToConsumerMethod, applyToObjectDefault, applyToObjectMethod, compilerKey, compilerXKey, inlineIfConstantSymbol, validateApplyKey, validateXApplyKey nameKey | Constructor and Description |
|---|
OrderedMap () |
| Modifier and Type | Method and Description |
|---|---|
void |
apply (CallContext ctx) |
void |
compile (ApplyExp exp,
Compilation comp,
Target target) |
Type |
getReturnType (Expression[] args)
Semi-deprecated - instead should be set at Inline time.
|
static java.lang.Object[] |
makeTuple$V (java.lang.Object[] values) |
applyToConsumerDefaultMP, getParameterType, isApplicable, matchFailAsException, mostSpecific, numParameters, overrideEquivalent, resolveParameterTypes applyToObject apply0, apply1, apply2, apply3, apply4, applyL, applyN, applyToConsumerDefault, applyToObjectDefault, checkArgCount, checkBadCode, getApplyMethod, getApplyToConsumerMethod, getApplyToObjectMethod, getSetter, getSourceLocation, isSideEffectFree, lookupApplyHandle, maxArgs, maxArgs, minArgs, minArgs, numArgs, set0, set1, setN, setSetter, setSourceLocation, toString getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitpublic static final OrderedMap orderedMap
public OrderedMap()
public static java.lang.Object[] makeTuple$V(java.lang.Object[] values)
public void apply(CallContext ctx) throws java.lang.Throwable
java.lang.Throwablepublic void compile(ApplyExp exp, Compilation comp, Target target)
compile in interface Inlineable public Type getReturnType(Expression[] args)
Procedure getReturnType in class Procedure