refactor: Unify gbq execution as semi-executor#16770
Conversation
There was a problem hiding this comment.
Code Review
This pull request refactors the BigFrames execution framework by replacing CacheSpec with TempTableSpec and restructuring BigQueryCachingExecutor to use a recursive _execute_bigquery method. The DirectGbqExecutor was also updated to handle the new ExecutionSpec. Several critical issues were identified in the refactored code, including missing attributes in DirectGbqExecutor (storage_manager, bqstoragereadclient, _labels, and metrics), a missing publisher argument in its constructor call, and an invalid lifetime field usage in TableOutputSpec. Furthermore, the DirectGbqExecutor currently ignores its configured compiler function, which will lead to incorrect behavior when a custom compiler is provided.
076cb98 to
e239b61
Compare
|
|
||
|
|
||
| def start_query_with_client( | ||
| def start_query_job_optional( |
There was a problem hiding this comment.
don't quite get what "optional" means here. Can it be more descriptive or add a doc string?
There was a problem hiding this comment.
added docstring in new rev
| bqstoragereadclient: google.cloud.bigquery_storage_v1.BigQueryReadClient, | ||
| *, | ||
| publisher: bigframes.core.events.Publisher, | ||
| compiler: Literal["ibis", "sqlglot"] = "ibis", |
There was a problem hiding this comment.
Do we want to use sqlglot by default or still ibis?
There was a problem hiding this comment.
yeah, will do sqlglot, switched in new rev
Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:
Fixes #<issue_number_goes_here> 🦕