Default jdbc-ping cluster setup for distributed caches fails in Oracle #40999
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.
Closes #40784
In general we rely upon Hibernate/Liquibase and the DB drivers to handle Schema case sensitivity for us, for example:
keycloak/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/storage/database/jpa/QuarkusJpaConnectionProviderFactory.java
Line 112 in 87fbe23
However, when creating the SQL query for JDBC_PING and
JpaRealmProvider#preRemove
we are explicitly quoting the name of the default schema making it case-sensitive.When querying the default schema via Hibernate, the schema name is returned case insensitively in lower-case. Therefore, in the case of DBs that don't default to lower-case, e.g. Oracle, applying quotations around the name in the SQL will lead to a mismatch and the schema will not be found.