1pub const HINTS_KEY: &str = "x-greptime-hints";
17pub const HINTS_KEY_PREFIX: &str = "x-greptime-hint-";
19pub const REMOTE_QUERY_ID_EXTENSION_KEY: &str = "remote_query_id";
20pub const INITIAL_REMOTE_DYN_FILTER_REGISTRATIONS_EXTENSION_KEY: &str =
21 "initial_remote_dyn_filter_registrations";
22pub const SUPPORT_FLIGHT_METRICS_BEFORE_BATCH_EXTENSION_KEY: &str =
23 "query.support_flight_metrics_before_batch";
24pub const LIVE_ANALYZE_METRICS_EXTENSION_KEY: &str = "query.live_analyze_metrics";
25
26pub const READ_PREFERENCE_HINT: &str = "read_preference";
27pub const RESERVED_EXTENSION_KEYS: [&str; 4] = [
28 REMOTE_QUERY_ID_EXTENSION_KEY,
29 INITIAL_REMOTE_DYN_FILTER_REGISTRATIONS_EXTENSION_KEY,
30 SUPPORT_FLIGHT_METRICS_BEFORE_BATCH_EXTENSION_KEY,
31 LIVE_ANALYZE_METRICS_EXTENSION_KEY,
32];
33
34pub const HINT_KEYS: [&str; 7] = [
36 "x-greptime-hint-auto_create_table",
37 "x-greptime-hint-ttl",
38 "x-greptime-hint-append_mode",
39 "x-greptime-hint-merge_mode",
40 "x-greptime-hint-physical_table",
41 "x-greptime-hint-skip_wal",
42 "x-greptime-hint-read_preference",
43];
44
45pub fn is_reserved_extension_key(key: &str) -> bool {
46 RESERVED_EXTENSION_KEYS.contains(&key)
47}
48
49#[cfg(test)]
50mod tests {
51 use super::*;
52
53 #[test]
54 fn test_is_reserved_extension_key() {
55 assert!(is_reserved_extension_key(REMOTE_QUERY_ID_EXTENSION_KEY));
56 assert!(is_reserved_extension_key(
57 INITIAL_REMOTE_DYN_FILTER_REGISTRATIONS_EXTENSION_KEY
58 ));
59 assert!(is_reserved_extension_key(
60 SUPPORT_FLIGHT_METRICS_BEFORE_BATCH_EXTENSION_KEY
61 ));
62 assert!(is_reserved_extension_key(
63 LIVE_ANALYZE_METRICS_EXTENSION_KEY
64 ));
65 assert!(!is_reserved_extension_key(READ_PREFERENCE_HINT));
66 }
67}