|
19 | 19 | import pytest
|
20 | 20 |
|
21 | 21 | from google.cloud import bigquery
|
| 22 | +from google.cloud.bigquery.query import ArrayQueryParameter |
22 | 23 | from google.cloud.bigquery.query import ScalarQueryParameter
|
23 |
| - |
24 |
| -# from google.cloud.bigquery.query import ArrayQueryParameter |
25 |
| -# from google.cloud.bigquery.query import ScalarQueryParameterType |
26 |
| -# from google.cloud.bigquery.query import StructQueryParameter |
27 |
| -# from google.cloud.bigquery.query import StructQueryParameterType |
| 24 | +from google.cloud.bigquery.query import ScalarQueryParameterType |
| 25 | +from google.cloud.bigquery.query import StructQueryParameter |
| 26 | +from google.cloud.bigquery.query import StructQueryParameterType |
28 | 27 |
|
29 | 28 |
|
30 | 29 | @pytest.fixture(params=["INSERT", "QUERY"])
|
@@ -279,116 +278,135 @@ def test_query_statistics(bigquery_client, query_api_method):
|
279 | 278 | )
|
280 | 279 | ],
|
281 | 280 | ),
|
282 |
| - # ( |
283 |
| - # "SELECT @array_param", |
284 |
| - # [1, 2], |
285 |
| - # [array_param], |
286 |
| - # ), |
287 |
| - # ( |
288 |
| - # "SELECT (@hitchhiker.question, @hitchhiker.answer)", |
289 |
| - # ({"_field_1": question, "_field_2": answer}), |
290 |
| - # [struct_param], |
291 |
| - # ), |
292 |
| - # ( |
293 |
| - # "SELECT " |
294 |
| - # "((@rectangle.bottom_right.x - @rectangle.top_left.x) " |
295 |
| - # "* (@rectangle.top_left.y - @rectangle.bottom_right.y))", |
296 |
| - # 100, |
297 |
| - # [rectangle_param], |
298 |
| - # ), |
299 |
| - # ( |
300 |
| - # "SELECT ?", |
301 |
| - # [ |
302 |
| - # {"name": phred_name, "age": phred_age}, |
303 |
| - # {"name": bharney_name, "age": bharney_age}, |
304 |
| - # ], |
305 |
| - # [characters_param], |
306 |
| - # ), |
307 |
| - # ( |
308 |
| - # "SELECT @empty_array_param", |
309 |
| - # [], |
310 |
| - # [empty_struct_array_param], |
311 |
| - # ), |
312 |
| - # ( |
313 |
| - # "SELECT @roles", |
314 |
| - # ( |
315 |
| - # "hero": {"name": phred_name, "age": phred_age}, |
316 |
| - # "sidekick": {"name": bharney_name, "age": bharney_age}, |
317 |
| - # ), |
318 |
| - # [roles_param], |
319 |
| - # ), |
320 |
| - # ( |
321 |
| - # "SELECT ?", |
322 |
| - # {"friends": [phred_name, bharney_name]}, |
323 |
| - # [with_friends_param], |
324 |
| - # ), |
325 |
| - # ( |
326 |
| - # "SELECT @bignum_param", |
327 |
| - # bignum, |
328 |
| - # [bignum_param], |
329 |
| - # ), |
| 281 | + ( |
| 282 | + "SELECT @array_param", |
| 283 | + [1, 2], |
| 284 | + [ |
| 285 | + ArrayQueryParameter( |
| 286 | + name="array_param", array_type="INT64", values=[1, 2] |
| 287 | + ) |
| 288 | + ], |
| 289 | + ), |
| 290 | + ( |
| 291 | + "SELECT (@hitchhiker.question, @hitchhiker.answer)", |
| 292 | + ({"_field_1": "What is the answer?", "_field_2": 42}), |
| 293 | + [ |
| 294 | + StructQueryParameter( |
| 295 | + "hitchhiker", |
| 296 | + ScalarQueryParameter( |
| 297 | + name="question", type_="STRING", value="What is the answer?", |
| 298 | + ), |
| 299 | + ScalarQueryParameter(name="answer", type_="INT64", value=42,), |
| 300 | + ), |
| 301 | + ], |
| 302 | + ), |
| 303 | + ( |
| 304 | + "SELECT " |
| 305 | + "((@rectangle.bottom_right.x - @rectangle.top_left.x) " |
| 306 | + "* (@rectangle.top_left.y - @rectangle.bottom_right.y))", |
| 307 | + 100, |
| 308 | + [ |
| 309 | + StructQueryParameter( |
| 310 | + "rectangle", |
| 311 | + StructQueryParameter( |
| 312 | + "top_left", |
| 313 | + ScalarQueryParameter("x", "INT64", 12), |
| 314 | + ScalarQueryParameter("y", "INT64", 102), |
| 315 | + ), |
| 316 | + StructQueryParameter( |
| 317 | + "bottom_right", |
| 318 | + ScalarQueryParameter("x", "INT64", 22), |
| 319 | + ScalarQueryParameter("y", "INT64", 92), |
| 320 | + ), |
| 321 | + ) |
| 322 | + ], |
| 323 | + ), |
| 324 | + ( |
| 325 | + "SELECT ?", |
| 326 | + [ |
| 327 | + {"name": "Phred Phlyntstone", "age": 32}, |
| 328 | + {"name": "Bharney Rhubbyl", "age": 31}, |
| 329 | + ], |
| 330 | + [ |
| 331 | + ArrayQueryParameter( |
| 332 | + name=None, |
| 333 | + array_type="RECORD", |
| 334 | + values=[ |
| 335 | + StructQueryParameter( |
| 336 | + None, |
| 337 | + ScalarQueryParameter( |
| 338 | + name="name", type_="STRING", value="Phred Phlyntstone" |
| 339 | + ), |
| 340 | + ScalarQueryParameter(name="age", type_="INT64", value=32), |
| 341 | + ), |
| 342 | + StructQueryParameter( |
| 343 | + None, |
| 344 | + ScalarQueryParameter( |
| 345 | + name="name", type_="STRING", value="Bharney Rhubbyl" |
| 346 | + ), |
| 347 | + ScalarQueryParameter(name="age", type_="INT64", value=31), |
| 348 | + ), |
| 349 | + ], |
| 350 | + ) |
| 351 | + ], |
| 352 | + ), |
| 353 | + ( |
| 354 | + "SELECT @empty_array_param", |
| 355 | + [], |
| 356 | + [ |
| 357 | + ArrayQueryParameter( |
| 358 | + name="empty_array_param", |
| 359 | + values=[], |
| 360 | + array_type=StructQueryParameterType( |
| 361 | + ScalarQueryParameterType(name="foo", type_="INT64"), |
| 362 | + ScalarQueryParameterType(name="bar", type_="STRING"), |
| 363 | + ), |
| 364 | + ) |
| 365 | + ], |
| 366 | + ), |
| 367 | + ( |
| 368 | + "SELECT @roles", |
| 369 | + { |
| 370 | + "hero": {"name": "Phred Phlyntstone", "age": 32}, |
| 371 | + "sidekick": {"name": "Bharney Rhubbyl", "age": 31}, |
| 372 | + }, |
| 373 | + [ |
| 374 | + StructQueryParameter( |
| 375 | + "roles", |
| 376 | + StructQueryParameter( |
| 377 | + "hero", |
| 378 | + ScalarQueryParameter( |
| 379 | + name="name", type_="STRING", value="Phred Phlyntstone" |
| 380 | + ), |
| 381 | + ScalarQueryParameter(name="age", type_="INT64", value=32), |
| 382 | + ), |
| 383 | + StructQueryParameter( |
| 384 | + "sidekick", |
| 385 | + ScalarQueryParameter( |
| 386 | + name="name", type_="STRING", value="Bharney Rhubbyl" |
| 387 | + ), |
| 388 | + ScalarQueryParameter(name="age", type_="INT64", value=31), |
| 389 | + ), |
| 390 | + ), |
| 391 | + ], |
| 392 | + ), |
| 393 | + ( |
| 394 | + "SELECT ?", |
| 395 | + {"friends": ["Jack", "Jill"]}, |
| 396 | + [ |
| 397 | + StructQueryParameter( |
| 398 | + None, |
| 399 | + ArrayQueryParameter( |
| 400 | + name="friends", array_type="STRING", values=["Jack", "Jill"] |
| 401 | + ), |
| 402 | + ) |
| 403 | + ], |
| 404 | + ), |
330 | 405 | ),
|
331 | 406 | )
|
332 | 407 | def test_query_parameters(
|
333 | 408 | bigquery_client, query_api_method, sql, expected, query_parameters
|
334 | 409 | ):
|
335 |
| - # array_param = ArrayQueryParameter( |
336 |
| - # name="array_param", array_type="INT64", values=[1, 2] |
337 |
| - # ) |
338 |
| - # struct_param = StructQueryParameter("hitchhiker", question_param, answer_param) |
339 |
| - # phred_name = "Phred Phlyntstone" |
340 |
| - # phred_name_param = ScalarQueryParameter( |
341 |
| - # name="name", type_="STRING", value=phred_name |
342 |
| - # ) |
343 |
| - # phred_age = 32 |
344 |
| - # phred_age_param = ScalarQueryParameter( |
345 |
| - # name="age", type_="INT64", value=phred_age |
346 |
| - # ) |
347 |
| - # phred_param = StructQueryParameter(None, phred_name_param, phred_age_param) |
348 |
| - # bharney_name = "Bharney Rhubbyl" |
349 |
| - # bharney_name_param = ScalarQueryParameter( |
350 |
| - # name="name", type_="STRING", value=bharney_name |
351 |
| - # ) |
352 |
| - # bharney_age = 31 |
353 |
| - # bharney_age_param = ScalarQueryParameter( |
354 |
| - # name="age", type_="INT64", value=bharney_age |
355 |
| - # ) |
356 |
| - # bharney_param = StructQueryParameter( |
357 |
| - # None, bharney_name_param, bharney_age_param |
358 |
| - # ) |
359 |
| - # characters_param = ArrayQueryParameter( |
360 |
| - # name=None, array_type="RECORD", values=[phred_param, bharney_param] |
361 |
| - # ) |
362 |
| - # empty_struct_array_param = ArrayQueryParameter( |
363 |
| - # name="empty_array_param", |
364 |
| - # values=[], |
365 |
| - # array_type=StructQueryParameterType( |
366 |
| - # ScalarQueryParameterType(name="foo", type_="INT64"), |
367 |
| - # ScalarQueryParameterType(name="bar", type_="STRING"), |
368 |
| - # ), |
369 |
| - # ) |
370 |
| - # hero_param = StructQueryParameter("hero", phred_name_param, phred_age_param) |
371 |
| - # sidekick_param = StructQueryParameter( |
372 |
| - # "sidekick", bharney_name_param, bharney_age_param |
373 |
| - # ) |
374 |
| - # roles_param = StructQueryParameter("roles", hero_param, sidekick_param) |
375 |
| - # friends_param = ArrayQueryParameter( |
376 |
| - # name="friends", array_type="STRING", values=[phred_name, bharney_name] |
377 |
| - # ) |
378 |
| - # with_friends_param = StructQueryParameter(None, friends_param) |
379 |
| - # top_left_param = StructQueryParameter( |
380 |
| - # "top_left", |
381 |
| - # ScalarQueryParameter("x", "INT64", 12), |
382 |
| - # ScalarQueryParameter("y", "INT64", 102), |
383 |
| - # ) |
384 |
| - # bottom_right_param = StructQueryParameter( |
385 |
| - # "bottom_right", |
386 |
| - # ScalarQueryParameter("x", "INT64", 22), |
387 |
| - # ScalarQueryParameter("y", "INT64", 92), |
388 |
| - # ) |
389 |
| - # rectangle_param = StructQueryParameter( |
390 |
| - # "rectangle", top_left_param, bottom_right_param |
391 |
| - # ) |
392 | 410 |
|
393 | 411 | jconfig = bigquery.QueryJobConfig()
|
394 | 412 | jconfig.query_parameters = query_parameters
|
|
0 commit comments