Skip to content
This repository was archived by the owner on Mar 31, 2026. It is now read-only.

Commit 4559df9

Browse files
rahul2393claude
andcommitted
Merge origin/main into enhance-error-message
Resolved merge conflict in snapshot.py by combining: - Main's simplified retry approach (iterator = None) - Feature branch's request_id tracking and error augmentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2 parents 0056aa2 + ed4735b commit 4559df9

18 files changed

+115
-60
lines changed

.librarian/state.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator@sha256:b8058df4c45e9a6e07f6b4d65b458d0d059241dd34c814f151c8bf6b89211209
22
libraries:
33
- id: google-cloud-spanner
4-
version: 3.61.0
4+
version: 3.62.0
55
last_generated_commit: a17b84add8318f780fcc8a027815d5fee644b9f7
66
apis:
77
- path: google/spanner/admin/instance/v1

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,20 @@
44

55
[1]: https://pypi.org/project/google-cloud-spanner/#history
66

7+
## [3.62.0](https://github.com/googleapis/python-spanner/compare/v3.61.0...v3.62.0) (2026-01-14)
8+
9+
10+
### Features
11+
12+
* add uuid support (#1310) ([3b1792aad1d046b6ae1e5c982f5047289dffd95c](https://github.com/googleapis/python-spanner/commit/3b1792aad1d046b6ae1e5c982f5047289dffd95c))
13+
14+
15+
### Bug Fixes
16+
17+
* handle errors during stream restart in snapshot (#1471) ([c0668735cb69532f4c852bb7678f63e54da2d34e](https://github.com/googleapis/python-spanner/commit/c0668735cb69532f4c852bb7678f63e54da2d34e))
18+
* resolve pre-release dependency failures and sqlparse recursion (#1472) ([9ec95b7df5e921112bd58b820722103177e0e5b6](https://github.com/googleapis/python-spanner/commit/9ec95b7df5e921112bd58b820722103177e0e5b6))
19+
* transaction_tag should be set on BeginTransactionRequest (#1463) ([3d3cea0b5afb414a506ab08eebae733d803f17ac](https://github.com/googleapis/python-spanner/commit/3d3cea0b5afb414a506ab08eebae733d803f17ac))
20+
721
## [3.61.0](https://github.com/googleapis/python-spanner/compare/v3.60.0...v3.61.0) (2025-12-16)
822

923

google/cloud/spanner_admin_database_v1/gapic_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
#
16-
__version__ = "3.61.0" # {x-release-please-version}
16+
__version__ = "3.62.0" # {x-release-please-version}

google/cloud/spanner_admin_instance_v1/gapic_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
#
16-
__version__ = "3.61.0" # {x-release-please-version}
16+
__version__ = "3.62.0" # {x-release-please-version}

google/cloud/spanner_dbapi/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@
1515
import platform
1616

1717
PY_VERSION = platform.python_version()
18-
__version__ = "3.61.0"
18+
__version__ = "3.62.0"
1919
VERSION = __version__
2020
DEFAULT_USER_AGENT = "gl-dbapi/" + VERSION

google/cloud/spanner_v1/_opentelemetry_tracing.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636

3737
TRACER_NAME = "cloud.google.com/python/spanner"
3838
TRACER_VERSION = gapic_version.__version__
39+
GCP_RESOURCE_NAME_PREFIX = "//spanner.googleapis.com/"
3940
extended_tracing_globally_disabled = (
4041
os.getenv("SPANNER_ENABLE_EXTENDED_TRACING", "").lower() == "false"
4142
)
@@ -106,6 +107,7 @@ def trace_call(
106107
"gcp.client.service": "spanner",
107108
"gcp.client.version": TRACER_VERSION,
108109
"gcp.client.repo": "googleapis/python-spanner",
110+
"gcp.resource.name": GCP_RESOURCE_NAME_PREFIX + db_name,
109111
}
110112

111113
if extra_attributes:

google/cloud/spanner_v1/gapic_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
#
16-
__version__ = "3.61.0" # {x-release-please-version}
16+
__version__ = "3.62.0" # {x-release-please-version}

google/cloud/spanner_v1/snapshot.py

Lines changed: 12 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -152,31 +152,12 @@ def _restart_on_unavailable(
152152

153153
except ServiceUnavailable:
154154
del item_buffer[:]
155-
with trace_call(
156-
trace_name,
157-
session,
158-
attributes,
159-
observability_options=observability_options,
160-
metadata=metadata,
161-
) as span, MetricsCapture():
162-
request.resume_token = resume_token
163-
if transaction is not None:
164-
transaction_selector = transaction._build_transaction_selector_pb()
165-
request.transaction = transaction_selector
166-
attempt += 1
167-
(
168-
call_metadata,
169-
current_request_id,
170-
) = request_id_manager.metadata_and_request_id(
171-
nth_request,
172-
attempt,
173-
metadata,
174-
span,
175-
)
176-
iterator = method(
177-
request=request,
178-
metadata=call_metadata,
179-
)
155+
request.resume_token = resume_token
156+
if transaction is not None:
157+
transaction_selector = transaction._build_transaction_selector_pb()
158+
request.transaction = transaction_selector
159+
attempt += 1
160+
iterator = None
180161
continue
181162

182163
except InternalServerError as exc:
@@ -187,31 +168,12 @@ def _restart_on_unavailable(
187168
if not resumable_error:
188169
raise _augment_error_with_request_id(exc, current_request_id)
189170
del item_buffer[:]
190-
with trace_call(
191-
trace_name,
192-
session,
193-
attributes,
194-
observability_options=observability_options,
195-
metadata=metadata,
196-
) as span, MetricsCapture():
197-
request.resume_token = resume_token
198-
if transaction is not None:
199-
transaction_selector = transaction._build_transaction_selector_pb()
200-
attempt += 1
201-
request.transaction = transaction_selector
202-
(
203-
call_metadata,
204-
current_request_id,
205-
) = request_id_manager.metadata_and_request_id(
206-
nth_request,
207-
attempt,
208-
metadata,
209-
span,
210-
)
211-
iterator = method(
212-
request=request,
213-
metadata=call_metadata,
214-
)
171+
request.resume_token = resume_token
172+
if transaction is not None:
173+
transaction_selector = transaction._build_transaction_selector_pb()
174+
attempt += 1
175+
request.transaction = transaction_selector
176+
iterator = None
215177
continue
216178

217179
except Exception as exc:

samples/generated_samples/snippet_metadata_google.spanner.admin.database.v1.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
],
99
"language": "PYTHON",
1010
"name": "google-cloud-spanner-admin-database",
11-
"version": "3.61.0"
11+
"version": "3.62.0"
1212
},
1313
"snippets": [
1414
{

samples/generated_samples/snippet_metadata_google.spanner.admin.instance.v1.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
],
99
"language": "PYTHON",
1010
"name": "google-cloud-spanner-admin-instance",
11-
"version": "3.61.0"
11+
"version": "3.62.0"
1212
},
1313
"snippets": [
1414
{

0 commit comments

Comments
 (0)