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 INSERT_SKIP_WAL_HINT: &str = "insert_skip_wal";
28
29pub const READ_PREFERENCE_HINT: &str = "read_preference";
30pub const READ_PREFERENCE_EXTENSION_KEY: &str = "query.read_preference";
31pub const RESERVED_EXTENSION_KEYS: [&str; 5] = [
32 REMOTE_QUERY_ID_EXTENSION_KEY,
33 INITIAL_REMOTE_DYN_FILTER_REGISTRATIONS_EXTENSION_KEY,
34 SUPPORT_FLIGHT_METRICS_BEFORE_BATCH_EXTENSION_KEY,
35 LIVE_ANALYZE_METRICS_EXTENSION_KEY,
36 READ_PREFERENCE_EXTENSION_KEY,
37];
38
39pub const HINT_KEYS: [&str; 7] = [
41 "x-greptime-hint-auto_create_table",
42 "x-greptime-hint-ttl",
43 "x-greptime-hint-append_mode",
44 "x-greptime-hint-merge_mode",
45 "x-greptime-hint-physical_table",
46 "x-greptime-hint-skip_wal",
47 "x-greptime-hint-read_preference",
48];
49
50pub fn is_reserved_extension_key(key: &str) -> bool {
51 RESERVED_EXTENSION_KEYS.contains(&key)
52}
53
54#[cfg(test)]
55mod tests {
56 use super::*;
57
58 #[test]
59 fn test_is_reserved_extension_key() {
60 assert!(is_reserved_extension_key(REMOTE_QUERY_ID_EXTENSION_KEY));
61 assert!(is_reserved_extension_key(
62 INITIAL_REMOTE_DYN_FILTER_REGISTRATIONS_EXTENSION_KEY
63 ));
64 assert!(is_reserved_extension_key(
65 SUPPORT_FLIGHT_METRICS_BEFORE_BATCH_EXTENSION_KEY
66 ));
67 assert!(is_reserved_extension_key(
68 LIVE_ANALYZE_METRICS_EXTENSION_KEY
69 ));
70 assert!(is_reserved_extension_key(READ_PREFERENCE_EXTENSION_KEY));
71 assert!(!is_reserved_extension_key(READ_PREFERENCE_HINT));
72 }
73}