Skip to content

Conversation

@surbhigarg92
Copy link
Contributor

@surbhigarg92 surbhigarg92 commented Jan 22, 2026

This PR Deprecate databaseRole and labels in SessionPoolOptions in favor of SpannerOptions.sessionLabels and the Database constructor argument. Existing configurations will continue to work with a fallback.

We plan to deprecate SessionPool and SessionPoolOptions in upcoming PR, so this PR gives an option to configure these parameters.

Changes:

  • feat: add sessionLabels to SpannerOptions to allow defining session labels at the client level
  • feat: update Database constructor to accept databaseRole as a direct parameter
  • fix: deprecate labels and databaseRole in SessionPoolOptions

@surbhigarg92 surbhigarg92 requested review from a team as code owners January 22, 2026 06:21
@product-auto-label product-auto-label bot added size: m Pull request size is medium. api: spanner Issues related to the googleapis/nodejs-spanner API. labels Jan 22, 2026
@gemini-code-assist
Copy link

Summary of Changes

Hello @surbhigarg92, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refactors how session labels and database roles are configured within the Spanner client library. It introduces new, more direct ways to specify these options at the client and database levels, while gracefully deprecating the older methods previously found in SessionPoolOptions. The changes aim to streamline configuration and improve clarity, ensuring backward compatibility for existing implementations.

Highlights

  • Centralized Session Label Configuration: Introduced sessionLabels in SpannerOptions to allow defining session labels at the client level, providing a more centralized configuration point.
  • Direct Database Role Assignment: The Database constructor now directly accepts databaseRole, simplifying its configuration and making it more explicit.
  • Deprecation of Session Pool Options: databaseRole and labels within SessionPoolOptions have been deprecated, with a clear migration path to the new SpannerOptions.sessionLabels and Database constructor argument.
  • Backward Compatibility: Existing configurations using the deprecated SessionPoolOptions will continue to function with a fallback mechanism, ensuring a smooth transition.
  • Updated Test Coverage: New tests have been added to validate the correct behavior of the new databaseRole argument in the Database constructor and the sessionLabels from SpannerOptions.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request effectively refactors databaseRole and labels from SessionPoolOptions, deprecating them in favor of SpannerOptions.sessionLabels and a direct Database constructor argument. The changes are well-implemented with proper fallbacks for backward compatibility, and the tests have been updated accordingly. I have one minor suggestion to improve code conciseness by using optional chaining.

@surbhigarg92 surbhigarg92 force-pushed the databaserole_sessionlabels branch from d70392c to 100c54b Compare January 22, 2026 06:39
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/nodejs-spanner API. size: m Pull request size is medium.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant