private RuntimeExpression CreateRuntimeExpression(ExpressionNode expression, params BoundRowBufferEntrySet[] boundRowBufferEntrySets) { // Update row buffer references List <BoundRowBufferEntrySet> boundRowBufferEntrySetList = new List <BoundRowBufferEntrySet>(); boundRowBufferEntrySetList.AddRange(boundRowBufferEntrySets); foreach (BoundRowBufferEntrySet outerreferenceBoundRowBufferEntrySet in _outerReferenceStack) { boundRowBufferEntrySetList.Add(outerreferenceBoundRowBufferEntrySet); } boundRowBufferEntrySets = boundRowBufferEntrySetList.ToArray(); RowBufferEntryExpressionUpdater rowBufferEntryExpressionUpdater = new RowBufferEntryExpressionUpdater(boundRowBufferEntrySets); expression = rowBufferEntryExpressionUpdater.VisitExpression(expression); #if COMPILE_IL return(ExpressionCompiler.CreateCompiled(expression)); #else return(ExpressionCompiler.CreateInterpreded(expression)); #endif }
private RuntimeExpression CreateRuntimeExpression(ExpressionNode expression, params BoundRowBufferEntrySet[] boundRowBufferEntrySets) { // Update row buffer references List<BoundRowBufferEntrySet> boundRowBufferEntrySetList = new List<BoundRowBufferEntrySet>(); boundRowBufferEntrySetList.AddRange(boundRowBufferEntrySets); foreach (BoundRowBufferEntrySet outerreferenceBoundRowBufferEntrySet in _outerReferenceStack) boundRowBufferEntrySetList.Add(outerreferenceBoundRowBufferEntrySet); boundRowBufferEntrySets = boundRowBufferEntrySetList.ToArray(); RowBufferEntryExpressionUpdater rowBufferEntryExpressionUpdater = new RowBufferEntryExpressionUpdater(boundRowBufferEntrySets); expression = rowBufferEntryExpressionUpdater.VisitExpression(expression); #if COMPILE_IL return ExpressionCompiler.CreateCompiled(expression); #else return ExpressionCompiler.CreateInterpreded(expression); #endif }