Skip to content

Commit b63b00a

Browse files
more fixes
1 parent 2907468 commit b63b00a

5 files changed

Lines changed: 37 additions & 10 deletions

File tree

packages/bigframes/bigframes/session/bq_caching_executor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def __init__(
108108
self._upload_lock = threading.Lock()
109109
self._gbq_executor = direct_gbq_execution.DirectGbqExecutor(
110110
bqclient,
111-
compiler=compile.compiler,
111+
compiler=compile.compiler().compile_sql,
112112
bqstoragereadclient=bqstoragereadclient,
113113
metrics=self.metrics,
114114
publisher=self._publisher,

packages/bigframes/bigframes/testing/engine_utils.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,21 @@
1515
import pandas.testing
1616

1717
from bigframes.core import nodes
18-
from bigframes.session import semi_executor
18+
from bigframes.session import semi_executor, execution_spec
19+
20+
21+
SPEC = execution_spec.ExecutionSpec(
22+
ordered=True,
23+
)
1924

2025

2126
def assert_equivalence_execution(
2227
node: nodes.BigFrameNode,
2328
engine1: semi_executor.SemiExecutor,
2429
engine2: semi_executor.SemiExecutor,
2530
):
26-
e1_result = engine1.execute(node, ordered=True)
27-
e2_result = engine2.execute(node, ordered=True)
31+
e1_result = engine1.execute(node, SPEC)
32+
e2_result = engine2.execute(node, SPEC)
2833
assert e1_result is not None
2934
assert e2_result is not None
3035
# Convert to pandas, as pandas has better comparison utils than arrow

packages/bigframes/tests/system/conftest.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import google.cloud.bigquery_connection_v1 as bigquery_connection_v1
2828
import google.cloud.exceptions
2929
import google.cloud.functions_v2 as functions_v2
30+
import google.cloud.bigquery_storage_v1
3031
import google.cloud.resourcemanager_v3 as resourcemanager_v3
3132
import google.cloud.storage as storage # type: ignore
3233
import numpy as np
@@ -103,6 +104,13 @@ def bigquery_client(session: bigframes.Session) -> bigquery.Client:
103104
return session.bqclient
104105

105106

107+
@pytest.fixture(scope="session")
108+
def bigquery_storage_read_client(
109+
session: bigframes.Session,
110+
) -> google.cloud.bigquery_storage_v1.BigQueryReadClient:
111+
return session.bqstoragereadclient
112+
113+
106114
@pytest.fixture(scope="session")
107115
def bigquery_client_tokyo(session_tokyo: bigframes.Session) -> bigquery.Client:
108116
return session_tokyo.bqclient

packages/bigframes/tests/system/small/engines/conftest.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from google.cloud import bigquery
2020

2121
import bigframes
22+
import google.cloud.bigquery_storage_v1
2223
from bigframes.core import ArrayValue, events, local_data
2324
from bigframes.session import (
2425
direct_gbq_execution,
@@ -45,19 +46,28 @@ def fake_session() -> Generator[bigframes.Session, None, None]:
4546

4647

4748
@pytest.fixture(scope="session", params=["pyarrow", "polars", "bq", "bq-sqlglot"])
48-
def engine(request, bigquery_client: bigquery.Client) -> semi_executor.SemiExecutor:
49+
def engine(
50+
request,
51+
bigquery_client: bigquery.Client,
52+
bigquery_storage_read_client: google.cloud.bigquery_storage_v1.BigQueryReadClient,
53+
) -> semi_executor.SemiExecutor:
4954
if request.param == "pyarrow":
5055
return local_scan_executor.LocalScanExecutor()
5156
if request.param == "polars":
5257
return polars_executor.PolarsExecutor()
5358
publisher = events.Publisher()
5459
if request.param == "bq":
5560
return direct_gbq_execution.DirectGbqExecutor(
56-
bigquery_client, publisher=publisher
61+
bigquery_client,
62+
bqstoragereadclient=bigquery_storage_read_client,
63+
publisher=publisher,
5764
)
5865
if request.param == "bq-sqlglot":
5966
return direct_gbq_execution.DirectGbqExecutor(
60-
bigquery_client, compiler="sqlglot", publisher=publisher
67+
bigquery_client,
68+
bqstoragereadclient=bigquery_storage_read_client,
69+
compiler="sqlglot",
70+
publisher=publisher,
6171
)
6272
raise ValueError(f"Unrecognized param: {request.param}")
6373

packages/bigframes/tests/unit/session/test_local_scan_executor.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,13 @@
1717
import pytest
1818

1919
from bigframes.core import identifiers, local_data, nodes
20-
from bigframes.session import local_scan_executor
20+
from bigframes.session import local_scan_executor, execution_spec
2121
from bigframes.testing import mocks
2222

23+
SPEC = execution_spec.ExecutionSpec(
24+
ordered=True,
25+
)
26+
2327

2428
@pytest.fixture
2529
def object_under_test():
@@ -72,7 +76,7 @@ def test_local_scan_executor_with_slice(start, stop, expected_rows, object_under
7276
stop=stop,
7377
)
7478

75-
result = object_under_test.execute(plan, ordered=True)
79+
result = object_under_test.execute(plan, SPEC)
7680
result_table = pyarrow.Table.from_batches(result.batches().arrow_batches)
7781
assert result_table.num_rows == expected_rows
7882

@@ -98,4 +102,4 @@ def test_local_scan_executor_with_slice_unsupported_inputs(
98102
stop=stop,
99103
step=step,
100104
)
101-
assert object_under_test.execute(plan, ordered=True) is None
105+
assert object_under_test.execute(plan, SPEC) is None

0 commit comments

Comments
 (0)