googleapis / googleapis/google-cloud-python

Add documentation on multi-statement queries

Offen
#15,771 1 Kommentar 1 Reaktion 1 zugewiesene Person Zugewiesen an @chalmerlowe Auf GitHub ansehen
api: bigquery priority: p3 type: docs
Vorherrschende Sprache
Python
Sterne
5.4k
Forks
1.8k
Ø Merge
3 T. 4 Std.
Gemergte PRs (30 T.)
122

Beschreibung

**Is your feature request related to a problem? Please describe.**
I'm unsure how to make the best use of the library. Say I have a query like:
```sql
CREATE TEMP TABLE matching_foos AS (
SELECT foo_table.name, foo_table.id FROM foo_table
WHERE foo_table.name LIKE "%123%"
);
SELECT matching_foos.name, matching_foos.id
FROM matching_foos;
```

It's my understanding that as of googleapis/python-bigquery-sqlalchemy#74 it's possible to execute this multi-statement query. But, I can't figure out how to *build* such a query using sqlalchemy statements. e.g. if I have

```py
def get_matching_foos_query() -> sqlalchemy.selectable:
return sqlalchemy.select(models.foo_table.c.name, models.foo_table.c.id).where(models.foo_table.c.name.like("%123%"))
```

How would I then turn that into a temp table and then reference that table? Do I have to do a literal compile and then throw it into a sqlalchemy.text? Is there any sqlalchemy-style invocation to support this use case using similar `.c.column_a` syntax?

**Describe the solution you'd like**
Documentation (in the main README perhaps? or a link to a test file?) demonstrating how to create pythonic multi-statement queries that leverage some amount of modularity (vs straight text). Ideally would love to see: `CREATE TEMP TABLE` and `SET`/`DECLARE`
**Describe alternatives you've considered**
I really want to avoid just sending text. Doing so loses all of sqlalchemy's power to create modular statements by reusing filters, selectables, etc.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.