예제 #1
0
        public GroupOperator(
            GraphViewExecutionOperator inputOp,
            ScalarFunction groupByKeyFunction,
            int groupByKeyFieldIndex,
            ConstantSourceOperator tempSourceOp,
            ContainerOperator groupedSourceOp,
            GraphViewExecutionOperator aggregateOp,
            int elementPropertyProjectionIndex,
            int carryOnCount)
        {
            this.inputOp = inputOp;

            this.groupByKeyFunction   = groupByKeyFunction;
            this.groupByKeyFieldIndex = groupByKeyFieldIndex;

            this.tempSourceOp    = tempSourceOp;
            this.groupedSourceOp = groupedSourceOp;
            this.aggregateOp     = aggregateOp;

            this.elementPropertyProjectionIndex = elementPropertyProjectionIndex;
            this.carryOnCount = carryOnCount;

            groupedStates = new Dictionary <FieldObject, List <RawRecord> >();
            Open();
        }
예제 #2
0
 public GroupFunction(ConstantSourceOperator tempSourceOp,
                      ContainerOperator groupedSourceOp,
                      GraphViewExecutionOperator aggregateOp,
                      bool isProjectingACollection)
 {
     this.groupedStates           = new Dictionary <FieldObject, List <RawRecord> >();
     this.tempSourceOp            = tempSourceOp;
     this.groupedSourceOp         = groupedSourceOp;
     this.aggregateOp             = aggregateOp;
     this.isProjectingACollection = isProjectingACollection;
 }
예제 #3
0
 public GroupFunction(ConstantSourceOperator tempSourceOp,
                      ContainerOperator groupedSourceOp,
                      GraphViewExecutionOperator aggregateOp,
                      int elementPropertyProjectionIndex)
 {
     groupedStates        = new Dictionary <FieldObject, List <RawRecord> >();
     this.tempSourceOp    = tempSourceOp;
     this.groupedSourceOp = groupedSourceOp;
     this.aggregateOp     = aggregateOp;
     this.elementPropertyProjectionIndex = elementPropertyProjectionIndex;
 }
        public QueryCompilationContext(QueryCompilationContext parentContext)
        {
            CurrentExecutionOperator = parentContext.CurrentExecutionOperator;
            TemporaryTableCollection = parentContext.TemporaryTableCollection;
            RawRecordLayout          = new Dictionary <WColumnReferenceExpression, int>(parentContext.RawRecordLayout,
                                                                                        new WColumnReferenceExpressionComparer());
            TableReferences  = new Dictionary <string, TableGraphType>(parentContext.TableReferences);
            OuterContextOp   = new ConstantSourceOperator();
            SideEffectStates = parentContext.SideEffectStates;

            CarryOn = false;
            ParentContextRawRecordLayout = new Dictionary <WColumnReferenceExpression, int>(
                parentContext.RawRecordLayout, new WColumnReferenceExpressionComparer());
        }
예제 #5
0
        public GroupOperator(
            GraphViewExecutionOperator inputOp,
            ScalarFunction groupByKeyFunction,
            ConstantSourceOperator tempSourceOp,
            ContainerOperator groupedSourceOp,
            GraphViewExecutionOperator aggregateOp,
            bool isProjectingACollection,
            int carryOnCount)
        {
            this.inputOp = inputOp;

            this.groupByKeyFunction = groupByKeyFunction;

            this.tempSourceOp    = tempSourceOp;
            this.groupedSourceOp = groupedSourceOp;
            this.aggregateOp     = aggregateOp;

            this.isProjectingACollection = isProjectingACollection;
            this.carryOnCount            = carryOnCount;

            this.groupedStates = new Dictionary <FieldObject, List <RawRecord> >();
            this.Open();
        }
예제 #6
0
 public ScalarSubqueryFunction(GraphViewExecutionOperator subqueryOp, ConstantSourceOperator constantSourceOp)
 {
     this.subqueryOp       = subqueryOp;
     this.constantSourceOp = constantSourceOp;
 }