googleapis / googleapis/google-cloud-python

Add documentation on multi-statement queries

Aperta
#15,771 1 commento 1 reazione 1 assegnatario Assegnata a @chalmerlowe Vedi su GitHub
api: bigquery priority: p3 type: docs
Lingua principale
Python
Stelle
5.4k
Fork
1.8k
Merge medio
3g 4h
PR unite (30g)
122

Descrizione

**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.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.