Skip to content

feat(bigquery-jdbc): support qualified project delimiter in DefaultDataset property - #14240

Open
keshavdandeva wants to merge 4 commits into
mainfrom
jdbc/pcnt-support-conn-prop
Open

feat(bigquery-jdbc): support qualified project delimiter in DefaultDataset property#14240
keshavdandeva wants to merge 4 commits into
mainfrom
jdbc/pcnt-support-conn-prop

Conversation

@keshavdandeva

Copy link
Copy Markdown
Contributor

b/556170877

Parse DefaultDataset with both ':' and '.' delimiters to support PCNT datasets and projects

Key Changes

  • Unified DefaultDataset Parsing: Extracted BigQueryJdbcUrlUtility.parseDefaultDataset() to support both : (e.g. project:warehouse.namespace) and . delimiters, ensuring consistent parsing across JDBC connection strings and DataSource configurations.
  • Metadata Filtering: Updated BigQueryDatabaseMetaData.determineEffectiveCatalogAndSchema() to use defaultDataset.getProject() when FilterTablesOnDefaultDataset=1 is enabled.
  • Catalog Resolution: Updated BigQueryDatabaseMetaData.getAccessibleCatalogNames() to include the project from defaultDataset in the list of accessible catalogs.
  • Testing: Added focused unit tests in BigQueryJdbcUrlUtilityTest and BigQueryDatabaseMetaDataTest covering multi-format parsing, namespace delimiters, and catalog filtering.

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

Copy link
Copy Markdown
Contributor

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 refactors the default dataset parsing logic in BigQueryConnection by delegating it to a new utility method BigQueryJdbcUrlUtility.parseDefaultDataset, which supports both colon- and dot-delimited formats. It also updates BigQueryDatabaseMetaData to correctly resolve catalogs and schemas when a default dataset project is specified, and adds comprehensive unit tests. The review feedback suggests using lastIndexOf(':') instead of indexOf(':') to properly support domain-scoped projects (e.g., example.com:project-id:dataset-id) and recommends adding test cases to cover this scenario.

@keshavdandeva

Copy link
Copy Markdown
Contributor Author

/gemini review

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

Copy link
Copy Markdown
Contributor

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 refactors default dataset parsing by delegating it to a new utility method BigQueryJdbcUrlUtility.parseDefaultDataset and updates BigQueryDatabaseMetaData to correctly handle default datasets that include a project ID. It also adds corresponding unit tests. The review feedback highlights a bug in the new parsing logic where domain-scoped projects using a dot separator (e.g., example.com:my-project.my_dataset) are parsed incorrectly, and provides a robust implementation to resolve this along with a suggestion to add a test case for this scenario.

@keshavdandeva
keshavdandeva marked this pull request as ready for review September 2, 2026 17:12
@keshavdandeva
keshavdandeva requested review from a team as code owners September 2, 2026 17:12
@keshavdandeva keshavdandeva changed the title feat(jdbc): support qualified project delimiter in DefaultDataset property feat(bigquery-jdbc): support qualified project delimiter in DefaultDataset property Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant