Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: support for UUID type #3572

Open
wants to merge 42 commits into
base: main
Choose a base branch
from
Open

Conversation

gagangupt16
Copy link
Contributor

No description provided.

surbhigarg92 and others added 30 commits December 5, 2024 12:36
This PR allows users to set the custom monitoring host for built in metrics.
This PR introduces `java.time` alternatives to existing `org.threeten.bp.*` methods, as well as switching internal variables (if any) to `java.time`

The main constraint is to keep the changes backwards compatible, so for each existing threeten method "`method1(org.threeten.bp.Duration)`" we will add an alternative with a _Duration_ (or _Timestamp_ when applicable) suffix: "`method1Duration(java.time.Duration)`".

For most cases, the implementation will be held in the `java.time` method and the old threeten method will just delegate the call to it. However, for the case of abstract classes, the implementation will be kept in the threeten method to avoid breaking changes (i.e. users that already overloaded the method in their user code).
googleapis#3471)

* chore(spanner): support multiplexed session for rw transactions in executor

* chore(spanner): lint fix
…googleapis#3231)

* feat(spanner): support multiplexed session for Partitioned read or query.

* chore(spanner): lint fixes

* feat(spanner): support multiplexed session for Partitioned DML operations.

* lint(spanner): javadoc fixes.

* feat(spanner): Updated unit tests of Partitioned operations for Multiplexed Session.

* feat(spanner): Updated unit tests of Partitioned operations for Multiplexed Session.

* lint(spanner): Apply suggestions from code review

Co-authored-by: Knut Olav Løite <koloite@gmail.com>

* lint(spanner): Apply suggestions from code review

Co-authored-by: Knut Olav Løite <koloite@gmail.com>

* feat(spanner): Modified BatchClientImpl to store multiplexed session and create fresh session after expiration date.

* feat(spanner): Removed env variable for Partitioned Ops ensuring that Multiplexed Session for Partitioned Ops is not available to customers.

* lint(spanner): Removed unused variables.

---------

Co-authored-by: Knut Olav Løite <koloite@gmail.com>
Multiple tests were skipped on the Emulator, because the features that
are covered by these tests were originally not supported on the
Emulator. These features are now available on the Emulator, and the
tests can be enabled.
* ci(spanner): Fix nightly job permission issue

* update scope for surefire-junit4
The Connection API by default uses either a platform thread or a virtual thread
for each connection to execute and control the statements of that connection. This
is used to enable asynchronous execution of statements and allows a statement to
be cancelled by just interrupting this thread. Both these use cases are however
not (or only very rarely) used by the most common users of the Connection API;
the JDBC driver and PGAdapter. PGAdapter uses the PostgreSQL wire-protocol, which
by design is synchronous, and JDBC is also a synchronous API. The latter has a
cancel() method that currently requires this threading model, but this can be
modified in the JDBC driver.

Using a direct executor instead of a single-threaded executor per connection can
save one thread per connection.

The option is intentionally made package-private, so the above-mentioned
frameworks can set it by default without it becoming part of the public API.
Adds support for `set local retry_aborts_internally=true|false` in the
Connection API. This change also adds the parsing infrastructure that is
needed to support `set local` for all connection variables. Support for
this will be added to other connection variables in follow-up pull requests.
…gleapis#3540)

* feat(spanner): Releasing Multiplexed session for blind write.

* fix(spanner): Added exception for `setUseMultiplexedSessionBlindWrite` in Clirr check. Removing this is safe as it's not used by customers.

* fix(spanner): Fixed unit test for multiplexed session.
* ci(spanner): clean up unused kokoro configurations

* chore: generate libraries at Tue Dec 10 09:54:10 UTC 2024

---------

Co-authored-by: cloud-java-bot <cloud-java-bot@google.com>
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Reset the default to using a platform thread for connections. This was the
default before adding an option for setting the executor type, and the new
default is causing problems with the async Connection API.

