Skip to content

Commit 364e33a

Browse files
dtran-imcpcloud
authored andcommitted
fix(bigquery): use job_id_prefix instead of job_id
1 parent 2600c65 commit 364e33a

File tree

2 files changed

+24
-25
lines changed

2 files changed

+24
-25
lines changed

ibis/backends/bigquery/__init__.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ def create_database(
544544
catalog: str | None = None,
545545
force: bool = False,
546546
collate: str | None = None,
547-
job_id: str | None = None,
547+
job_id_prefix: str | None = None,
548548
**options: Any,
549549
) -> None:
550550
properties = [
@@ -564,7 +564,7 @@ def create_database(
564564
properties=sge.Properties(expressions=properties),
565565
)
566566

567-
self.raw_sql(stmt.sql(self.name), job_id=job_id)
567+
self.raw_sql(stmt.sql(self.name), job_id_prefix=job_id_prefix)
568568

569569
def drop_database(
570570
self,
@@ -574,7 +574,7 @@ def drop_database(
574574
catalog: str | None = None,
575575
force: bool = False,
576576
cascade: bool = False,
577-
job_id: str | None = None,
577+
job_id_prefix: str | None = None,
578578
) -> None:
579579
"""Drop a BigQuery dataset."""
580580
stmt = sge.Drop(
@@ -584,7 +584,7 @@ def drop_database(
584584
cascade=cascade,
585585
)
586586

587-
self.raw_sql(stmt.sql(self.name), job_id=job_id)
587+
self.raw_sql(stmt.sql(self.name), job_id_prefix=job_id_prefix)
588588

589589
def table(
590590
self,
@@ -670,7 +670,7 @@ def _get_schema_using_query(self, query: str) -> sch.Schema:
670670
return BigQuerySchema.to_ibis(job.schema)
671671

672672
def raw_sql(
673-
self, query: str, params=None, job_id: str | None = None
673+
self, query: str, params=None, job_id_prefix: str | None = None
674674
) -> RowIterator:
675675
query_parameters = [
676676
bigquery_param(param.type(), value, param.get_name())
@@ -681,12 +681,12 @@ def raw_sql(
681681

682682
job_config = bq.job.QueryJobConfig(query_parameters=query_parameters or [])
683683

684-
if job_id is not None:
684+
if job_id_prefix is not None:
685685
return self.client.query(
686686
query,
687687
job_config=job_config,
688688
project=self.billing_project,
689-
job_id=job_id,
689+
job_id_prefix=job_id_prefix,
690690
).result()
691691
else:
692692
return self.client.query_and_wait(
@@ -781,14 +781,14 @@ def _to_query(
781781
*,
782782
params: Mapping[ir.Scalar, Any] | None = None,
783783
limit: int | str | None = None,
784-
job_id: str | None = None,
784+
job_id_prefix: str | None = None,
785785
**kwargs: Any,
786786
) -> RowIterator:
787787
self._run_pre_execute_hooks(table_expr)
788788
sql = self.compile(table_expr, limit=limit, params=params, **kwargs)
789789
self._log(sql)
790790

791-
return self.raw_sql(sql, params=params, job_id=job_id)
791+
return self.raw_sql(sql, params=params, job_id_prefix=job_id_prefix)
792792

793793
def to_pyarrow(
794794
self,
@@ -982,7 +982,7 @@ def create_table(
982982
partition_by: str | None = None,
983983
cluster_by: Iterable[str] | None = None,
984984
options: Mapping[str, Any] | None = None,
985-
job_id: str | None = None,
985+
job_id_prefix: str | None = None,
986986
) -> ir.Table:
987987
"""Create a table in BigQuery.
988988
@@ -1015,9 +1015,9 @@ def create_table(
10151015
options
10161016
BigQuery-specific table options; see the BigQuery documentation for
10171017
details: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#table_option_list
1018-
job_id
1019-
Optional custom job ID; when specified, bigquery will use this job ID instead
1020-
of a randomly generated one
1018+
job_id_prefix
1019+
Optional custom job ID prefix; when specified, bigquery will use this as a
1020+
prefix for the job ID it generates
10211021
10221022
Returns
10231023
-------
@@ -1109,7 +1109,7 @@ def create_table(
11091109

11101110
sql = stmt.sql(self.name)
11111111

1112-
self.raw_sql(sql, job_id=job_id)
1112+
self.raw_sql(sql, job_id_prefix=job_id_prefix)
11131113
return self.table(table.name, database=(table.catalog, table.db))
11141114

11151115
def drop_table(
@@ -1119,7 +1119,7 @@ def drop_table(
11191119
*,
11201120
database: tuple[str | str] | str | None = None,
11211121
force: bool = False,
1122-
job_id: str | None = None,
1122+
job_id_prefix: str | None = None,
11231123
) -> None:
11241124
table_loc = self._to_sqlglot_table(database)
11251125
catalog, db = self._to_catalog_db_tuple(table_loc)
@@ -1132,7 +1132,7 @@ def drop_table(
11321132
),
11331133
exists=force,
11341134
)
1135-
self.raw_sql(stmt.sql(self.name), job_id=job_id)
1135+
self.raw_sql(stmt.sql(self.name), job_id_prefix=job_id_prefix)
11361136

11371137
def create_view(
11381138
self,
@@ -1142,7 +1142,7 @@ def create_view(
11421142
*,
11431143
database: str | None = None,
11441144
overwrite: bool = False,
1145-
job_id: str | None = None,
1145+
job_id_prefix: str | None = None,
11461146
) -> ir.Table:
11471147
table_loc = self._to_sqlglot_table(database)
11481148
catalog, db = self._to_catalog_db_tuple(table_loc)
@@ -1158,7 +1158,7 @@ def create_view(
11581158
replace=overwrite,
11591159
)
11601160
self._run_pre_execute_hooks(obj)
1161-
self.raw_sql(stmt.sql(self.name), job_id=job_id)
1161+
self.raw_sql(stmt.sql(self.name), job_id_prefix=job_id_prefix)
11621162
return self.table(name, database=(catalog, database))
11631163

11641164
def drop_view(
@@ -1168,7 +1168,7 @@ def drop_view(
11681168
*,
11691169
database: str | None = None,
11701170
force: bool = False,
1171-
job_id: str | None = None,
1171+
job_id_prefix: str | None = None,
11721172
) -> None:
11731173
table_loc = self._to_sqlglot_table(database)
11741174
catalog, db = self._to_catalog_db_tuple(table_loc)
@@ -1182,7 +1182,7 @@ def drop_view(
11821182
),
11831183
exists=force,
11841184
)
1185-
self.raw_sql(stmt.sql(self.name), job_id=job_id)
1185+
self.raw_sql(stmt.sql(self.name), job_id_prefix=job_id_prefix)
11861186

11871187
def _drop_cached_table(self, name):
11881188
self.drop_table(

ibis/backends/bigquery/tests/system/test_client.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import decimal
66
import os
77
from urllib.parse import urlparse
8-
from uuid import uuid4
98

109
import pandas as pd
1110
import pandas.testing as tm
@@ -549,8 +548,8 @@ def test_window_with_count_distinct(tmp_table, expr, query):
549548
tm.assert_frame_equal(result, expected)
550549

551550

552-
def test_create_job_with_custom_job_id(con):
553-
job_id = f"test_job_id_{uuid4()}"
551+
def test_create_job_with_custom_job_prefix(con):
552+
job_id_prefix = "test_job_prefix_"
554553
query = "SELECT 1"
555-
result = con.raw_sql(query, job_id=job_id)
556-
assert result.job_id == job_id
554+
result = con.raw_sql(query, job_id_prefix=job_id_prefix)
555+
assert result.job_id.startswith(job_id_prefix)

0 commit comments

Comments
 (0)