internal QueryDataReader(ResultIterator resultIterator, bool schemaOnly) { _resultIterator = resultIterator; _schemaOnly = schemaOnly; _isBof = true; if (!schemaOnly) { _resultIterator.Initialize(); _resultIterator.Open(); } }
public override AlgebraNode VisitResultAlgebraNode(ResultAlgebraNode node) { ResultIterator resultIterator = new ResultIterator(); resultIterator.RowBuffer = new object[node.OutputList.Length]; resultIterator.Input = ConvertAlgebraNode(node.Input); resultIterator.InputOutput = new IteratorOutput[node.OutputList.Length]; resultIterator.ColumnNames = new string[node.OutputList.Length]; resultIterator.ColumnTypes = new Type[node.OutputList.Length]; for (int i = 0; i < node.OutputList.Length; i++) { IteratorOutput iteratorOutput = new IteratorOutput(); iteratorOutput.SourceIndex = Array.IndexOf(node.Input.OutputList, node.OutputList[i]); iteratorOutput.TargetIndex = i; resultIterator.InputOutput[i] = iteratorOutput; resultIterator.ColumnNames[i] = node.ColumnNames[i]; resultIterator.ColumnTypes[i] = node.OutputList[i].DataType; } SetLastIterator(node, resultIterator); return(node); }
public override AlgebraNode VisitResultAlgebraNode(ResultAlgebraNode node) { ResultIterator resultIterator = new ResultIterator(); resultIterator.RowBuffer = new object[node.OutputList.Length]; resultIterator.Input = ConvertAlgebraNode(node.Input); resultIterator.InputOutput = new IteratorOutput[node.OutputList.Length]; resultIterator.ColumnNames = new string[node.OutputList.Length]; resultIterator.ColumnTypes = new Type[node.OutputList.Length]; for (int i = 0; i < node.OutputList.Length; i++) { IteratorOutput iteratorOutput = new IteratorOutput(); iteratorOutput.SourceIndex = Array.IndexOf(node.Input.OutputList, node.OutputList[i]); iteratorOutput.TargetIndex = i; resultIterator.InputOutput[i] = iteratorOutput; resultIterator.ColumnNames[i] = node.ColumnNames[i]; resultIterator.ColumnTypes[i] = node.OutputList[i].DataType; } SetLastIterator(node, resultIterator); return node; }
private void Compile() { if (DataContext == null) throw ExceptionBuilder.PropertyNotInitialized("DataContext"); if (Text == null || Text.Length == 0) throw ExceptionBuilder.PropertyNotInitialized("Text"); // Compile query ClearCompiledState(); Compiler compiler = new Compiler(_errorCollector); _resultAlgebraNode = compiler.CompileQuery(Text, Scope); if (_errorCollector.ErrorsSeen) { IList<CompilationError> errors = _errorCollector.GetErrors(); OnCompilationFailed(new CompilationFailedEventArgs(errors)); throw ExceptionBuilder.QueryCompilationFailed(errors); } OnCompilationSucceeded(EventArgs.Empty); _resultIterator = IteratorCreator.Convert(DataContext.MetadataContext, true, _resultAlgebraNode); }
protected override void ClearCompiledState() { _resultAlgebraNode = null; _resultIterator = null; _errorCollector.Reset(); }