Fixes googleapis#3541
googleapis#3523)

* chore: Update generation configuration at Wed Dec  4 02:29:01 UTC 2024

* chore: Update generation configuration at Thu Dec  5 02:29:11 UTC 2024

* chore: Update generation configuration at Fri Dec  6 02:28:46 UTC 2024

* chore: generate libraries at Fri Dec  6 02:29:25 UTC 2024

* chore: Update generation configuration at Sat Dec  7 02:28:09 UTC 2024

* chore: Update generation configuration at Tue Dec 10 02:29:37 UTC 2024

* chore: Update generation configuration at Wed Dec 11 02:28:47 UTC 2024

* chore: Update generation configuration at Thu Dec 12 02:29:08 UTC 2024

* chore: generate libraries at Thu Dec 12 02:29:50 UTC 2024

* chore: Update generation configuration at Fri Dec 13 02:29:25 UTC 2024

* chore: Update generation configuration at Fri Dec 13 16:21:35 UTC 2024

* chore: generate libraries at Fri Dec 13 16:22:12 UTC 2024

* update workflow script

---------

Co-authored-by: rahul2393 <irahul@google.com>
Co-authored-by: Joe Wang <joewa@google.com>
* chore(main): release 6.83.0

* chore: generate libraries at Fri Dec 13 17:19:20 UTC 2024

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: cloud-java-bot <cloud-java-bot@google.com>
* chore: make state field volatile in AsyncResultSetImpl

Mark the `state` field in `AsyncResultSetImpl` volatile, as it is
inspected by different threads.

* fix: protect writes with monitor

---------

Co-authored-by: rahul2393 <irahul@google.com>
Make the list of valid connection properties public, so tools that
depend on the Connection API can use this to for example generate
documentation for valid properties.

Also add valid values to the connection properties that have that
(e.g. enums and booleans).

