Remove generic source dataset constructs #768
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The original implementation of MetricFlow used a generic type
annotation for the "Source DataSet" of the dataflow plan. This was
in place to support some specific implementations of Transform's
proprietary product logic, and as an interface boundary it proved
ineffective. Consequently, attempts to revisit that functionality
will rely on other approaches.
Within MetricFlow, this generic type resolves, to one of two concrete types:
the SqlDataSet, or the SemanticModelDataSet, which inherits from
SqlDataSet. Since it's far simpler to just use SqlDataSet as the
required type than to litter the codebase with generic typehints and
concrete type specs in some places but not others, we make that change
along with some associated cleanup. In particular, the SqlDataSet class
rightly belongs with the other DataSet subclasses, rather than in the
plan_conversion package.