fix BigQueryInsertJobOperator's return value and openlineage extraction in deferrable mode #40457
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.
This PR fixes two things:
Return value of
BigQueryInsertJobOperator's
execute_complete()
(so execution in deferrable mode) will now be an actual BQ job id instead of None. As described in this docs, when deferring:No state will persist, such as local variables or attributes set on self.
, so assigning value to self.job_id withinexecute()
had no effect and was not actually used inexecute_complete()
.We are re-assigning the job_id in
execute_complete()
as an instance attribute, so that we can later use it within OpenLineage method even when in deferrable mode. We are also re-creating any attributes (hook) that may be missing as a result of the state keeping logic mentioned above.^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named
{pr_number}.significant.rst
or{issue_number}.significant.rst
, in newsfragments.