private int hashProjectedRow(Row row) { int hash = 0; for (int f = 0; f < fieldEvals.size(); f++) { TEvaluatableExpression fieldEval = fieldEvals.get(f); hash = hash ^ expressionAdapter.hash(storeAdapter, fieldEval, row, collator(f)); } return hash; }
public FilterBindingsCursor( QueryContext context, Cursor input, int bindingPosition, int depth, List<? extends TPreparedExpression> expressions, ExpressionAdapter<TPreparedExpression, TEvaluatableExpression> expressionAdapter) { super(input, bindingPosition, depth); this.storeAdapter = context.getStore(); this.expressionAdapter = expressionAdapter; for (TPreparedExpression field : expressions) { TEvaluatableExpression eval = expressionAdapter.evaluate(field, context); fieldEvals.add(eval); } }
<EXPR> Execution( QueryContext context, QueryBindingsCursor bindingsCursor, List<? extends EXPR> expressions, ExpressionAdapter<EXPR, E> adapter) { super(context); this.inputCursor = input.cursor(context, bindingsCursor); this.onPositiveBindingsCursor = new SingletonQueryBindingsCursor(null); this.onPositiveCursor = onPositive.cursor(context, onPositiveBindingsCursor); this.adapter = adapter; for (EXPR field : expressions) { E eval = adapter.evaluate(field, context); fieldEvals.add(eval); } }