Skip to content

RowDataSourceScanExec Leaf Physical Operator

RowDataSourceScanExec is a DataSourceScanExec (and so indirectly a leaf physical operator) for scanning data from a BaseRelation.

RowDataSourceScanExec is <> to represent a LogicalRelation.md[LogicalRelation] with the following scan types when DataSourceStrategy execution planning strategy is executed:

  • CatalystScan, PrunedFilteredScan, PrunedScan (indirectly when DataSourceStrategy is requested to pruneFilterProjectRaw)

  • TableScan

RowDataSourceScanExec marks the <> that are included in the <> with * (star) in the <> that is used for a simple text representation.

[source, scala]

// DEMO RowDataSourceScanExec with a simple text representation with stars

=== [[doProduce]] Generating Java Source Code for Produce Path in Whole-Stage Code Generation -- doProduce Method

[source, scala]

doProduce(ctx: CodegenContext): String

doProduce...FIXME

doProduce is part of the CodegenSupport abstraction.

Creating Instance

RowDataSourceScanExec takes the following to be created:

NOTE: The input <> and <> are used exclusively for the <> property that is part of DataSourceScanExec.md#metadata[DataSourceScanExec Contract] to describe a scan for a DataSourceScanExec.md#simpleString[simple text representation (in a query plan tree)].

=== [[metadata]] metadata Property

[source, scala]

metadata: Map[String, String]

NOTE: metadata is part of DataSourceScanExec.md#metadata[DataSourceScanExec Contract] to describe a scan for a DataSourceScanExec.md#simpleString[simple text representation (in a query plan tree)].

metadata marks the <> that are included in the <> with * (star).

NOTE: Filter predicates with * (star) are to denote filters that are pushed down to a relation (aka data source).

In the end, metadata creates the following mapping:

. ReadSchema with the <> converted to catalog representation

. PushedFilters with the marked and unmarked <>


Last update: 2020-11-13