Skip to content

Commit 77f54b8

Browse files
committed
*: enable borrow_interior_mutable_const clippy lint
1 parent 1b674c6 commit 77f54b8

File tree

9 files changed

+58
-74
lines changed

9 files changed

+58
-74
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,7 @@ map_entry = { level = "allow", priority = 0 }
345345
box_default = { level = "allow", priority = 0 }
346346
drain_collect = { level = "allow", priority = 0 }
347347
bool_comparison = "warn"
348+
borrow_interior_mutable_const = "warn"
348349
clone_on_ref_ptr = "warn"
349350
no_effect = "warn"
350351
unnecessary_unwrap = "warn"

src/adapter/src/coord/timeline.rs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
use std::collections::{BTreeMap, BTreeSet};
1313
use std::fmt;
1414
use std::sync::Arc;
15-
use std::sync::LazyLock;
16-
use std::time::Duration;
1715

1816
use chrono::{DateTime, Utc};
1917
use futures::Future;
@@ -711,16 +709,8 @@ impl Coordinator {
711709
/// Convenience function for calculating the current upper bound that we want to
712710
/// prevent the global timestamp from exceeding.
713711
fn upper_bound(now: &mz_repr::Timestamp) -> mz_repr::Timestamp {
714-
const TIMESTAMP_INTERVAL: LazyLock<mz_repr::Timestamp> = LazyLock::new(|| {
715-
Duration::from_secs(5)
716-
.as_millis()
717-
.try_into()
718-
.expect("5 seconds can fit into `Timestamp`")
719-
});
720-
712+
const TIMESTAMP_INTERVAL_MS: u64 = 5000;
721713
const TIMESTAMP_INTERVAL_UPPER_BOUND: u64 = 2;
722714

723-
now.saturating_add(
724-
TIMESTAMP_INTERVAL.saturating_mul(Timestamp::from(TIMESTAMP_INTERVAL_UPPER_BOUND)),
725-
)
715+
now.saturating_add(TIMESTAMP_INTERVAL_MS * TIMESTAMP_INTERVAL_UPPER_BOUND)
726716
}

src/catalog/src/durable/initialize.rs

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -114,21 +114,17 @@ const DEFAULT_ALLOCATOR_ID: u64 = 1;
114114

115115
pub const DEFAULT_USER_NETWORK_POLICY_ID: NetworkPolicyId = NetworkPolicyId::User(1);
116116
pub const DEFAULT_USER_NETWORK_POLICY_NAME: &str = "default";
117-
pub const DEFAULT_USER_NETWORK_POLICY_RULES: LazyLock<
118-
Vec<(
119-
&str,
120-
mz_sql::plan::NetworkPolicyRuleAction,
121-
mz_sql::plan::NetworkPolicyRuleDirection,
122-
&str,
123-
)>,
124-
> = LazyLock::new(|| {
125-
vec![(
126-
"open_ingress",
127-
mz_sql::plan::NetworkPolicyRuleAction::Allow,
128-
mz_sql::plan::NetworkPolicyRuleDirection::Ingress,
129-
"0.0.0.0/0",
130-
)]
131-
});
117+
pub const DEFAULT_USER_NETWORK_POLICY_RULES: &[(
118+
&str,
119+
mz_sql::plan::NetworkPolicyRuleAction,
120+
mz_sql::plan::NetworkPolicyRuleDirection,
121+
&str,
122+
)] = &[(
123+
"open_ingress",
124+
mz_sql::plan::NetworkPolicyRuleAction::Allow,
125+
mz_sql::plan::NetworkPolicyRuleDirection::Ingress,
126+
"0.0.0.0/0",
127+
)];
132128

133129
static DEFAULT_USER_NETWORK_POLICY_PRIVILEGES: LazyLock<Vec<MzAclItem>> = LazyLock::new(|| {
134130
vec![rbac::owner_privilege(
@@ -594,7 +590,6 @@ pub(crate) async fn initialize(
594590
DEFAULT_USER_NETWORK_POLICY_ID,
595591
DEFAULT_USER_NETWORK_POLICY_NAME.to_string(),
596592
DEFAULT_USER_NETWORK_POLICY_RULES
597-
.clone()
598593
.into_iter()
599594
.map(|(name, action, direction, ip_str)| NetworkPolicyRule {
600595
name: name.to_string(),

src/lsp-server/tests/test.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ mod tests {
5151
}
5252

5353
/// The file path used during the tests is where the SQL code resides.
54-
const FILE_PATH: LazyLock<PathBuf> = LazyLock::new(|| temp_dir().join("foo.sql"));
54+
static FILE_PATH: LazyLock<PathBuf> = LazyLock::new(|| temp_dir().join("foo.sql"));
5555
/// The SQL code written inside [FILE_PATH].
56-
const FILE_SQL_CONTENT: LazyLock<String> =
56+
static FILE_SQL_CONTENT: LazyLock<String> =
5757
LazyLock::new(|| "SELECT \t\t\t200, 200;".to_string());
5858

5959
/// Tests the different capabilities of [Backend](mz_lsp::backend::Backend)

src/persist-client/src/rpc.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1135,9 +1135,9 @@ mod pubsub_state {
11351135
use crate::rpc::{PubSubSenderInternal, PubSubState};
11361136
use crate::ShardId;
11371137

1138-
const SHARD_ID_0: LazyLock<ShardId> =
1138+
static SHARD_ID_0: LazyLock<ShardId> =
11391139
LazyLock::new(|| ShardId::from_str("s00000000-0000-0000-0000-000000000000").unwrap());
1140-
const SHARD_ID_1: LazyLock<ShardId> =
1140+
static SHARD_ID_1: LazyLock<ShardId> =
11411141
LazyLock::new(|| ShardId::from_str("s11111111-1111-1111-1111-111111111111").unwrap());
11421142

11431143
const VERSIONED_DATA_0: VersionedData = VersionedData {

src/secrets/src/cache.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use mz_repr::CatalogItemId;
1919
use crate::{CachingPolicy, SecretsReader};
2020

2121
/// Default "time to live" for a single cache value, represented in __seconds__.
22-
pub const DEFAULT_TTL_SECS: AtomicU64 = AtomicU64::new(Duration::from_secs(300).as_secs());
22+
pub const DEFAULT_TTL_SECS: u64 = Duration::from_secs(300).as_secs();
2323

2424
#[derive(Debug)]
2525
struct CachingParameters {
@@ -53,7 +53,7 @@ impl Default for CachingParameters {
5353
fn default() -> Self {
5454
CachingParameters {
5555
enabled: AtomicBool::new(true),
56-
ttl_secs: DEFAULT_TTL_SECS,
56+
ttl_secs: AtomicU64::new(DEFAULT_TTL_SECS),
5757
}
5858
}
5959
}

src/sql/src/plan/statement/ddl.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ mod connection;
172172
// more strict.
173173
const MAX_NUM_COLUMNS: usize = 256;
174174

175-
const MANAGED_REPLICA_PATTERN: std::sync::LazyLock<regex::Regex> =
175+
static MANAGED_REPLICA_PATTERN: std::sync::LazyLock<regex::Regex> =
176176
std::sync::LazyLock::new(|| regex::Regex::new(r"^r(\d)+$").unwrap());
177177

178178
/// Given a relation desc and a column list, checks that:

src/sql/src/session/vars.rs

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -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

10721072
impl 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)]

src/sql/src/session/vars/definitions.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -914,9 +914,7 @@ pub static SENTRY_FILTERS: VarDefinition = VarDefinition::new_lazy(
914914
pub static WEBHOOKS_SECRETS_CACHING_TTL_SECS: VarDefinition = VarDefinition::new_lazy(
915915
"webhooks_secrets_caching_ttl_secs",
916916
lazy_value!(usize; || {
917-
usize::cast_from(
918-
mz_secrets::cache::DEFAULT_TTL_SECS.load(std::sync::atomic::Ordering::Relaxed),
919-
)
917+
usize::cast_from(mz_secrets::cache::DEFAULT_TTL_SECS)
920918
}),
921919
"Sets the time-to-live for values in the Webhooks secrets cache.",
922920
false,

0 commit comments

Comments
 (0)