feat(bqjdbc): implement Per connection logging with Context proxy#13001
Merged
feat(bqjdbc): implement Per connection logging with Context proxy#13001
Conversation
…data context routing
…ate integration tests
Contributor
There was a problem hiding this comment.
Code Review
This pull request introduces a dynamic proxy mechanism, BigQueryJdbcContextProxy, to automate the management of connection-specific logging contexts (MDC) and unify exception logging across JDBC components. It simplifies the BigQueryJdbcMdc implementation and refactors various classes to remove manual logging overhead. Review feedback suggests extending the proxy to ResultSet to maintain context during data retrieval, handling Object methods within the proxy, correcting the isWrapperFor logic, and improving null-safety in exception message logging.
…oilerplate from Connection and Statement methods
logachev
reviewed
May 5, 2026
logachev
approved these changes
May 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
b/501081433
Foundational MDC & Global File Handler Routing
Simplifies the BigQueryJdbcMdc ThreadLocal context slots, sets up "Jdbc-global" fallback file routing, and adds isFileLoggingEnabled() to the root logger.
Dynamic Context Proxy Wrapper & Connection Wrap
Implements the BigQueryJdbcContextProxy dynamic proxy interceptor, delegating standard wrappers, and wrapping all new JDBC entries in BigQueryDriver.
Statement Modifications & Connection Pool unwrapping
Adapts Statements and Connection ID builders to utilize the dynamic proxy, and updates connection pool managers to safely extract raw connection properties via standard unwrap calls.
0%-Overhead Raw ResultSet & Metadata Routing
Completely un-proxies ResultSet to achieve 0% query execution overhead, while implementing targeted ResultSetMetaData proxy wrapping inside getMetaData() to keep metadata queries connection-routed.
Decoupled Exceptions & Clean Integration Tests
Decouples all custom exception constructors to eliminate double-logging, converts all 17 integration test class casts to standard unwrap calls, and migrates all deprecated github_timeline public dataset queries to the active shakespeare dataset.