Co-authored-by: rahul2393 <irahul@google.com>
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [io.opentelemetry:opentelemetry-sdk-testing](https://github.com/open-telemetry/opentelemetry-java) | `1.44.1` -> `1.45.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.opentelemetry:opentelemetry-sdk-testing/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.opentelemetry:opentelemetry-sdk-testing/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.opentelemetry:opentelemetry-sdk-testing/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.opentelemetry:opentelemetry-sdk-testing/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [io.opentelemetry:opentelemetry-sdk-trace](https://github.com/open-telemetry/opentelemetry-java) | `1.44.1` -> `1.45.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.opentelemetry:opentelemetry-sdk-trace/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.opentelemetry:opentelemetry-sdk-trace/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.opentelemetry:opentelemetry-sdk-trace/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.opentelemetry:opentelemetry-sdk-trace/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [io.opentelemetry:opentelemetry-sdk-metrics](https://github.com/open-telemetry/opentelemetry-java) | `1.44.1` -> `1.45.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.opentelemetry:opentelemetry-sdk-metrics/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.opentelemetry:opentelemetry-sdk-metrics/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.opentelemetry:opentelemetry-sdk-metrics/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.opentelemetry:opentelemetry-sdk-metrics/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [io.opentelemetry:opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-java) | `1.44.1` -> `1.45.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.opentelemetry:opentelemetry-sdk/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.opentelemetry:opentelemetry-sdk/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.opentelemetry:opentelemetry-sdk/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.opentelemetry:opentelemetry-sdk/1.44.1/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-java (io.opentelemetry:opentelemetry-sdk-testing)</summary>

### [`v1.45.0`](https://github.com/open-telemetry/opentelemetry-java/blob/HEAD/CHANGELOG.md#Version-1450-2024-12-06)

[Compare Source](https://github.com/open-telemetry/opentelemetry-java/compare/v1.44.1...v1.45.0)

##### API

-   Add convenience method `setAttribute(Attribute<Long>, int)` to SpanBuilder (matching the existing
    convenience method in Span)
    ([#&#8203;6884](https://github.com/open-telemetry/opentelemetry-java/pull/6884))
-   Extends TextMapGetter with experimental GetAll() method, implement usage in W3CBaggagePropagator
    ([#&#8203;6852](https://github.com/open-telemetry/opentelemetry-java/pull/6852))

##### SDK

##### Traces

-   Add synchronization to SimpleSpanProcessor to ensure thread-safe export of spans
    ([#&#8203;6885](https://github.com/open-telemetry/opentelemetry-java/pull/6885))

##### Metrics

-   Lazily initialize ReservoirCells
    ([#&#8203;6851](https://github.com/open-telemetry/opentelemetry-java/pull/6851))

##### Logs

-   Add synchronization to SimpleLogRecordProcessor to ensure thread-safe export of logs
    ([#&#8203;6885](https://github.com/open-telemetry/opentelemetry-java/pull/6885))

##### Exporters

-   OTLP: Update opentelementry-proto to 1.4
    ([#&#8203;6906](https://github.com/open-telemetry/opentelemetry-java/pull/6906))
-   OTLP: Rename internal Marshaler#writeJsonToGenerator method to allow jackson runtimeOnly dependency
    ([#&#8203;6896](https://github.com/open-telemetry/opentelemetry-java/pull/6896))
-   OTLP: Fix repeated string serialization for JSON.
    ([#&#8203;6888](https://github.com/open-telemetry/opentelemetry-java/pull/6888))
-   OTLP: Fix missing unsafe available check
    ([#&#8203;6920](https://github.com/open-telemetry/opentelemetry-java/pull/6920))

##### Extensions

-   Declarative config: Don't require empty objects when referencing custom components
    ([#&#8203;6891](https://github.com/open-telemetry/opentelemetry-java/pull/6891))

##### Tooling

-   Add javadoc boilerplate internal comment v2 for experimental classes
    ([#&#8203;6886](https://github.com/open-telemetry/opentelemetry-java/pull/6886))
-   Update develocity configuration
    ([#&#8203;6903](https://github.com/open-telemetry/opentelemetry-java/pull/6903))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), 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.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- 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/java-spanner).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS40Mi40IiwidXBkYXRlZEluVmVyIjoiMzkuNTguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
🤖 I have created a release *beep* *boop*
---


### Updating meta-information for bleeding-edge SNAPSHOT release.

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
* feat(spanner): add jdbc support for external hosts

* feat(spanner): added default port value and unit tests

* feat(spanner): fixed redundant class name typo
* ci(spanner): Create a new Sample Slow tests

* Fix delete backup issue in autogenerated admin client
* chore: make internal auth backend errors retryable

Spanner occasionally returns INTERNAL errors regarding the auth backend server.
These errors should be regarded as retryable.

* fix: retry specific internal errors

Some specific internal errors should be retrid. Instead of adding INTERNAL
as a standard retryable error code, we use an interceptor to catch and
translate those specific errors.

See also b/375684610

* chore: address review comments

* fix: wait for session pool to initialize

* fix: register errors before creating the client
…is#3567)

* chore: disable native metrics when there are no credentials

Native metrics were automatically disabled when the emulator is used, but
some clients (e.g. PGAdapter) set up the connection to the emulator manually
instead of setting the environment variable. Also, when using in-mem mock
servers, native metrics should be disabled, as they cannot be exported.

This PR therefore adds an additional check that disables native metrics
when the client uses a NoCredentials instance.

* chore: make method private
@product-auto-label product-auto-label bot added size: xl Pull request size is extra large. api: spanner Issues related to the googleapis/java-spanner API. labels Dec 27, 2024
@gagangupt16 gagangupt16 marked this pull request as ready for review December 27, 2024 06:09
@gagangupt16 gagangupt16 requested review from a team as code owners December 27, 2024 06:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: spanner Issues related to the googleapis/java-spanner API. size: xl Pull request size is extra large.
Projects
None yet
Development

Successfully merging this pull request may close these issues.