Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1096 commits
Select commit Hold shift + click to select a range
e0feefb
chore(main): release 3.42.0 (#1079)
release-please[bot] Jan 30, 2024
8c2c429
chore(deps): update all dependencies (#1066)
renovate-bot Jan 30, 2024
09490e7
chore(deps): update dependency google-cloud-spanner to v3.42.0 (#1089)
renovate-bot Jan 30, 2024
1d7915a
feat: Add support for max commit delay (#1050)
nginsberg-google Feb 5, 2024
05067c4
feat: Exposing Spanner client in dbapi connection (#1100)
ankiaga Feb 12, 2024
6c6b143
chore: support named schemas (#1073)
olavloite Feb 12, 2024
7cd7df4
feat: Untyped param (#1001)
asthamohta Feb 13, 2024
e88f8ed
chore: Adding schema name property in dbapi connection (#1101)
ankiaga Feb 14, 2024
e3df5df
chore: add a new directory for archived samples of admin APIs. (#1102)
rahul2393 Feb 14, 2024
f1718df
feat: Include RENAME in DDL regex (#1075)
killah777 Feb 17, 2024
3ad40eb
feat: support partitioned dml in dbapi (#1103)
ankiaga Feb 20, 2024
91ef11c
docs: samples and tests for admin backup APIs (#1105)
rahul2393 Feb 26, 2024
f013a21
docs: samples and tests for admin database APIs (#1099)
rahul2393 Feb 26, 2024
d1cc7dc
docs: update all public documents to use auto-generated admin clients…
rahul2393 Mar 4, 2024
a8fae6d
docs: use autogenerated methods to get names from admin samples (#1110)
rahul2393 Mar 4, 2024
3561739
test: skip sample tests if no changes detected (#1106)
rahul2393 Mar 6, 2024
3b726f0
feat: add retry and timeout for batch dml (#1107)
harshachinta Mar 6, 2024
039fa45
chore(main): release 3.43.0 (#1093)
release-please[bot] Mar 6, 2024
d870362
build(deps): bump cryptography from 42.0.2 to 42.0.4 in .kokoro (#1108)
gcf-owl-bot[bot] Mar 6, 2024
b9429f1
samples: add a sample for the max commit delay feature (#1097)
nginsberg-google Mar 7, 2024
bcc7687
docs: add sample for managed autoscaler (#1111)
rahul2393 Mar 7, 2024
33c3f33
fix: Correcting name of variable from `table_schema` to `schema_name`…
ankiaga Mar 11, 2024
51f196a
feat: add support of float32 type (#1113)
rahul2393 Mar 12, 2024
d87df1f
feat: Changes for float32 in dbapi (#1115)
ankiaga Mar 13, 2024
6e72458
chore(main): release 3.44.0 (#1112)
release-please[bot] Mar 15, 2024
8164cc3
feat: add support for PG.OID in parameterized queries (#1035)
larkee Apr 8, 2024
9ba2433
chore(python): update templated files (#1126)
gcf-owl-bot[bot] Apr 12, 2024
0be7746
chore(deps): update all dependencies (#1091)
renovate-bot Apr 12, 2024
4adcc9c
ref: use stdlib warnings module instead of a third party dependency (…
asottile-sentry Apr 12, 2024
a24aaf7
fix: Dates before 1000AD should use 4-digit years (#1132)
c2nes Apr 17, 2024
9cfb7c7
chore(main): release 3.45.0 (#1123)
release-please[bot] Apr 18, 2024
40d7666
chore: Update gapic-generator-python to v1.17.1 (#1090)
gcf-owl-bot[bot] May 2, 2024
e8b72c1
chore(main): release 3.46.0 (#1135)
release-please[bot] May 2, 2024
4723734
feat: Add support for multi region encryption config (#1136)
gcf-owl-bot[bot] May 6, 2024
42f4042
feat(spanner): add support for Proto Columns (#1084)
harshachinta May 16, 2024
df74972
chore(spanner): Proto regeneration protoc (#1142)
harshachinta May 22, 2024
d90a9c1
chore(main): release 3.47.0 (#1137)
release-please[bot] May 31, 2024
b255321
feat(spanner): add support for txn changstream exclusion (#1152)
harshachinta Jun 20, 2024
b43ee81
chore: update templated files (#1156)
parthea Jul 8, 2024
6ea270c
chore(python): use python 3.10 for docs build (#1160)
gcf-owl-bot[bot] Jul 9, 2024
b1f1109
chore(deps): update all dependencies (#1161)
renovate-bot Jul 11, 2024
fb8fda8
fix: Allow protobuf 5.x (#1144)
gcf-owl-bot[bot] Jul 12, 2024
5907b30
chore(spanner): Issue#1163 Remove dependency of spanner dbapi from sp…
bhatt4982 Jul 22, 2024
d616e02
chore(deps): update dependency pytest to v8.3.2 (#1167)
renovate-bot Jul 29, 2024
e8f58f1
fix(spanner): unskip emulator tests for proto (#1145)
harshachinta Jul 29, 2024
0eacf4f
chore: Update gapic-generator-python to v1.18.4 (#1174)
gcf-owl-bot[bot] Jul 30, 2024
7f0585d
chore(main): release 3.48.0 (#1153)
release-please[bot] Jul 31, 2024
e7d741b
chore(spanner): Issue591# cursor.list tables() is returning views (#1…
bhatt4982 Aug 5, 2024
6ab5f13
chore(deps): update dependency google-cloud-spanner to v3.48.0 (#1177)
renovate-bot Aug 5, 2024
82e9b1d
feat(spanner): add samples for instance partitions (#1168)
varuncnaik Aug 6, 2024
6e3f938
feat(spanner): Add resource reference annotation to backup schedules …
gcf-owl-bot[bot] Aug 19, 2024
c50b3b5
test(spanner): Refactoring testdata (#1184)
bhatt4982 Aug 19, 2024
ab38913
chore(spanner): Issue#1143 - Update dependency (#1158)
bhatt4982 Aug 26, 2024
4770ead
chore(spanner): Issue1178# [spanner_dbapi] While running a query that…
bhatt4982 Aug 27, 2024
2247a69
feat: Create a few code snippets as examples for using Spanner Graph …
bharadwajvr Aug 27, 2024
dadfae6
fix: JsonObject init when called on JsonObject of list (#1166)
forksumit Aug 27, 2024
b44c0da
chore(main): release 3.49.0 (#1182)
release-please[bot] Sep 4, 2024
f66ad00
Revert "chore(spanner): Issue#1143 - Update dependency (#1158)" (#1197)
harshachinta Sep 6, 2024
543fefd
chore(main): release 3.49.1 (#1198)
release-please[bot] Sep 6, 2024
570abff
test: enable emulator tests for POSTGRESQL dialect (#1201)
larkee Sep 16, 2024
4ed8998
build(python): release script update (#1205)
gcf-owl-bot[bot] Sep 16, 2024
5e2a8b2
chore(deps): update all dependencies (#1183)
renovate-bot Sep 17, 2024
1d062e8
chore(samples): add sample for spanner edition (#1196)
alkatrivedi Sep 17, 2024
d53f4f4
tracing: update OpenTelemetry dependencies from 2021 to 2024 (#1199)
odeke-em Sep 18, 2024
49ef574
chore(samples): Add samples for Cloud Spanner Scheduled Backups (#1204)
ketanv3 Sep 20, 2024
465c31f
chore: update sample instance edition to ENTERPRISE_PLUS for testing …
harshachinta Oct 16, 2024
fceb83b
feat: allow multiple KMS keys to create CMEK database/backup (#1191)
hwin16 Oct 28, 2024
efb37e7
fix: add PROTO in streaming chunks (#1213)
harshachinta Oct 28, 2024
5035f70
chore: Configure Ruby clients for google-ads-ad_manager (#1209)
gcf-owl-bot[bot] Oct 31, 2024
15c1133
chore(deps): update all dependencies (#1206)
renovate-bot Oct 31, 2024
7bcdd74
fix: pin `nox` version in `requirements.in` for devcontainer. (#1215)
gagangupt16 Nov 7, 2024
0728762
fix: pass through route-to-leader option in dbapi (#1223)
olavloite Nov 11, 2024
8c9fbf3
chore(main): release 3.50.0 (#1220)
release-please[bot] Nov 11, 2024
ac4cdc7
fix(spanner): multi_scm issue in python release (#1230)
sakthivelmanii Nov 11, 2024
9b255a1
chore: update templated files (#1235)
gcf-owl-bot[bot] Nov 13, 2024
c5ec41f
fix: json data type for non object values (#1236)
surbhigarg92 Nov 14, 2024
4c438a6
chore(main): release 3.50.1 (#1231)
release-please[bot] Nov 14, 2024
d34eaf4
feat(spanner): implement custom tracer_provider injection for opentel…
odeke-em Nov 15, 2024
4f152d1
docs(samples): Add samples for Cloud Spanner Default Backup Schedules…
Sally-Ye Nov 18, 2024
6f39f72
perf: optimize ResultSet decoding (#1244)
olavloite Dec 2, 2024
4c7b1d9
feat: add connection variable for ignoring transaction warnings (#1249)
olavloite Dec 4, 2024
34d1020
fix: allow setting connection.read_only to same value (#1247)
olavloite Dec 4, 2024
2225a5e
feat: support float32 parameters in dbapi (#1245)
olavloite Dec 4, 2024
411804f
test: add mock server tests (#1217)
olavloite Dec 5, 2024
d3d3839
fix: allow setting staleness to same value in tx (#1253)
olavloite Dec 5, 2024
5b956ef
perf: remove repeated GetSession calls for FixedSizePool (#1252)
olavloite Dec 5, 2024
0c06997
build: add mock server tests to Owlbot config (#1254)
olavloite Dec 5, 2024
142a01f
fix: dbapi raised AttributeError with [] as arguments (#1257)
olavloite Dec 5, 2024
8ca5957
test: create base class for mockserver tests (#1255)
olavloite Dec 5, 2024
da80152
chore(main): release 3.51.0 (#1240)
release-please[bot] Dec 6, 2024
c41fbb3
fix(tracing): only set span.status=OK if UNSET (#1248)
odeke-em Dec 6, 2024
c07c882
observability: annotate Session+SessionPool events (#1207)
odeke-em Dec 6, 2024
d4eb100
test: add test to verify that transactions are retried (#1267)
olavloite Dec 16, 2024
2f09b59
feat: add updated span events + trace more methods (#1259)
odeke-em Dec 17, 2024
7a75ff0
feat(x-goog-spanner-request-id): introduce AtomicCounter (#1275)
odeke-em Dec 19, 2024
2082366
test: support inline-begin in mock server (#1271)
olavloite Dec 20, 2024
0a288e4
fix: retry UNAVAILABLE errors for streaming RPCs (#1278)
olavloite Jan 1, 2025
b527f9b
chore(python): Update the python version in docs presubmit to use 3.1…
gcf-owl-bot[bot] Jan 3, 2025
9f20785
feat: support GRAPH and pipe syntax in dbapi (#1285)
olavloite Jan 7, 2025
ac974b6
chore: Add Custom OpenTelemetry Exporter in for Service Metrics (#1273)
lszinv Jan 8, 2025
3872e0f
fix: update retry strategy for mutation calls to handle aborted trans…
aakashanandg Jan 9, 2025
13f878e
observability: PDML + some batch write spans (#1274)
odeke-em Jan 10, 2025
6b0c190
fix(tracing): ensure nesting of Transaction.begin under commit + fix …
odeke-em Jan 13, 2025
a887552
feat: support transaction and request tags in dbapi (#1262)
olavloite Jan 13, 2025
88f4e59
chore(python): exclude .github/workflows/unittest.yml in renovate con…
gcf-owl-bot[bot] Jan 14, 2025
82c25da
Feat: MetricsTracer implementation (#1291)
lszinv Jan 24, 2025
b4103f0
chore(spanner): Update CODEOWNERS (#1304)
sakthivelmanii Jan 29, 2025
1ea299f
feat: add GCP standard otel attributes for python client (#1308)
harshachinta Feb 19, 2025
00667d8
chore(main): release 3.52.0 (#1258)
release-please[bot] Feb 20, 2025
f74149a
feat(spanner): A new enum `IsolationLevel` is added (#1224)
gcf-owl-bot[bot] Feb 21, 2025
49623e3
perf: add option for last_statement (#1313)
olavloite Feb 27, 2025
1817c80
chore(python): conditionally load credentials in .kokoro/build.sh (#1…
gcf-owl-bot[bot] Mar 3, 2025
1ff7e3c
build: update system tests to test protobuf implementation (#1321)
parthea Mar 5, 2025
4f52781
chore: Remove unused files (#1319)
parthea Mar 5, 2025
8d9097f
feat: Add Attempt, Operation and GFE Metrics (#1302)
lszinv Mar 6, 2025
11b823e
fix: allow Protobuf 6.x (#1320)
parthea Mar 10, 2025
bc6ce1b
feat: end to end tracing (#1315)
surbhigarg92 Mar 11, 2025
2328d55
feat: snapshot isolation (#1318)
surbhigarg92 Mar 12, 2025
c4eecbd
chore: sample for opentelemetry traces (#1323)
surbhigarg92 Mar 12, 2025
b71ee0e
Fix: Cleanup after metric integration test (#1322)
lszinv Mar 12, 2025
b44fcd0
chore(main): release 3.53.0 (#1311)
release-please[bot] Mar 13, 2025
8cb247e
feat: support transaction isolation level in dbapi (#1327)
olavloite Apr 2, 2025
03270f4
fix: improve client-side regex statement parser (#1328)
olavloite Apr 3, 2025
85d48fe
feat: add SQL statement for begin transaction isolation level (#1331)
olavloite Apr 14, 2025
0098fcb
chore(python): remove noxfile.py from templates (#1335)
gcf-owl-bot[bot] Apr 14, 2025
4854cf6
feat: add sample for pre-split feature (#1333)
aksharauke Apr 22, 2025
2eb7999
chore: sample fix with increased timeout (#1339)
harshachinta Apr 22, 2025
c409e2c
feat: add interval type support (#1340)
rahul2393 Apr 28, 2025
84a18fd
chore(main): release 3.54.0 (#1330)
release-please[bot] Apr 28, 2025
f06c579
fix: remove setup.cfg configuration for creating universal wheels (#1…
parthea Apr 29, 2025
095509b
fix: E2E tracing metadata append issue (#1357)
surbhigarg92 May 2, 2025
9506d3f
test: fix retry helpers currently causing flaky test failures (#1369)
olavloite May 5, 2025
a97b716
fix: pass through kwargs in dbapi connect (#1368)
olavloite May 6, 2025
c767cea
build: reduce build time (#1370)
olavloite May 6, 2025
9b57500
chore(x-goog-request-id): commit testing scaffold (#1366)
odeke-em May 7, 2025
a8fccf2
feat: support fine-grained permissions database roles in connect (#1338)
waltaskew May 7, 2025
59eb002
test: add explicit credentials and project to test (#1372)
olavloite May 7, 2025
f7bee55
build: exclude presubmit.cfg from owlbot generation (#1373)
olavloite May 7, 2025
7a5877d
chore(x-goog-spanner-request-id): plug in functionality after test sc…
odeke-em May 17, 2025
1f7f398
test: add a test for unary retries of UNAVAILABLE (#1376)
olavloite May 20, 2025
5fcbcde
docs: fix markdown formatting in transactions page (#1377)
rahul2393 May 20, 2025
bc21b41
chore(x-goog-spanner-request-id): add x_goog_spanner_request_id as an…
odeke-em May 21, 2025
948f157
chore: Update gapic-generator-python to 1.24.1 (#1314)
gcf-owl-bot[bot] May 21, 2025
0e7e695
chore(x-goog-spanner-request-id): more updates for batch_write + mock…
odeke-em May 22, 2025
e983021
chore: add samples for transaction timeout configuration (#1380)
alkatrivedi May 27, 2025
2f5c5af
feat: Add support for multiplexed sessions (#1381)
rahul2393 May 28, 2025
03f6741
chore(main): release 3.55.0 (#1363)
release-please[bot] May 28, 2025
195a322
chore: add sample to set statement timeout within a transaciton (#1384)
alkatrivedi Jun 4, 2025
bd99e7f
feat: Add support for multiplexed sessions (#1383)
currantw Jun 10, 2025
33d50e5
perf: Skip gRPC trailers for StreamingRead & ExecuteStreamingSql (#1385)
sakthivelmanii Jun 16, 2025
40498ce
feat: Add support for multiplexed sessions - read/write (#1389)
currantw Jun 18, 2025
3541e0b
tests: update default runtime used for tests (#1391)
parthea Jul 3, 2025
a44226d
feat: default enable multiplex session for all operations unless expl…
rahul2393 Jul 24, 2025
38d4989
feat(spanner): add new change_stream.proto (#1382)
gcf-owl-bot[bot] Jul 24, 2025
4159775
chore(main): release 3.56.0 (#1386)
release-please[bot] Jul 24, 2025
f8f68b2
feat: support configuring logger in dbapi kwargs (#1400)
olavloite Aug 12, 2025
0cbb3c8
chore: make precommit token check emulator-proof (#1402)
olavloite Aug 14, 2025
3968cbf
chore(main): release 3.57.0 (#1401)
release-please[bot] Aug 14, 2025
fe00eb5
deps: Remove Python 3.7 and 3.8 as supported runtimes (#1395)
rahul2393 Aug 26, 2025
53f8c2b
feat(spanner): support setting read lock mode (#1404)
skuruppu Aug 26, 2025
1de10ce
chore(deps): update all dependencies (#1283)
renovate-bot Aug 27, 2025
fc3dadc
chore(deps): update actions/setup-python action to v6 (#1407)
renovate-bot Sep 4, 2025
6a05b57
chore: Update gapic-generator-python to 1.26.2 (#1406)
gcf-owl-bot[bot] Sep 10, 2025
0b41a27
chore(main): release 3.58.0 (#1405)
release-please[bot] Sep 22, 2025
4c70566
docs: Add snippet for Repeatable Read configuration at client and tra…
surbhigarg92 Sep 24, 2025
5939027
feat(spanner): add lazy decode to partitioned query (#1411)
sinhasubham Oct 9, 2025
6984260
fix(spanner): resolve TypeError in metrics resource detection (#1446)
sinhasubham Oct 18, 2025
5b080a0
chore(main): release 3.59.0 (#1412)
release-please[bot] Oct 23, 2025
e8a1cb8
fix: configure keepAlive time for gRPC TCP connections (#1448)
rahul2393 Oct 28, 2025
6ee96ad
chore(python): remove configure_previous_major_version_branches (#1453)
gcf-owl-bot[bot] Nov 5, 2025
ef9f8d4
feat: add support for experimental host (#1452)
sagnghos Nov 6, 2025
7ce69a0
feat(observability): enable OpenTelemetry metrics and tracing by defa…
sinhasubham Nov 10, 2025
af7537b
feat: Exposing AutoscalingConfig in InstancePartition (#1413)
gcf-owl-bot[bot] Nov 11, 2025
36b5b3a
feat: add cloud.region, request_tag and transaction_tag in span attri…
sinhasubham Nov 12, 2025
ae77757
feat: Add Spanner location API (#1457)
gcf-owl-bot[bot] Nov 19, 2025
0021607
chore: onboard to librarian (#1454)
ohmayr Nov 19, 2025
6818765
feat(spanner): make built-in metrics enabled by default (#1459)
sinhasubham Dec 4, 2025
83bc347
fix: Provide Spanner Option to disable metrics (#1460)
surbhigarg92 Dec 9, 2025
89769ba
chore(python): Add support for Python 3.14 (#1456)
chalmerlowe Dec 10, 2025
f9673f2
chore: librarian release pull request: 20251210T220651Z (#1462)
rahul2393 Dec 10, 2025
e1a7310
feat(gapic): support mTLS certificates when available (#1467)
daniel-sanche Dec 16, 2025
3375d00
chore: librarian release pull request: 20251216T134400Z (#1468)
daniel-sanche Dec 17, 2025
de5a2c6
fix: transaction_tag should be set on BeginTransactionRequest (#1463)
surbhigarg92 Dec 17, 2025
3958dc3
fix: resolve pre-release dependency failures and sqlparse recursion (…
sinhasubham Jan 6, 2026
afe8bd5
feat: add uuid support (#1310)
harshachinta Jan 6, 2026
3c6c4c7
fix(spanner): handle errors during stream restart in snapshot (#1471)
sinhasubham Jan 14, 2026
04eb42f
chore: librarian release pull request: 20260114T204223Z (#1478)
rahul2393 Jan 16, 2026
02c0bbd
chore: Add gcp resource name span attribute (#1480)
surbhigarg92 Jan 16, 2026
68ae566
feat: add requestID info in error exceptions (#1415)
rahul2393 Jan 22, 2026
2453e07
docs(spanner): snippet for setting read lock mode (#1473)
skuruppu Feb 11, 2026
1f49a6d
fix(metrics): prevent thread leak by ensuring singleton initializatio…
sinhasubham Feb 11, 2026
d4cee61
chore: librarian release pull request: 20260213T101303Z (#1497)
rahul2393 Feb 13, 2026
c2bbb22
chore: replace old spanner and python teams with new teams (#1498)
suztomo Feb 19, 2026
0c4c5da
feat: add TLS/mTLS support for experimental host (#1479)
sagnghos Feb 26, 2026
0da5f78
feat(spanner): add Client Context support to options (#1499)
aseering Mar 3, 2026
00d5f8e
feat(dbapi): use inline begin to eliminate BeginTransaction RPC (#1502)
waiho-gumloop Mar 13, 2026
f822fd7
feat: implement native asyncio support via Cross-Sync (#1509)
sinhasubham Mar 23, 2026
c8f936b
fix(sessions): resolve async deadlock in multiplexed session manager …
sinhasubham Mar 25, 2026
9d2338a
chore: librarian generate pull request: 20260325T173440Z (#1529)
parthea Mar 25, 2026
af0b5b9
tests: use Python 3.10 in `Integration with Regular Sessions` presubm…
parthea Mar 25, 2026
8f68116
chore: librarian update image pull request: 20260325T185910Z (#1532)
parthea Mar 25, 2026
2b1e637
Merge remote-tracking branch 'remote.googleapis/python-spanner/main' …
chalmerlowe Mar 26, 2026
3677b9f
Trigger owlbot post-processor
chalmerlowe Mar 26, 2026
d2f2f60
build: google-cloud-spanner migration: adjust owlbot-related files
chalmerlowe Mar 26, 2026
6841ee0
chore: delete unused directories and files
chalmerlowe Mar 13, 2026
0c74dcc
chore: update repo URLs and references and check for Ruff
chalmerlowe Mar 13, 2026
e7c09dc
chore: updates librarian state.yaml with library id and metadata
chalmerlowe Mar 13, 2026
2cba2f4
chore: apply monorepo cleanup to google-cloud-spanner
chalmerlowe Mar 13, 2026
0ebf7d4
chore: refine prerelease_deps to conditionally run system tests
chalmerlowe Mar 13, 2026
1f62cdd
chore: improves logic within prerelease_deps session
chalmerlowe Mar 13, 2026
7155aa2
chore: updates thread handling to avoid race condition in tests
chalmerlowe Mar 13, 2026
2de762a
chore: remove handwritten samples, outdated files
chalmerlowe Mar 13, 2026
149ad71
chore: update linting
chalmerlowe Mar 13, 2026
be9134e
chore: updates details related to generated code in state.yaml
chalmerlowe Mar 19, 2026
389431c
chore: updates noxfile to incorporate ruff
chalmerlowe Mar 19, 2026
73b2042
chore: updates blacken session with deprecation warning re: ruff
chalmerlowe Mar 19, 2026
76d1640
chore: updates mypy session
chalmerlowe Mar 19, 2026
947cd91
chore: updates to mypy nox session to skip for now
chalmerlowe Mar 19, 2026
1527d0c
chore: adds spanner-integration.yaml file to enable post-processing
chalmerlowe Mar 20, 2026
2e0391e
chore: updates test with more robust assert
chalmerlowe Mar 23, 2026
afa85f3
chore: removes flake8, black, etc paths
chalmerlowe Mar 23, 2026
5b29e60
chore: reformats noxfile.py
chalmerlowe Mar 23, 2026
962fb6c
chore: add threading import
chalmerlowe Mar 24, 2026
166ebf2
fix(spanner): add threading import and _resource_info to snapshot.py
chalmerlowe Mar 24, 2026
eda5376
test(spanner): mock _get_cloud_region to avoid flaky retry test
chalmerlowe Mar 24, 2026
9f72e53
chore: update lowest python runtime to avoid missing constr.txt file …
chalmerlowe Mar 26, 2026
7f7d9d4
chore: update linting with ruff
chalmerlowe Mar 26, 2026
5912772
chore: reinstate handwritten samples
chalmerlowe Mar 26, 2026
37f8a7b
Merge branch 'main' into migration.python-spanner.migration.2026-03-2…
ohmayr Mar 26, 2026
04bbea2
update state.yaml file for google-cloud-spanner
ohmayr Mar 26, 2026
60b2bfa
update post processing script for spanner
ohmayr Mar 27, 2026
8174de5
chore: generated changes
ohmayr Mar 31, 2026
c6c0c33
fix spacing in string replacement
ohmayr Mar 31, 2026
87aa6a1
update state.yaml file
ohmayr Mar 31, 2026
5178d1a
update post processing script
ohmayr Mar 31, 2026
a7208ef
generated changes
ohmayr Mar 31, 2026
cb10d37
update post processing script
ohmayr Mar 31, 2026
8ecc6fe
generated changes
ohmayr Mar 31, 2026
7203e03
add repo-metadata to generate-input
ohmayr Mar 31, 2026
98591a9
generated changes for setup.py
ohmayr Mar 31, 2026
d1e5b54
update post processing script
ohmayr Mar 31, 2026
2697ea5
generated changes
ohmayr Mar 31, 2026
9e8bd98
remove test script
ohmayr Mar 31, 2026
c5893e2
update post processing script
ohmayr Mar 31, 2026
bfb56dc
generated changes
ohmayr Mar 31, 2026
47c2dd1
generated changes
ohmayr Mar 31, 2026
7a44a9d
update post processing script
ohmayr Mar 31, 2026
35fda0d
patch handwritten changes
ohmayr Mar 31, 2026
5e5544f
update post processing script
ohmayr Mar 31, 2026
f561f37
chore: remove phantom spanner __init__ files
ohmayr Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
@@ -0,0 +1,365 @@
# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
description: Integrate Google Cloud Logging Spanner Handwritten code
url: https://github.com/googleapis/gapic-generator-python/issues/123
replacements:
- paths: [packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/client.py]
before: '(import google\.rpc\.status_pb2 as status_pb2 # type: ignore\n\n)(?!from google\.cloud\.spanner_v1\.metrics)'
after: |
\g<1>from google.cloud.spanner_v1.metrics.metrics_interceptor import MetricsInterceptor
count: 1

- paths: [packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/client.py]
before: '(\s+api_audience=self\._client_options\.api_audience,\n)(?!\s+metrics_interceptor=MetricsInterceptor)'
after: |
\g<1> metrics_interceptor=MetricsInterceptor(),
count: 1

- paths: [packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/base.py]
before: '(from google\.cloud\.spanner_v1 import gapic_version as package_version\n)(?!from google\.cloud\.spanner_v1\.metrics)'
after: |
\g<1>from google.cloud.spanner_v1.metrics.metrics_interceptor import MetricsInterceptor
count: 1

- paths: [packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/rest.py]
before: '(from requests import __version__ as requests_version\n\n)(?!from google\.cloud\.spanner_v1\.metrics)'
after: |
\g<1>from google.cloud.spanner_v1.metrics.metrics_interceptor import MetricsInterceptor
count: 1

- paths: [packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py]
before: '(from grpc\.experimental import aio # type: ignore\n\n)(?!from google\.cloud\.spanner_v1\.metrics)'
after: |
\g<1>from google.cloud.spanner_v1.metrics.metrics_interceptor import MetricsInterceptor
count: 1

- paths: [packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/grpc.py]
before: '(from google\.protobuf\.json_format import MessageToJson\n\n)(?!from google\.cloud\.spanner_v1\.metrics)'
after: |
\g<1>from google.cloud.spanner_v1.metrics.metrics_interceptor import MetricsInterceptor
count: 1

- paths: [packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/rest_base.py]
before: '(from google\.protobuf import json_format\n\n)(?!from google\.cloud\.spanner_v1\.metrics)'
after: |
\g<1>from google.cloud.spanner_v1.metrics.metrics_interceptor import MetricsInterceptor
count: 1

- paths:
- packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/base.py
- packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/grpc.py
- packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py
- packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/rest.py
- packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/rest_base.py
before: '(\s+api_audience: Optional\[str\] = None,\n)(?!\s+metrics_interceptor: Optional\[MetricsInterceptor\])'
after: |
\g<1> metrics_interceptor: Optional[MetricsInterceptor] = None,
count: 5

- paths:
# Source Transports
- packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/grpc.py
- packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py
- packages/google-cloud-spanner/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc.py
- packages/google-cloud-spanner/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc_asyncio.py
- packages/google-cloud-spanner/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc.py
- packages/google-cloud-spanner/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc_asyncio.py
# Test Files
- packages/google-cloud-spanner/tests/unit/gapic/spanner_admin_database_v1/test_database_admin.py
- packages/google-cloud-spanner/tests/unit/gapic/spanner_admin_instance_v1/test_instance_admin.py
- packages/google-cloud-spanner/tests/unit/gapic/spanner_v1/test_spanner.py
# Group 1 captures exactly the spaces/tabs on that line.
# Group 2 captures the code up to the newline.
before: '([ \t]+)(\("grpc\.max_receive_message_length", -1\),\n)(?![ \t]+\("grpc\.keepalive_time_ms")'
after: |
\g<1>\g<2>\g<1>("grpc.keepalive_time_ms", 120000),
count: 21

- paths:
- packages/google-cloud-spanner/tests/unit/gapic/spanner_v1/test_spanner.py
before: '(\s+api_audience=\"https\:\/\/language\.googleapis\.com\",\n)(?!\s+metrics_interceptor=mock\.ANY,)'
after: |
\g<1> metrics_interceptor=mock.ANY,
count: 1

- paths:
- packages/google-cloud-spanner/tests/unit/gapic/spanner_v1/test_spanner.py
# Group 1: Captures ONLY the spaces/tabs before the text
# Group 2: Captures the text itself and the newline
before: '([ \t]+)(api_audience=None,\n)(?![ \t]+metrics_interceptor=mock\.ANY,)'
after: |
\g<1>\g<2>\g<1>metrics_interceptor=mock.ANY,
count: 12

- paths:
- packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/grpc.py
before: '(\s+self\._stubs: Dict\[str, Callable\] = \{\}\n)(?!\s+self\._metrics_interceptor = None)'
after: |
\g<1> self._metrics_interceptor = None
count: 1
- paths:
- packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/grpc.py
before: '([ \t]+)(\("grpc\.keepalive_time_ms", 120000\),\n[ \t]+\](?:,\n[ \t]*|\n[ \t]*)\)\n+)([ \t]+)(self\._interceptor = _LoggingClientInterceptor\(\)\n)'
after: |
\g<1>\g<2>\g<3># Wrap the gRPC channel with the metric interceptor
\g<3>if metrics_interceptor is not None:
\g<3> self._metrics_interceptor = metrics_interceptor
\g<3> self._grpc_channel = grpc.intercept_channel(
\g<3> self._grpc_channel, metrics_interceptor
\g<3> )

\g<3>\g<4>
count: 1
- paths: [packages/google-cloud-spanner/setup.py]
before: '(?s)dependencies = \[.*?\]\nextras = \{\}'
after: |
dependencies = [
"google-api-core[grpc] >= 1.34.0, <3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*",
"google-cloud-core >= 1.4.4, < 3.0.0",
"grpc-google-iam-v1 >= 0.12.4, <1.0.0",
"proto-plus >= 1.22.0, <2.0.0",
"sqlparse >= 0.4.4",
"proto-plus >= 1.22.2, <2.0.0; python_version>='3.11'",
"protobuf>=3.20.2,<7.0.0,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5",
"grpc-interceptor >= 0.15.4",
# Make OpenTelemetry a core dependency
"opentelemetry-api >= 1.22.0",
"opentelemetry-sdk >= 1.22.0",
"opentelemetry-semantic-conventions >= 0.43b0",
"opentelemetry-resourcedetector-gcp >= 1.8.0a0",
"google-cloud-monitoring >= 2.16.0",
"mmh3 >= 4.1.0 ",
]
extras = {"libcst": "libcst >= 0.2.5"}
count: 1
- paths: [packages/google-cloud-spanner/docs/index.rst]
before: '(?s)API Reference\n-------------.*'
after: |
Usage Documentation
-------------------
.. toctree::
:maxdepth: 2

client-usage
table-usage
batch-usage
snapshot-usage
transaction-usage

database-usage
instance-usage

API Documentation
-----------------
.. toctree::
:maxdepth: 1
:titlesonly:

advanced-session-pool-topics
opentelemetry-tracing

spanner_v1/client
spanner_v1/instance
spanner_v1/database
spanner_v1/table
spanner_v1/session
spanner_v1/keyset
spanner_v1/snapshot
spanner_v1/batch
spanner_v1/transaction
spanner_v1/streamed

spanner_v1/services_
spanner_v1/types_
spanner_admin_database_v1/services_
spanner_admin_database_v1/types_
spanner_admin_database_v1/database_admin
spanner_admin_instance_v1/services_
spanner_admin_instance_v1/types_
spanner_admin_instance_v1/instance_admin



Changelog
---------

For a list of all ``google-cloud-spanner`` releases:

.. toctree::
:maxdepth: 2

CHANGELOG

.. toctree::
:hidden:

summary_overview.md
count: 1
- paths: [packages/google-cloud-spanner/google/cloud/spanner_v1/__init__.py]
before: '(?s)import sys\n\nimport google\.api_core as api_core.*'
after: |
from __future__ import absolute_import

from google.cloud.spanner_v1 import gapic_version as package_version

__version__: str = package_version.__version__

from google.cloud.spanner_v1 import param_types
from google.cloud.spanner_v1._async.client import Client as AsyncClient
from google.cloud.spanner_v1._async.pool import (
AbstractSessionPool as AsyncAbstractSessionPool,
)
from google.cloud.spanner_v1._async.pool import BurstyPool as AsyncBurstyPool
from google.cloud.spanner_v1._async.pool import FixedSizePool as AsyncFixedSizePool
from google.cloud.spanner_v1._async.pool import PingingPool as AsyncPingingPool
from google.cloud.spanner_v1._async.pool import (
TransactionPingingPool as AsyncTransactionPingingPool,
)
from google.cloud.spanner_v1.client import Client
from google.cloud.spanner_v1.keyset import KeyRange, KeySet
from google.cloud.spanner_v1.pool import (
AbstractSessionPool,
BurstyPool,
FixedSizePool,
PingingPool,
TransactionPingingPool,
)

from .data_types import Interval, JsonObject
from .exceptions import wrap_with_request_id
from .services.spanner import SpannerAsyncClient, SpannerClient
from .transaction import BatchTransactionId, DefaultTransactionOptions
from .types import RequestOptions
from .types.commit_response import CommitResponse
from .types.keys import KeyRange as KeyRangePB
from .types.keys import KeySet as KeySetPB
from .types.mutation import Mutation
from .types.query_plan import PlanNode, QueryPlan
from .types.result_set import (
PartialResultSet,
ResultSet,
ResultSetMetadata,
ResultSetStats,
)
from .types.spanner import (
BatchCreateSessionsRequest,
BatchCreateSessionsResponse,
BatchWriteRequest,
BatchWriteResponse,
BeginTransactionRequest,
CommitRequest,
CreateSessionRequest,
DeleteSessionRequest,
DirectedReadOptions,
ExecuteBatchDmlRequest,
ExecuteBatchDmlResponse,
ExecuteSqlRequest,
GetSessionRequest,
ListSessionsRequest,
ListSessionsResponse,
Partition,
PartitionOptions,
PartitionQueryRequest,
PartitionReadRequest,
PartitionResponse,
ReadRequest,
RollbackRequest,
Session,
)
from .types.transaction import Transaction, TransactionOptions, TransactionSelector
from .types.type import StructType, Type, TypeAnnotationCode, TypeCode

COMMIT_TIMESTAMP = "spanner.commit_timestamp()"
"""Placeholder be used to store commit timestamp of a transaction in a column.
This value can only be used for timestamp columns that have set the option
``(allow_commit_timestamp=true)`` in the schema.
"""

__all__ = (
# google.cloud.spanner_v1
"__version__",
"param_types",
# google.cloud.spanner_v1.exceptions
"wrap_with_request_id",
# google.cloud.spanner_v1.client
"Client",
"AsyncClient",
# google.cloud.spanner_v1.keyset
"KeyRange",
"KeySet",
# google.cloud.spanner_v1.pool
"AbstractSessionPool",
"BurstyPool",
"FixedSizePool",
"PingingPool",
"TransactionPingingPool",
"AsyncAbstractSessionPool",
"AsyncBurstyPool",
"AsyncFixedSizePool",
"AsyncPingingPool",
"AsyncTransactionPingingPool",
# local
"COMMIT_TIMESTAMP",
# google.cloud.spanner_v1.types
"BatchCreateSessionsRequest",
"BatchCreateSessionsResponse",
"BatchWriteRequest",
"BatchWriteResponse",
"BeginTransactionRequest",
"CommitRequest",
"CommitResponse",
"CreateSessionRequest",
"DeleteSessionRequest",
"DirectedReadOptions",
"ExecuteBatchDmlRequest",
"ExecuteBatchDmlResponse",
"ExecuteSqlRequest",
"GetSessionRequest",
"KeyRangePB",
"KeySetPB",
"ListSessionsRequest",
"ListSessionsResponse",
"Mutation",
"PartialResultSet",
"Partition",
"PartitionOptions",
"PartitionQueryRequest",
"PartitionReadRequest",
"PartitionResponse",
"PlanNode",
"QueryPlan",
"ReadRequest",
"RequestOptions",
"ResultSet",
"ResultSetMetadata",
"ResultSetStats",
"RollbackRequest",
"Session",
"StructType",
"Transaction",
"TransactionOptions",
"TransactionSelector",
"Type",
"TypeAnnotationCode",
"TypeCode",
# Custom spanner related data types
"JsonObject",
"Interval",
# google.cloud.spanner_v1.services
"SpannerClient",
"SpannerAsyncClient",
"BatchTransactionId",
"DefaultTransactionOptions",
)
count: 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "spanner",
"name_pretty": "Cloud Spanner",
"product_documentation": "https://cloud.google.com/spanner/docs/",
"client_documentation": "https://cloud.google.com/python/docs/reference/spanner/latest",
"issue_tracker": "https://issuetracker.google.com/issues?q=componentid:190851%2B%20status:open",
"release_level": "stable",
"language": "python",
"library_type": "GAPIC_COMBO",
"repo": "googleapis/google-cloud-python",
"distribution_name": "google-cloud-spanner",
"api_id": "spanner.googleapis.com",
"requires_billing": true,
"default_version": "v1",
"codeowner_team": "@googleapis/spanner-team",
"api_shortname": "spanner",
"api_description": "is a fully managed, mission-critical, \nrelational database service that offers transactional consistency at global scale, \nschemas, SQL (ANSI 2011 with extensions), and automatic, synchronous replication \nfor high availability.\n\nBe sure to activate the Cloud Spanner API on the Developer's Console to\nuse Cloud Spanner from your project."
}
Loading
Loading