- Notifications
You must be signed in to change notification settings - Fork138
Open
Description
Description
There is a discrepancy between thedocumentation for numeric types and what appears when creating a numeric column:
Field [some_field] has precision [some_precision] and scale [some_scale] but precision and scale for NUMERIC must be: 0 <= precision - scale <= 29
from the BigQuery Console
Environment details
- OS type and version:
- Python version:
Python 3.11.10 - pip version:
pip 24.0 sqlalchemy-bigqueryversion:Version: 1.12.0
Steps to reproduce
- Attempt to make a table with a column of type
NUMERICwithprecision=37andscale=0using SQLAlchemy
Code example
importsqlalchemyassafromsqlalchemy_bigquery._typesimportNUMERICengine=sa.create_engine("bigquery://")table=sa.Table("test",sa.MetaData(...),sa.Column("id",NUMERIC(37,0),primary_key=True))table.create(engine)
Stack trace
DatabaseError: (google.cloud.bigquery.dbapi.exceptions.DatabaseError) 400 POST https://bigquery.googleapis.com/bigquery/v2/projects/govis-sandbox/queries?prettyPrint=false: In NUMERIC(P, 0), P must be between1 and 29 at [3:27]