Skip to content

Commit 0a684c3

Browse files
authored
fix(bigquery): allow sane use of params with raw_sql (#10874)
1 parent 76b0114 commit 0a684c3

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

ibis/backends/bigquery/__init__.py

+1-9
Original file line numberDiff line numberDiff line change
@@ -663,15 +663,7 @@ def _get_schema_using_query(self, query: str) -> sch.Schema:
663663

664664
def raw_sql(self, query: str, params=None, page_size: int | None = None):
665665
query_parameters = [
666-
bigquery_param(
667-
param.type(),
668-
value,
669-
(
670-
param.get_name()
671-
if not isinstance(op := param.op(), ops.Alias)
672-
else op.arg.name
673-
),
674-
)
666+
bigquery_param(param.type(), value, param.get_name())
675667
for param, value in (params or {}).items()
676668
]
677669
with contextlib.suppress(AttributeError):

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

+9
Original file line numberDiff line numberDiff line change
@@ -496,3 +496,12 @@ def test_geom_from_pyarrow(con, monkeypatch):
496496
assert len(t.to_pandas()) == 2
497497
finally:
498498
con.drop_table(name)
499+
500+
501+
def test_raw_sql_params_with_alias(con):
502+
name = "cutoff"
503+
cutoff = ibis.param("date").name(name)
504+
value = datetime.date(2024, 10, 28)
505+
query_parameters = {cutoff: value}
506+
result = con.raw_sql(f"SELECT @{name} AS {name}", params=query_parameters)
507+
assert list(map(dict, result)) == [{name: value}]

0 commit comments

Comments
 (0)