googleapis / googleapis/google-cloud-python

Grouping by struct member broken in 1.11

Aperta
#15,775 3 commenti 0 reazioni 2 assegnatari Rivendicata da @chalmerlowe Vedi su GitHub
api: bigquery
Lingua principale
Python
Stelle
5.4k
Fork
1.8k
Merge medio
3g 4h
PR unite (30g)
122

Descrizione

The following worked in 1.10 but raises an exception in 1.11:
```
from sqlalchemy import create_engine, Table, Integer, MetaData, Column, select, func
from sqlalchemy_bigquery import STRUCT

engine = create_engine(f"bigquery:///tmp", echo=True)
metadata = MetaData()
table = Table(
"table",
metadata,
Column("id", Integer, primary_key=True),
Column("nested", STRUCT(x=Integer))
)

query = (
select(
table.c.nested.x.label("x"),
)
.group_by(
"x"
)
)
print(query.compile(engine))
```
->
```
UnsupportedCompilationError: Compiler can't render element of type (Background on this error at: https://sqlalche.me/e/14/l7de)
```

I traced the issue back to this line: https://github.com/googleapis/python-bigquery-sqlalchemy/pull/1053/files#diff-efe1987a73ae5b54aa817dc8c70541025df89d9d08601c8ab33fa84ad8c09de7R344

Removing this check or catching the exception resolves the issue. Perhaps a safer way to do this check would be to see if it's a function and then check its name? Not totally sure but I'm sure you will know @tswast 🙂

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.