Skip to content

Commit f5ae93b

Browse files
ron-galrocksporegcf-owl-bot[bot]tritoneashmeenkaur
authored
feat(bigtable): add support for data APIs for Materialized Views (#11796)
* feat(bigtable): Add support for logical views * feat(bigtable): Add support for Materialized Views to admin client * feat(bigtable) add support for data APIs for Materialized Views * fix(spanner): revert the ALTS bound token enablement (#11799) This is to revert #11674. * docs(datacatalog): Mark DataCatalog v1beta1 service and corresponding methods as deprecated (#11800) - [ ] Regenerate this pull request now. Please use Dataplex Catalog instead. PiperOrigin-RevId: 735695315 Source-Link: https://togithub.com/googleapis/googleapis/commit/8c2b9c99a6dc958a31dbe35d83d3bc9dbc9e3004 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/ebee1544504ead65b3ab52894d5867a132238274 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiZWJlZTE1NDQ1MDRlYWQ2NWIzYWI1Mjg5NGQ1ODY3YTEzMjIzODI3NCJ9 BEGIN_NESTED_COMMIT feat(dataplex): Add custom BigQuery dataset location support in Auto Discovery docs(dataplex): update the Dataplex Catalog proto to remove the info about schema changes feat(dataplex): DataTaxonomyService is now deprecated PiperOrigin-RevId: 735645981 Source-Link: https://togithub.com/googleapis/googleapis/commit/2415cfc65c4a5eb495117d5577ff5637a36436ed Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/ba22722d2f7d165ed7254d0b269338bbc13dc1fc Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYmEyMjcyMmQyZjdkMTY1ZWQ3MjU0ZDBiMjY5MzM4YmJjMTNkYzFmYyJ9 END_NESTED_COMMIT BEGIN_NESTED_COMMIT feat(storage/control): Add Anywhere cache control APIs docs(storage/control): Added comments for Anywhere cache messages PiperOrigin-RevId: 735570925 Source-Link: https://togithub.com/googleapis/googleapis/commit/66ab6ceb69178f5368b130949eaf518b7c28352f Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/8f7d5dba0f0418d1f03ce56a767f251b8b69ca3e Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiOGY3ZDVkYmEwZjA0MThkMWYwM2NlNTZhNzY3ZjI1MWI4YjY5Y2EzZSJ9 END_NESTED_COMMIT * feat(storage): Add Flush for appendable writes (#11791) * feat(storage): Add Flush for appendable writes Adds Writer.Flush, which flushes any data in the internal buffer to GCS. Only supported for appendable writes. Preview feature. * test and error fixes * fix open writer test * return non-EOF error. * Update storage/client_test.go Co-authored-by: Ashmeen Kaur <57195160+ashmeenkaur@users.noreply.github.com> * fix Flush after Close error * fix data race * add flush at close test * fix conditions test * fix other test issues --------- Co-authored-by: Ashmeen Kaur <57195160+ashmeenkaur@users.noreply.github.com> * chore(main): release 0.119.0 (#11783) * feat(bigquery): support MetadataCacheMode for ExternalDataConfig (#11803) I skipped integration tests, as this configuration is only supported for BigLake formats. ``` integration_test.go:1761: table.Create: googleapi: Error 400: metadataCacheMode provided for non BigLake external table., invalid ``` Solves #11802 * chore(pubsub): bump cloud.google.com/go version (#11806) * chore(pubsub): bump cloud.google.com/go version * run go mod tidy * docs(cloudquotas): improved comment clarity (#11805) - [ ] Regenerate this pull request now. PiperOrigin-RevId: 735843146 Source-Link: https://togithub.com/googleapis/googleapis/commit/984bf3328ad91408a0c543a89ae6caefec92f31d Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/a82f5ccc591afe58dfa75916672413142f713377 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYTgyZjVjY2M1OTFhZmU1OGRmYTc1OTE2NjcyNDEzMTQyZjcxMzM3NyJ9 BEGIN_NESTED_COMMIT feat(recaptchaenterprise): A new field `ja4` is added to message `Event` docs(recaptchaenterprise): update documentation PiperOrigin-RevId: 735783078 Source-Link: https://togithub.com/googleapis/googleapis/commit/5b8c54e53d8d05f5a75e3f21ac5518b23878b696 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/f8ebdceb9846f9634c66b8ea02d3a7e7ad9d3c7c Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiZjhlYmRjZWI5ODQ2Zjk2MzRjNjZiOGVhMDJkM2E3ZTdhZDlkM2M3YyJ9 END_NESTED_COMMIT * feat(pubsub/pstest): support listening on custom address (#11606) Co-authored-by: Alex Hong <9397363+hongalex@users.noreply.github.com> * chore(main): release storage 1.51.0 (#11445) * chore(main): release storage 1.51.0 * remove reverted change --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Chris Cotter <cjcotter@google.com> * chore(all): update deps (#11788) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | Type | Update | |---|---|---|---|---|---|---|---| | [cloud.google.com/go/accesscontextmanager](https://redirect.github.com/googleapis/google-cloud-go) | `v1.9.3` -> `v1.9.4` | [![age](https://developer.mend.io/api/mc/badges/age/go/cloud.google.com%2fgo%2faccesscontextmanager/v1.9.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/cloud.google.com%2fgo%2faccesscontextmanager/v1.9.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/cloud.google.com%2fgo%2faccesscontextmanager/v1.9.3/v1.9.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/cloud.google.com%2fgo%2faccesscontextmanager/v1.9.3/v1.9.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [cloud.google.com/go/aiplatform](https://redirect.github.com/googleapis/google-cloud-go) | `v1.74.0` -> `v1.75.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/cloud.google.com%2fgo%2faiplatform/v1.75.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/cloud.google.com%2fgo%2faiplatform/v1.75.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/cloud.google.com%2fgo%2faiplatform/v1.74.0/v1.75.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/cloud.google.com%2fgo%2faiplatform/v1.74.0/v1.75.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [cloud.google.com/go/grafeas](https://redirect.github.com/googleapis/google-cloud-go) | `v0.3.13` -> `v0.3.14` | [![age](https://developer.mend.io/api/mc/badges/age/go/cloud.google.com%2fgo%2fgrafeas/v0.3.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/cloud.google.com%2fgo%2fgrafeas/v0.3.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/cloud.google.com%2fgo%2fgrafeas/v0.3.13/v0.3.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/cloud.google.com%2fgo%2fgrafeas/v0.3.13/v0.3.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [cloud.google.com/go/iam](https://redirect.github.com/googleapis/google-cloud-go) | `v1.4.0` -> `v1.4.1` | [![age](https://developer.mend.io/api/mc/badges/age/go/cloud.google.com%2fgo%2fiam/v1.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/cloud.google.com%2fgo%2fiam/v1.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/cloud.google.com%2fgo%2fiam/v1.4.0/v1.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/cloud.google.com%2fgo%2fiam/v1.4.0/v1.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [cloud.google.com/go/longrunning](https://redirect.github.com/googleapis/google-cloud-go) | `v0.6.4` -> `v0.6.5` | [![age](https://developer.mend.io/api/mc/badges/age/go/cloud.google.com%2fgo%2flongrunning/v0.6.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/cloud.google.com%2fgo%2flongrunning/v0.6.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/cloud.google.com%2fgo%2flongrunning/v0.6.4/v0.6.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/cloud.google.com%2fgo%2flongrunning/v0.6.4/v0.6.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [cloud.google.com/go/spanner](https://redirect.github.com/googleapis/google-cloud-go) | `v1.76.1` -> `v1.77.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/cloud.google.com%2fgo%2fspanner/v1.77.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/cloud.google.com%2fgo%2fspanner/v1.77.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/cloud.google.com%2fgo%2fspanner/v1.76.1/v1.77.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/cloud.google.com%2fgo%2fspanner/v1.76.1/v1.77.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric](https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-go) | `v0.50.0` -> `v0.51.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fGoogleCloudPlatform%2fopentelemetry-operations-go%2fexporter%2fmetric/v0.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fGoogleCloudPlatform%2fopentelemetry-operations-go%2fexporter%2fmetric/v0.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fGoogleCloudPlatform%2fopentelemetry-operations-go%2fexporter%2fmetric/v0.50.0/v0.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fGoogleCloudPlatform%2fopentelemetry-operations-go%2fexporter%2fmetric/v0.50.0/v0.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace](https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-go) | `v1.26.0` -> `v1.27.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fGoogleCloudPlatform%2fopentelemetry-operations-go%2fexporter%2ftrace/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fGoogleCloudPlatform%2fopentelemetry-operations-go%2fexporter%2ftrace/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fGoogleCloudPlatform%2fopentelemetry-operations-go%2fexporter%2ftrace/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fGoogleCloudPlatform%2fopentelemetry-operations-go%2fexporter%2ftrace/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/go-git/go-git/v5](https://redirect.github.com/go-git/go-git) | `v5.13.2` -> `v5.14.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgo-git%2fgo-git%2fv5/v5.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgo-git%2fgo-git%2fv5/v5.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgo-git%2fgo-git%2fv5/v5.13.2/v5.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgo-git%2fgo-git%2fv5/v5.13.2/v5.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/google/pprof](https://redirect.github.com/google/pprof) | `d0013a5` -> `9094ed2` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgoogle%2fpprof/v0.0.0-20250302191652-9094ed2288e7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgoogle%2fpprof/v0.0.0-20250302191652-9094ed2288e7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgoogle%2fpprof/v0.0.0-20250208200701-d0013a598941/v0.0.0-20250302191652-9094ed2288e7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgoogle%2fpprof/v0.0.0-20250208200701-d0013a598941/v0.0.0-20250302191652-9094ed2288e7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | digest | | [go](https://go.dev/) ([source](https://redirect.github.com/golang/go)) | `1.23.6` -> `1.24.1` | [![age](https://developer.mend.io/api/mc/badges/age/golang-version/go/1.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/golang-version/go/1.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/golang-version/go/1.23.6/1.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/golang-version/go/1.23.6/1.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | toolchain | minor | | golang.org/x/mod | `v0.23.0` -> `v0.24.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fmod/v0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fmod/v0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fmod/v0.23.0/v0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fmod/v0.23.0/v0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | golang.org/x/net | `v0.35.0` -> `v0.37.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.35.0/v0.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.35.0/v0.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | golang.org/x/oauth2 | `v0.27.0` -> `v0.28.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2foauth2/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2foauth2/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2foauth2/v0.27.0/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2foauth2/v0.27.0/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | golang.org/x/sync | `v0.11.0` -> `v0.12.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fsync/v0.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fsync/v0.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fsync/v0.11.0/v0.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fsync/v0.11.0/v0.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | golang.org/x/sys | `v0.30.0` -> `v0.31.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fsys/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fsys/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fsys/v0.30.0/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fsys/v0.30.0/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | golang.org/x/text | `v0.22.0` -> `v0.23.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2ftext/v0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2ftext/v0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2ftext/v0.22.0/v0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2ftext/v0.22.0/v0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | golang.org/x/time | `v0.10.0` -> `v0.11.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2ftime/v0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2ftime/v0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2ftime/v0.10.0/v0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2ftime/v0.10.0/v0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | golang.org/x/tools | `v0.30.0` -> `v0.31.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2ftools/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2ftools/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2ftools/v0.30.0/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2ftools/v0.30.0/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [google.golang.org/genproto/googleapis/rpc](https://redirect.github.com/googleapis/go-genproto) | `55c9018` -> `a0af3ef` | [![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgenproto%2fgoogleapis%2frpc/v0.0.0-20250303144028-a0af3efb3deb?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgenproto%2fgoogleapis%2frpc/v0.0.0-20250303144028-a0af3efb3deb?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgenproto%2fgoogleapis%2frpc/v0.0.0-20250227231956-55c901821b1e/v0.0.0-20250303144028-a0af3efb3deb?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgenproto%2fgoogleapis%2frpc/v0.0.0-20250227231956-55c901821b1e/v0.0.0-20250303144028-a0af3efb3deb?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | digest | --- ### Release Notes <details> <summary>GoogleCloudPlatform/opentelemetry-operations-go (github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric)</summary> ### [`v0.51.0`](https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-go/releases/tag/v0.51.0): v1.27.0/v0.51.0 [Compare Source](https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-go/compare/v0.50.0...v0.51.0) #### What's Changed - Update example.go documentation by [@&#8203;psx95](https://redirect.github.com/psx95) in [https://togithub.com/GoogleCloudPlatform/opentelemetry-operations-go/pull/1013](https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-go/pull/1013) - Update some go dependencies to v1.23.6 by [@&#8203;dashpole](https://redirect.github.com/dashpole) in [https://togithub.com/GoogleCloudPlatform/opentelemetry-operations-go/pull/1014](https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-go/pull/1014) - Update go.opentelemetry.io/collector by [@&#8203;dashpole](https://redirect.github.com/dashpole) in [https://togithub.com/GoogleCloudPlatform/opentelemetry-operations-go/pull/1019](https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-go/pull/1019) - collector: use buildinfo to make user agent by [@&#8203;braydonk](https://redirect.github.com/braydonk) in [https://togithub.com/GoogleCloudPlatform/opentelemetry-operations-go/pull/1022](https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-go/pull/1022) - Prepare for v1.27.0/v0.51.0 by [@&#8203;ridwanmsharif](https://redirect.github.com/ridwanmsharif) in [https://togithub.com/GoogleCloudPlatform/opentelemetry-operations-go/pull/1023](https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-go/pull/1023) **Full Changelog**: https://togithub.com/GoogleCloudPlatform/opentelemetry-operations-go/compare/v0.50.0...v0.51.0 </details> <details> <summary>go-git/go-git (github.com/go-git/go-git/v5)</summary> ### [`v5.14.0`](https://redirect.github.com/go-git/go-git/releases/tag/v5.14.0) [Compare Source](https://redirect.github.com/go-git/go-git/compare/v5.13.2...v5.14.0) #### What's Changed - v5: Bump Go and dependencies to mitigate [GO-2025-3487](https://pkg.go.dev/vuln/GO-2025-3487) by [@&#8203;pjbgf](https://redirect.github.com/pjbgf) in [https://togithub.com/go-git/go-git/pull/1436](https://redirect.github.com/go-git/go-git/pull/1436) ⚠️ Note that this version requires Go 1.23, due to the bump to `golang.org/x/crypto@v0.35.0` which mitigates the CVE above. User's that can't bump to Go 1.23 will need to remain on the previous v5.13.x release. **Full Changelog**: https://togithub.com/go-git/go-git/compare/v5.13.2...v5.14.0 </details> <details> <summary>golang/go (go)</summary> ### [`v1.24.1`](https://redirect.github.com/golang/go/compare/go1.24.0...go1.24.1) ### [`v1.24.0`](https://redirect.github.com/golang/go/compare/go1.23.6...go1.24.0) ### [`v1.23.7`](https://redirect.github.com/golang/go/compare/go1.23.6...go1.23.7) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "* 0-3 * * 1" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/googleapis/google-cloud-go). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODUuNCIsInVwZGF0ZWRJblZlciI6IjM5LjE4NS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> * chore: skip benchmark for all env (#11811) Fixes #11669 * fix(bigquery): Increase timeout for storage api test and remove usage of deprecated pkg (#11810) Fixes #11801 * feat(bigtable): Add support for logical views (#11792) * feat(bigtable): Add support for logical views * fix build * fixed according to PR comments * feat(storage/control): Add Anywhere cache control APIs (#11807) - [ ] Regenerate this pull request now. docs(storage/control): Added comments for Anywhere cache messages PiperOrigin-RevId: 736168602 Source-Link: https://togithub.com/googleapis/googleapis/commit/1f01eefb40000d70b0c58314709af1d4f8222cc0 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/e687c8953cf088e4b39397e33af6e2238e1720aa Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiZTY4N2M4OTUzY2YwODhlNGIzOTM5N2UzM2FmNmUyMjM4ZTE3MjBhYSJ9 BEGIN_NESTED_COMMIT feat(aiplatform): add reranker config to RAG v1 API PiperOrigin-RevId: 735952331 Source-Link: https://togithub.com/googleapis/googleapis/commit/4ce00b00904a7ce1df8c157e54fcbf96fda0dc49 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/28a0272577f679ec339a0561ad7fca3d4f6220cf Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMjhhMDI3MjU3N2Y2NzllYzMzOWEwNTYxYWQ3ZmNhM2Q0ZjYyMjBjZiJ9 END_NESTED_COMMIT BEGIN_NESTED_COMMIT docs(eventarc/publishing): Minor documentation improvements PiperOrigin-RevId: 735932756 Source-Link: https://togithub.com/googleapis/googleapis/commit/5d0c7bf00477b653d4c79718b38e95e5a90768d8 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/66de535b0bb8c88683f64c5d00ec89b2481250bb Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNjZkZTUzNWIwYmI4Yzg4NjgzZjY0YzVkMDBlYzg5YjI0ODEyNTBiYiJ9 END_NESTED_COMMIT BEGIN_NESTED_COMMIT docs(orchestration/airflow/service): fix Composer 3 image version format in API docs PiperOrigin-RevId: 735893970 Source-Link: https://togithub.com/googleapis/googleapis/commit/aafb43c2088fae86421aa8e98d19869c4159737d Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/0dd13a81a4e3fe5492b13f91d4c38e4205c7a5be Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMGRkMTNhODFhNGUzZmU1NDkyYjEzZjkxZDRjMzhlNDIwNWM3YTViZSJ9 END_NESTED_COMMIT BEGIN_NESTED_COMMIT fix(managedkafka): An existing google.api.http annotation `http_uri` is changed for method `GetConsumerGroup` in service `ManagedKafka` fix(managedkafka): An existing google.api.http annotation `http_uri` is changed for method `UpdateConsumerGroup` in service `ManagedKafka` fix(managedkafka): An existing google.api.http annotation `http_uri` is changed for method `DeleteConsumerGroup` in service `ManagedKafka` docs(managedkafka): A comment for field `subnet` in message `.google.cloud.managedkafka.v1.NetworkConfig` is changed PiperOrigin-RevId: 735883333 Source-Link: https://togithub.com/googleapis/googleapis/commit/8f7e301d346ba792a9bd282f8d62db7fad87cb8a Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/b88fd376a83cb2b445523c0d9ba9dd964d4e078a Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYjg4ZmQzNzZhODNjYjJiNDQ1NTIzYzBkOWJhOWRkOTY0ZDRlMDc4YSJ9 END_NESTED_COMMIT * chore: release main (#11782) * feat(bigtable): Add support for materialized views for admin client (#11793) * feat(bigtable): Add support for logical views * feat(bigtable): Add support for Materialized Views to admin client * fix build * fix build * fixed according to PR comments * PR fixes * fix merge * fix PR * wait for create mv\lv operations to complete before returning * oops --------- Co-authored-by: Luwei Ge <lwge@google.com> Co-authored-by: gcf-owl-bot[bot] <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Co-authored-by: Chris Cotter <cjcotter@google.com> Co-authored-by: Ashmeen Kaur <57195160+ashmeenkaur@users.noreply.github.com> Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Alvaro Viebrantz <aviebrantz@google.com> Co-authored-by: Alex Hong <9397363+hongalex@users.noreply.github.com> Co-authored-by: Kien D <kientrung.dinh@anz.com> Co-authored-by: Mend Renovate <bot@renovateapp.com>
1 parent 5a9eb10 commit f5ae93b

2 files changed

Lines changed: 145 additions & 6 deletions

File tree

bigtable/bigtable.go

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,10 @@ func (c *Client) fullAuthorizedViewName(table string, authorizedView string) str
248248
return fmt.Sprintf("projects/%s/instances/%s/tables/%s/authorizedViews/%s", c.project, c.instance, table, authorizedView)
249249
}
250250

251+
func (c *Client) fullMaterializedViewName(materializedView string) string {
252+
return fmt.Sprintf("projects/%s/instances/%s/materializedViews/%s", c.project, c.instance, materializedView)
253+
}
254+
251255
func (c *Client) requestParamsHeaderValue(table string) string {
252256
return fmt.Sprintf("table_name=%s&app_profile_id=%s", url.QueryEscape(c.fullTableName(table)), url.QueryEscape(c.appProfile))
253257
}
@@ -261,13 +265,14 @@ func mergeOutgoingMetadata(ctx context.Context, mds ...metadata.MD) context.Cont
261265
return metadata.NewOutgoingContext(ctx, metadata.Join(allMDs...))
262266
}
263267

