googleapis / googleapis/google-cloud-python

Column type selection for BIGNUMERIC vs NUMERIC is incorrect

Abierto
#15,765 8 comentarios 0 reacciones 1 asignado Asignado a @Neenu1995 Ver en GitHub
api: bigquery
Lenguaje dominante
Python
Estrellas
5.4k
Forks
1.8k
Merge medio
3 d 4 h
PR fusionados (30 d)
122

Descripción

#### Description

There is a discrepancy between the [documentation for numeric types](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#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-bigquery` version: `Version: 1.12.0`

#### Steps to reproduce

1. Attempt to make a table with a column of type `NUMERIC` with `precision=37` and `scale=0` using SQLAlchemy

#### Code example

```python
import sqlalchemy as sa
from sqlalchemy_bigquery._types import NUMERIC

engine = 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 between
1 and 29 at [3:27]
```

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.