perf: Ensure raw_schema
in stream mapper is immutable
#1962
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.
Closes #1961
When trying to figure out how to fix #1961 I realized it was caused by the raw_schema in the mapper being a shared object with the transformed_schema which is passed to
get_sink
thenadd_sink
, ultimately to the sink itself where SDC columns are added. The rest of the codebase expects transformed_schema to be mutable but raw_schema to be immutable (or at least it reads that way to me). They both share the same reference to the original schema dict so assumptions break. The main case I ran into was in #1961 where target-postgres was constantly creating new sink instances for me when the schema wasnt actually changing.