Skip to content

Commit 8ef9b31

Browse files
committed
removed session_timezone from clearSession()
1 parent c1d52e5 commit 8ef9b31

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

client-v2/src/main/java/com/clickhouse/client/api/internal/CommonSettings.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@ public void clearSession() {
143143
resetOption(ClientConfigProperties.serverSetting(ClickHouseHttpProto.QPARAM_SESSION_ID));
144144
resetOption(ClientConfigProperties.serverSetting(ClickHouseHttpProto.QPARAM_SESSION_CHECK));
145145
resetOption(ClientConfigProperties.serverSetting(ClickHouseHttpProto.QPARAM_SESSION_TIMEOUT));
146-
resetOption(ClientConfigProperties.serverSetting(ClickHouseHttpProto.QPARAM_SESSION_TIMEZONE));
146+
// Do not clean `session_timezone` setting because it is not related to session management and used to
147+
// set timezone for consequent queries in some multi-user applications.
147148
}
148149

149150
/**

client-v2/src/test/java/com/clickhouse/client/SettingsTests.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,9 @@ void testQuerySettingsSpecific() throws Exception {
160160
Assert.assertNull(settings.getSessionId(), "clearSession() must remove session_id");
161161
Assert.assertNull(settings.getSessionCheck(), "clearSession() must remove session_check");
162162
Assert.assertNull(settings.getSessionTimeout(), "clearSession() must remove session_timeout");
163-
Assert.assertNull(settings.getSessionTimezone(), "clearSession() must remove session_timezone");
163+
// session_timezone is not session-management state; it is preserved across clearSession().
164+
Assert.assertEquals(settings.getSessionTimezone(), "America/New_York",
165+
"clearSession() must not remove session_timezone");
164166

165167
// Non-session settings are unaffected.
166168
settings.setDatabase("db1");
@@ -273,7 +275,9 @@ public void testInsertSettingsSpecific() throws Exception {
273275
Assert.assertNull(settings.getSessionId(), "clearSession() must remove session_id");
274276
Assert.assertNull(settings.getSessionCheck(), "clearSession() must remove session_check");
275277
Assert.assertNull(settings.getSessionTimeout(), "clearSession() must remove session_timeout");
276-
Assert.assertNull(settings.getSessionTimezone(), "clearSession() must remove session_timezone");
278+
// session_timezone is not session-management state; it is preserved across clearSession().
279+
Assert.assertEquals(settings.getSessionTimezone(), "Asia/Tokyo",
280+
"clearSession() must not remove session_timezone");
277281

278282
// Non-session settings are unaffected.
279283
settings.setDatabase("db2");

0 commit comments

Comments
 (0)