googleapis / googleapis/google-cloud-python

Column type selection for BIGNUMERIC vs NUMERIC is incorrect

Offen
#15,765 8 Kommentare 0 Reaktionen 1 zugewiesene Person Zugewiesen an @Neenu1995 Auf GitHub ansehen
api: bigquery
Vorherrschende Sprache
Python
Sterne
5.4k
Forks
1.8k
Ø Merge
3 T. 4 Std.
Gemergte PRs (30 T.)
122

Beschreibung

#### 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]
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

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