Skip to content

perf(spanner-jdbc): cache JDBC metadata query strings - #14041

Open
olavloite wants to merge 3 commits into
mainfrom
cache-metadata-queries
Open

perf(spanner-jdbc): cache JDBC metadata query strings#14041
olavloite wants to merge 3 commits into
mainfrom
cache-metadata-queries

Conversation

@olavloite

Copy link
Copy Markdown
Contributor

Cache the SQL strings that are loaded from disk for the standard JDBC metadata queries.

Cache the SQL strings that are loaded from disk for the standard JDBC metadata queries.
@olavloite
olavloite requested review from a team as code owners August 11, 2026 15:00

@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 introduces caching for SQL queries loaded from files in JdbcDatabaseMetaData using a ConcurrentHashMap to improve performance, and adds a corresponding unit test to verify the caching behavior. It also updates the file reading logic to use UTF-8 explicitly and adds a null check for the resource stream. The reviewer suggests managing all closeable resources (InputStream, InputStreamReader, and Scanner) within a try-with-resources block to prevent potential resource leaks and notes that BufferedReader is redundant.

@olavloite

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 introduces caching for SQL files read from resources in JdbcDatabaseMetaData using a ConcurrentHashMap to avoid redundant file I/O operations, and adds corresponding unit tests. The review feedback suggests optimizing the cache lookup by performing a fast get check before calling computeIfAbsent to prevent unnecessary lambda allocations on cache hits.

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