264-
// TableAPI interface allows existing data APIs to be applied to either an authorized view or a table.
268+
// TableAPI interface allows existing data APIs to be applied to either an authorized view, a materialized view or a table.
269+
// A materialized view is a read-only entity.
265270
type TableAPI interface {
266271
ReadRows(ctx context.Context, arg RowSet, f func(Row) bool, opts ...ReadOption) error
267272
ReadRow(ctx context.Context, row string, opts ...ReadOption) (Row, error)
273+
SampleRowKeys(ctx context.Context) ([]string, error)
268274
Apply(ctx context.Context, row string, m *Mutation, opts ...ApplyOption) error
269275
ApplyBulk(ctx context.Context, rowKeys []string, muts []*Mutation, opts ...ApplyOption) ([]error, error)
270-
SampleRowKeys(ctx context.Context) ([]string, error)
271276
ApplyReadModifyWrite(ctx context.Context, row string, m *ReadModifyWrite) (Row, error)
272277
}
273278

@@ -283,8 +288,9 @@ type Table struct {
283288
table string
284289

285290
// Metadata to be sent with each request.
286-
md metadata.MD
287-
authorizedView string
291+
md metadata.MD
292+
authorizedView string
293+
materializedView string
288294
}
289295

290296
// newFeatureFlags creates the feature flags `bigtable-features` header
@@ -343,6 +349,18 @@ func (c *Client) OpenAuthorizedView(table, authorizedView string) TableAPI {
343349
}}
344350
}
345351

