public override void ResetState() { currentRecord = null; inputOperator.ResetState(); outputBuffer.Clear(); this.Open(); }
public override FieldObject Evaluate(RawRecord record) { this.container.ResetTableCache(record); subqueryOp.ResetState(); RawRecord firstResult = subqueryOp.Next(); subqueryOp.Close(); return(firstResult == null ? null : firstResult.RetriveData(0)); }
public override bool Evaluate(RawRecord r) { this.container.ResetTableCache(r); subqueryOp.ResetState(); RawRecord firstResult = subqueryOp.Next(); subqueryOp.Close(); return(firstResult != null); }
public override bool Evaluate(RawRecord r) { constantSourceOp.ConstantSource = r; subqueryOp.ResetState(); RawRecord firstResult = subqueryOp.Next(); subqueryOp.Close(); return(firstResult != null); }
public override FieldObject Evaluate(RawRecord record) { constantSourceOp.ConstantSource = record; subqueryOp.ResetState(); RawRecord firstResult = subqueryOp.Next(); subqueryOp.Close(); //return firstResult == null ? null : firstResult.RetriveData(0).ToString(); return(firstResult == null ? null : firstResult.RetriveData(0)); }
public FieldObject Terminate() { Dictionary <FieldObject, FieldObject> resultCollection = new Dictionary <FieldObject, FieldObject>(groupedStates.Count); if (elementPropertyProjectionIndex >= 0) { foreach (FieldObject key in groupedStates.Keys) { List <FieldObject> projectFields = new List <FieldObject>(); foreach (var rawRecord in groupedStates[key]) { FieldObject fo = rawRecord[elementPropertyProjectionIndex]; if (fo is PropertyField) { PropertyField pf = fo as PropertyField; projectFields.Add(new StringField(pf.PropertyValue, pf.JsonDataType)); } else { projectFields.Add(fo); } } resultCollection[key] = new CollectionField(projectFields); } } else { foreach (KeyValuePair <FieldObject, List <RawRecord> > pair in groupedStates) { FieldObject key = pair.Key; List <RawRecord> aggregatedRecords = pair.Value; groupedSourceOp.ResetState(); aggregateOp.ResetState(); foreach (RawRecord record in aggregatedRecords) { tempSourceOp.ConstantSource = record; groupedSourceOp.Next(); } RawRecord aggregateTraversalRecord = aggregateOp.Next(); FieldObject aggregateResult = aggregateTraversalRecord?.RetriveData(0); if (aggregateResult == null) { return(null); } resultCollection[key] = aggregateResult; } } return(new MapField(resultCollection)); }
public override RawRecord Next() { while (this.State()) { if (this.inputBatch.Any()) { RawRecord subTraversalRecord; while (flatMapTraversal.State() && (subTraversalRecord = flatMapTraversal.Next()) != null) { int subTraversalRecordIndex = int.Parse(subTraversalRecord[0].ToValue); RawRecord resultRecord = inputBatch[subTraversalRecordIndex].GetRange(1); resultRecord.Append(subTraversalRecord.GetRange(1)); return(resultRecord); } } this.inputBatch.Clear(); RawRecord inputRecord; while (this.inputBatch.Count < this.batchSize && this.inputOp.State() && (inputRecord = inputOp.Next()) != null) { RawRecord batchRawRecord = new RawRecord(); batchRawRecord.Append(new StringField(this.inputBatch.Count.ToString(), JsonDataType.Int)); batchRawRecord.Append(inputRecord); inputBatch.Add(batchRawRecord); } if (!inputBatch.Any()) { this.Close(); return(null); } this.container.ResetTableCache(inputBatch); flatMapTraversal.ResetState(); } return(null); }
public override void ResetState() { InputOperator.ResetState(); Open(); }
public override void ResetState() { Open(); tableCache.Clear(); TableInput.ResetState(); }
public override void ResetState() { inputOp.ResetState(); groupedStates.Clear(); Open(); }
public override RawRecord Next() { if (!State()) { return(null); } RawRecord r = null; while (inputOp.State() && (r = inputOp.Next()) != null) { FieldObject groupByKey = groupByKeyFieldIndex >= 0 ? new StringField(r[groupByKeyFieldIndex].ToValue) : groupByKeyFunction.Evaluate(r); if (!groupedStates.ContainsKey(groupByKey)) { groupedStates.Add(groupByKey, new List <RawRecord>()); } groupedStates[groupByKey].Add(r); } Dictionary <FieldObject, FieldObject> resultCollection = new Dictionary <FieldObject, FieldObject>(groupedStates.Count); if (elementPropertyProjectionIndex >= 0) { foreach (FieldObject key in groupedStates.Keys) { List <FieldObject> projectFields = new List <FieldObject>(); foreach (var rawRecord in groupedStates[key]) { FieldObject fo = rawRecord[elementPropertyProjectionIndex]; if (fo is PropertyField) { PropertyField pf = fo as PropertyField; projectFields.Add(new StringField(pf.PropertyValue, pf.JsonDataType)); } else { projectFields.Add(fo); } } resultCollection[key] = new CollectionField(projectFields); } } else { foreach (KeyValuePair <FieldObject, List <RawRecord> > pair in groupedStates) { FieldObject key = pair.Key; List <RawRecord> aggregatedRecords = pair.Value; groupedSourceOp.ResetState(); aggregateOp.ResetState(); foreach (RawRecord record in aggregatedRecords) { tempSourceOp.ConstantSource = record; groupedSourceOp.Next(); } RawRecord aggregateTraversalRecord = aggregateOp.Next(); FieldObject aggregateResult = aggregateTraversalRecord?.RetriveData(0); if (aggregateResult == null) { Close(); return(null); } resultCollection[key] = aggregateResult; } } RawRecord resultRecord = new RawRecord(); for (int i = 0; i < carryOnCount; i++) { resultRecord.Append((FieldObject)null); } resultRecord.Append(new MapField(resultCollection)); Close(); return(resultRecord); }
public override void ResetState() { //GroupState.Init(); inputOp.ResetState(); Open(); }