@@ -419,7 +419,7 @@ impl SessionVars {
419419 & WELCOME_MESSAGE ,
420420 ]
421421 . into_iter ( )
422- . chain ( SystemVars :: SESSION_VARS . iter ( ) . map ( |( _name, var) | * var) )
422+ . chain ( SESSION_SYSTEM_VARS . iter ( ) . map ( |( _name, var) | * var) )
423423 . map ( |var| ( var. name , SessionVar :: new ( var. clone ( ) ) ) )
424424 . collect ( ) ;
425425
@@ -1070,37 +1070,6 @@ impl Default for SystemVars {
10701070}
10711071
10721072impl SystemVars {
1073- /// Set of [`SystemVar`]s that can also get set at a per-Session level.
1074- ///
1075- /// TODO(parkmycar): Instead of a separate list, make this a field on VarDefinition.
1076- const SESSION_VARS : LazyLock < BTreeMap < & ' static UncasedStr , & ' static VarDefinition > > =
1077- LazyLock :: new ( || {
1078- [
1079- & APPLICATION_NAME ,
1080- & CLIENT_ENCODING ,
1081- & CLIENT_MIN_MESSAGES ,
1082- & CLUSTER ,
1083- & CLUSTER_REPLICA ,
1084- & CURRENT_OBJECT_MISSING_WARNINGS ,
1085- & DATABASE ,
1086- & DATE_STYLE ,
1087- & EXTRA_FLOAT_DIGITS ,
1088- & INTEGER_DATETIMES ,
1089- & INTERVAL_STYLE ,
1090- & REAL_TIME_RECENCY_TIMEOUT ,
1091- & SEARCH_PATH ,
1092- & STANDARD_CONFORMING_STRINGS ,
1093- & STATEMENT_TIMEOUT ,
1094- & IDLE_IN_TRANSACTION_SESSION_TIMEOUT ,
1095- & TIMEZONE ,
1096- & TRANSACTION_ISOLATION ,
1097- & MAX_QUERY_RESULT_SIZE ,
1098- ]
1099- . into_iter ( )
1100- . map ( |var| ( UncasedStr :: new ( var. name ( ) ) , var) )
1101- . collect ( )
1102- } ) ;
1103-
11041073 pub fn new ( ) -> Self {
11051074 let system_vars = vec ! [
11061075 & MAX_KAFKA_CONNECTIONS ,
@@ -1273,7 +1242,7 @@ impl SystemVars {
12731242 // Include all of our feature flags.
12741243 . chain ( definitions:: FEATURE_FLAGS . iter ( ) . copied ( ) )
12751244 // Include the subset of Session variables we allow system defaults for.
1276- . chain ( Self :: SESSION_VARS . values ( ) . copied ( ) )
1245+ . chain ( SESSION_SYSTEM_VARS . values ( ) . copied ( ) )
12771246 . cloned ( )
12781247 // Include Persist configs.
12791248 . chain ( dyncfg_vars)
@@ -1341,7 +1310,7 @@ impl SystemVars {
13411310 self . vars
13421311 . values ( )
13431312 . map ( |v| v. as_var ( ) )
1344- . filter ( |v| !Self :: SESSION_VARS . contains_key ( UncasedStr :: new ( v. name ( ) ) ) )
1313+ . filter ( |v| !SESSION_SYSTEM_VARS . contains_key ( UncasedStr :: new ( v. name ( ) ) ) )
13451314 }
13461315
13471316 /// Returns an iterator over the configuration parameters and their current
@@ -1356,12 +1325,12 @@ impl SystemVars {
13561325 self . vars
13571326 . values ( )
13581327 . map ( |v| v. as_var ( ) )
1359- . filter ( |v| Self :: SESSION_VARS . contains_key ( UncasedStr :: new ( v. name ( ) ) ) )
1328+ . filter ( |v| SESSION_SYSTEM_VARS . contains_key ( UncasedStr :: new ( v. name ( ) ) ) )
13601329 }
13611330
13621331 /// Returns whether or not this parameter can be modified by a superuser.
13631332 pub fn user_modifiable ( & self , name : & str ) -> bool {
1364- Self :: SESSION_VARS . contains_key ( UncasedStr :: new ( name) )
1333+ SESSION_SYSTEM_VARS . contains_key ( UncasedStr :: new ( name) )
13651334 || name == ENABLE_RBAC_CHECKS . name ( )
13661335 || name == NETWORK_POLICY . name ( )
13671336 }
@@ -2332,6 +2301,37 @@ pub fn is_http_config_var(name: &str) -> bool {
23322301 name == WEBHOOK_CONCURRENT_REQUEST_LIMIT . name ( )
23332302}
23342303
2304+ /// Set of [`SystemVar`]s that can also get set at a per-Session level.
2305+ ///
2306+ /// TODO(parkmycar): Instead of a separate list, make this a field on VarDefinition.
2307+ static SESSION_SYSTEM_VARS : LazyLock < BTreeMap < & ' static UncasedStr , & ' static VarDefinition > > =
2308+ LazyLock :: new ( || {
2309+ [
2310+ & APPLICATION_NAME ,
2311+ & CLIENT_ENCODING ,
2312+ & CLIENT_MIN_MESSAGES ,
2313+ & CLUSTER ,
2314+ & CLUSTER_REPLICA ,
2315+ & CURRENT_OBJECT_MISSING_WARNINGS ,
2316+ & DATABASE ,
2317+ & DATE_STYLE ,
2318+ & EXTRA_FLOAT_DIGITS ,
2319+ & INTEGER_DATETIMES ,
2320+ & INTERVAL_STYLE ,
2321+ & REAL_TIME_RECENCY_TIMEOUT ,
2322+ & SEARCH_PATH ,
2323+ & STANDARD_CONFORMING_STRINGS ,
2324+ & STATEMENT_TIMEOUT ,
2325+ & IDLE_IN_TRANSACTION_SESSION_TIMEOUT ,
2326+ & TIMEZONE ,
2327+ & TRANSACTION_ISOLATION ,
2328+ & MAX_QUERY_RESULT_SIZE ,
2329+ ]
2330+ . into_iter ( )
2331+ . map ( |var| ( UncasedStr :: new ( var. name ( ) ) , var) )
2332+ . collect ( )
2333+ } ) ;
2334+
23352335// Provides a wrapper to express that a particular `ServerVar` is meant to be used as a feature
23362336/// flag.
23372337#[ derive( Debug ) ]
0 commit comments