352+
// OpenMaterializedView opens a materialized view.
353+
func (c *Client) OpenMaterializedView(materializedView string) TableAPI {
354+
return &tableImpl{Table{
355+
c: c,
356+
md: metadata.Join(metadata.Pairs(
357+
resourcePrefixHeader, c.fullMaterializedViewName(materializedView),
358+
requestParamsHeader, c.requestParamsHeaderValue(materializedView),
359+
), c.newFeatureFlags()),
360+
materializedView: materializedView,
361+
}}
362+
}
363+
346364
func (ti *tableImpl) ReadRows(ctx context.Context, arg RowSet, f func(Row) bool, opts ...ReadOption) error {
347365
return ti.Table.ReadRows(ctx, arg, f, opts...)
348366
}
@@ -415,7 +433,9 @@ func (t *Table) readRows(ctx context.Context, arg RowSet, f func(Row) bool, mt *
415433
req := &btpb.ReadRowsRequest{
416434
AppProfileId: t.c.appProfile,
417435
}
418-
if t.authorizedView == "" {
436+
if t.materializedView != "" {
437+
req.MaterializedViewName = t.c.fullMaterializedViewName(t.materializedView)
438+
} else if t.authorizedView == "" {
419439
req.TableName = t.c.fullTableName(t.table)
420440
} else {
421441
req.AuthorizedViewName = t.c.fullAuthorizedViewName(t.table, t.authorizedView)
@@ -1587,7 +1607,9 @@ func (t *Table) sampleRowKeys(ctx context.Context, mt *builtinMetricsTracer) ([]
15871607
req := &btpb.SampleRowKeysRequest{
15881608
AppProfileId: t.c.appProfile,
15891609
}
1590-
if t.authorizedView == "" {
1610+
if t.materializedView != "" {
1611+
req.MaterializedViewName = t.c.fullMaterializedViewName(t.materializedView)
1612+
} else if t.authorizedView == "" {
15911613
req.TableName = t.c.fullTableName(t.table)
15921614
} else {
15931615
req.AuthorizedViewName = t.c.fullAuthorizedViewName(t.table, t.authorizedView)

bigtable/integration_test.go

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4330,6 +4330,123 @@ func TestIntegration_DataAuthorizedView(t *testing.T) {
43304330
}
43314331
}
43324332

4333+
func TestIntegration_DataMaterializedView(t *testing.T) {
4334+
testEnv, err := NewIntegrationEnv()
4335+
if err != nil {
4336+
t.Fatalf("IntegrationEnv: %v", err)
4337+
}
4338+
defer testEnv.Close()
4339+
4340+
if !testEnv.Config().UseProd {
4341+
t.Skip("emulator doesn't support materializedViews")
4342+
}
4343+
4344+
timeout := 15 * time.Minute
4345+
ctx, cancel := context.WithTimeout(context.Background(), timeout)
4346+
defer cancel()
4347+
4348+
adminClient, err := testEnv.NewAdminClient()
4349+
if err != nil {
4350+
t.Fatalf("NewAdminClient: %v", err)
4351+
}
4352+
defer adminClient.Close()
4353+
4354+
instanceAdminClient, err := testEnv.NewInstanceAdminClient()
4355+
if err != nil {
4356+
t.Fatalf("NewInstanceAdminClient: %v", err)
4357+
}
4358+
defer instanceAdminClient.Close()
4359+
4360+
tblConf := TableConf{
4361+
TableID: testEnv.Config().Table,
4362+
Families: map[string]GCPolicy{
4363+
"fam1": MaxVersionsPolicy(1),
4364+
"fam2": MaxVersionsPolicy(2),
4365+
},
4366+
}
4367+
if err := createTableFromConf(ctx, adminClient, &tblConf); err != nil {
4368+
t.Fatalf("Creating table from TableConf: %v", err)
4369+
}
4370+
// Delete the table at the end of the test. Schedule ahead of time
4371+
// in case the client fails
4372+
defer deleteTable(ctx, t, adminClient, tblConf.TableID)
4373+
4374+
// Create materialized view
4375+
materializedViewUUID := uid.NewSpace("materializedView-", &uid.Options{})
4376+
materializedView := materializedViewUUID.New()
4377+
defer instanceAdminClient.DeleteMaterializedView(ctx, testEnv.Config().Instance, materializedView)
4378+
4379+
materializedViewInfo := MaterializedViewInfo{
4380+
MaterializedViewID: materializedView,
4381+
Query: fmt.Sprintf("SELECT _key, fam1[col1] as col, count(*) as count FROM %s", tblConf.TableID),
4382+
DeletionProtection: Unprotected,
4383+
}
4384+
if err = instanceAdminClient.CreateMaterializedView(ctx, testEnv.Config().Instance, &materializedViewInfo); err != nil {
4385+
t.Fatalf("Creating materialized view: %v", err)
4386+
}
4387+
4388+
client, err := testEnv.NewClient()
4389+
if err != nil {
4390+
t.Fatalf("NewClient: %v", err)
4391+
}
4392+
defer client.Close()
4393+
mv := client.OpenMaterializedView(materializedView)
4394+
tbl := client.OpenTable(tblConf.TableID)
4395+
4396+
// Test ReadRow
4397+
gotRow, err := mv.ReadRow(ctx, "r1")
4398+
if err != nil {
4399+
t.Fatalf("Reading row from a materialized view: %v", err)
4400+
}
4401+
wantRow := Row{
4402+
"fam1": []ReadItem{
4403+
{Row: "r1", Column: "fam1:col1", Timestamp: 1000, Value: []byte("1")},
4404+
{Row: "r1", Column: "fam1:col2", Timestamp: 1000, Value: []byte("1")},
4405+
},
4406+
}
4407+
if !testutil.Equal(gotRow, wantRow) {
4408+
t.Fatalf("Error reading row from materialized view.\n Got %v\n Want %v", gotRow, wantRow)
4409+
}
4410+
gotRow, err = mv.ReadRow(ctx, "r2")
4411+
if err != nil {
4412+
t.Fatalf("Reading row from an materialized view: %v", err)
4413+
}
4414+
if len(gotRow) != 0 {
4415+
t.Fatalf("Expect empty result when reading row from outside an materialized view")
4416+
}
4417+
4418+
// Test ReadRows
4419+
var elt []string
4420+
f := func(row Row) bool {
4421+
for _, ris := range row {
4422+
for _, ri := range ris {
4423+
elt = append(elt, formatReadItem(ri))
4424+
}
4425+
}
4426+
return true
4427+
}
4428+
if err = mv.ReadRows(ctx, RowRange{}, f); err != nil {
4429+
t.Fatalf("Reading rows from an materialized view: %v", err)
4430+
}
4431+
want := "r1-col1-1,r1-col2-1"
4432+
if got := strings.Join(elt, ","); got != want {
4433+
t.Fatalf("Error bulk reading from materialized view.\n Got %v\n Want %v", got, want)
4434+
}
4435+
elt = nil
4436+
if err = tbl.ReadRows(ctx, RowRange{}, f); err != nil {
4437+
t.Fatalf("Reading rows from a table: %v", err)
4438+
}
4439+
want = "r1-col1-1,r1-col2-1,r2-col1-1"
4440+
if got := strings.Join(elt, ","); got != want {
4441+
t.Fatalf("Error bulk reading from table.\n Got %v\n Want %v", got, want)
4442+
}
4443+
4444+
// Test SampleRowKeys
4445+
if _, err := mv.SampleRowKeys(ctx); err != nil {
4446+
t.Fatalf("Sampling row keys from an materialized view: %v", err)
4447+
}
4448+
}
4449+
43334450
func TestIntegration_AdminLogicalView(t *testing.T) {
43344451
testEnv, err := NewIntegrationEnv()
43354452
if err != nil {

0 commit comments

Comments
 (0)