Open alangenfeld opened 2 years ago
Why do all destinations for input mapping need to be the same type? I'm imagining a situation where the same outputs gets routed to inputs of two different ops. The output has 20 columns, but each of the ops only needs 5 columns to be present, and those 5 columns are different between the two ops.
Why do all destinations for input mapping need to be the same type? ... output has 20 columns, but each of the ops only needs 5 columns to be present, and those 5 columns are different between the two ops
Thats a good point. Probably makes sense for the mappings to follow similar enforcement to our input/output type alignment rules aka basically nothing.
Will update the issue.
GraphIn does not support dagster_type but you can set one via type hints I believe only allowing the information via typehints was unlikely an explicit design choice.
Some discussion on this from https://github.com/dagster-io/dagster/pull/7741, summarized:
CompositeSolid
enforced that types had to be aligned along input/output mapping. In the move to job/graph/op https://github.com/dagster-io/dagster/pull/4876 droppeddagster_type
, effectively removing the enforcement.Other parts of the system were potentially built making implicit assumptions about this type alignment which may require fixes or UX remediations.
Observed issues:
6499
graph
level type for an input mapping being the defaultAny
while theop
end of the mapping isstring
.Any
types don't support theScalarUnion
input loading schema, requiring{'value': ...}
resulting in a puzzling user experience.Any
. Can do this for 1:1 mappings or when types all alignAny
that doesn't support load from configGraphIn
does not supportdagster_type
but you can set one via type hints@job
dagster_type
is used based on where in the mapping chain the value was specified. May be using wrong type with no longer valid assumption on type alignment.7211