@@ -406,15 +406,17 @@ struct SchemaSourceNode : public SourceNode {
406406
407407struct RecordBatchReaderSourceNode : public SourceNode {
408408 RecordBatchReaderSourceNode (ExecPlan* plan, std::shared_ptr<Schema> schema,
409- arrow::AsyncGenerator<std::optional<ExecBatch>> generator)
410- : SourceNode(plan, schema, generator) {}
409+ arrow::AsyncGenerator<std::optional<ExecBatch>> generator,
410+ Ordering ordering = Ordering::Unordered())
411+ : SourceNode(plan, schema, generator, ordering) {}
411412
412413 static Result<ExecNode*> Make (ExecPlan* plan, std::vector<ExecNode*> inputs,
413414 const ExecNodeOptions& options) {
414415 RETURN_NOT_OK (ValidateExecNodeInputs (plan, inputs, 0 , kKindName ));
415416 const auto & cast_options =
416417 checked_cast<const RecordBatchReaderSourceNodeOptions&>(options);
417418 auto & reader = cast_options.reader ;
419+ Ordering ordering = cast_options.implicit_ordering ?Ordering::Implicit ():Ordering::Unordered ();
418420 auto io_executor = cast_options.io_executor ;
419421
420422 if (reader == nullptr ) {
@@ -427,7 +429,7 @@ struct RecordBatchReaderSourceNode : public SourceNode {
427429
428430 ARROW_ASSIGN_OR_RAISE (auto generator, MakeGenerator (reader, io_executor));
429431 return plan->EmplaceNode <RecordBatchReaderSourceNode>(plan, reader->schema (),
430- generator);
432+ generator, ordering );
431433 }
432434
433435 static Result<arrow::AsyncGenerator<std::optional<ExecBatch>>> MakeGenerator (
0 commit comments