Timestamp Returned In Scientific Notation By API Crashes Field Cast

Open Beginner friendly
#17,277 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
68/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
python
Domain
database

Research direction

Start in google/cloud/bigquery/_helpers.py around line 264 and reproduce loading a timestamp returned in scientific notation. Confirm the BigQuery client can load the value without raising a TypeError while preserving the expected timestamp behavior.

Written by the indexing model from the issue text.

Description

api: bigquery priority: p2 type: bug
Determine this is the right repository
  • I determined this is the correct repository in which to report this bug.
Summary of the issue

Context
Write a timestamp field to the BigQuery API that was written using UnixTime stamp from python.
Then try to load it as an object.

Expected Behavior:
Timestamp comes back without errors.

Actual Behavior:
Getting a TypeError when int tries to parse "1.67899e8".

API client name and version

google-cloud-bigquery

Reproduction steps: code

See: google-cloud-bigquery/google/cloud/bigquery/_helpers.py#L264

Line 264 is: return _datetime_from_microseconds(int(value))

The int cast causes the error when the API returns '1.345345e8', which it does.

Reproduction steps: supporting files

Write a timestamp to bigqurry using time.time()... its accepted.
Load the value back.... causes error.

Reproduction steps: actual results
Reproduction steps: expected results


### OS & version + platform

_No response_

### Python environment

_No response_

### Python dependencies

_No response_

### Additional context

_No response_
Dominant language
Python
Stars
5.4k
Forks
1.8k
Avg merge
1d 17h
Merged PRs (30d)
93

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from googleapis/google-cloud-python

All issues in googleapis/google-cloud-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.