Skip to content

Commit a5ae7a2

Browse files
authored
chore: cache auto_add_limit setting (GoogleCloudPlatform#3162)
1 parent aef404f commit a5ae7a2

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

src/main/java/com/google/cloud/spanner/pgadapter/session/SessionState.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ public SessionState(OptionsMetadata options) {
124124
new AtomicReference<>();
125125

126126
private final AtomicReference<ZoneId> cachedZoneId = new AtomicReference<>();
127+
private final AtomicReference<Boolean> cachedAutoAddLimitClause = new AtomicReference<>();
127128
private final AtomicReference<Boolean> cachedReplaceForUpdateClause = new AtomicReference<>();
128129
private final AtomicReference<Boolean> cachedReplacePgCatalogTables = new AtomicReference<>();
129130
private final AtomicReference<Boolean> cachedEmulatePgClassTables = new AtomicReference<>();
@@ -133,6 +134,7 @@ public SessionState(OptionsMetadata options) {
133134
private void invalidateCache() {
134135
cachedRemoveEscapeClause.set(null);
135136
cachedZoneId.set(null);
137+
cachedAutoAddLimitClause.set(null);
136138
cachedReplaceForUpdateClause.set(null);
137139
cachedReplacePgCatalogTables.set(null);
138140
cachedEmulatePgClassTables.set(null);
@@ -475,7 +477,8 @@ public boolean isSupportDropCascade() {
475477
// TODO: Remove when Cloud Spanner supports parametrized OFFSET clauses without a LIMIT clause.
476478
@InternalApi
477479
public boolean isAutoAddLimitClause() {
478-
return getBoolSetting("spanner", "auto_add_limit_clause", false);
480+
return getCachedValue(
481+
() -> getBoolSetting("spanner", "auto_add_limit_clause", false), cachedAutoAddLimitClause);
479482
}
480483

481484
/**

0 commit comments

Comments
 (0)