1#![expect(
16 refining_impl_trait,
17 reason = "Some of the Row::iter() implementations returns ExactSizeIterator. Is this reasonable?"
18)]
19#![feature(trait_alias)]
20#![feature(type_alias_impl_trait)]
21#![feature(test)]
22#![feature(trusted_len)]
23#![feature(allocator_api)]
24#![feature(coroutines)]
25#![feature(map_try_insert)]
26#![feature(error_generic_member_access)]
27#![feature(portable_simd)]
28#![feature(once_cell_try)]
29#![allow(incomplete_features)]
30#![feature(iterator_try_collect)]
31#![feature(iter_order_by)]
32#![feature(binary_heap_into_iter_sorted)]
33#![feature(impl_trait_in_assoc_type)]
34#![feature(negative_impls)]
35#![feature(register_tool)]
36#![feature(btree_cursors)]
37#![feature(assert_matches)]
38#![feature(anonymous_lifetime_in_impl_trait)]
39#![feature(vec_into_raw_parts)]
40#![feature(exact_div)]
41#![feature(used_with_arg)]
42#![feature(iter_array_chunks)]
43#![feature(exact_size_is_empty)]
44#![feature(debug_closure_helpers)]
45#![register_tool(rw)]
46
47#[cfg_attr(not(test), allow(unused_extern_crates))]
48extern crate self as risingwave_common;
49
50#[macro_use]
53extern crate risingwave_error;
54pub use risingwave_error::common::{
55 bail_no_function, bail_not_implemented, no_function, not_implemented,
56};
57pub use risingwave_error::macros::*;
58
59#[macro_use]
60pub mod jemalloc;
61#[macro_use]
62pub mod error;
63#[macro_use]
64pub mod array;
65#[macro_use]
66pub mod util;
67pub mod acl;
68pub mod bitmap;
69pub mod cache;
70pub mod cast;
71pub mod lru;
72pub mod operator;
73pub mod opts;
74pub mod range;
75pub mod row;
76pub mod sequence;
77pub mod session_config;
78pub mod system_param;
79
80pub mod catalog;
81pub mod config;
82pub mod constants;
83pub mod field_generator;
84pub mod global_jvm;
85pub mod hash;
86pub mod log;
87pub mod memory;
88pub mod metrics_reader;
89pub mod telemetry;
90pub mod test_utils;
91pub mod transaction;
92pub mod types;
93pub mod vector;
94pub mod vnode_mapping;
95
96pub mod test_prelude {
97 pub use super::array::{DataChunkTestExt, StreamChunkTestExt};
98 pub use super::catalog::test_utils::ColumnDescTestExt;
99}
100
101pub use risingwave_common_metrics::{
102 monitor, register_guarded_gauge_vec_with_registry,
103 register_guarded_histogram_vec_with_registry, register_guarded_int_counter_vec_with_registry,
104 register_guarded_int_gauge_vec_with_registry, register_guarded_uint_gauge_vec_with_registry,
105};
106pub use {
107 risingwave_common_metrics as metrics, risingwave_common_secret as secret,
108 risingwave_license as license,
109};
110
111pub const RW_VERSION: &str = env!("CARGO_PKG_VERSION");
112
113pub const UNKNOWN_GIT_SHA: &str = "unknown";
115
116pub const PG_VERSION: &str = "13.14.0";
119pub const SERVER_VERSION_NUM: i32 = 130014;
121pub const SERVER_ENCODING: &str = "UTF8";
123pub const STANDARD_CONFORMING_STRINGS: &str = "on";
125
126#[macro_export]
127macro_rules! git_sha {
128 ($env:literal) => {
129 match option_env!($env) {
130 Some(v) if !v.is_empty() => v,
131 _ => $crate::UNKNOWN_GIT_SHA,
132 }
133 };
134}
135
136pub const GIT_SHA: &str = git_sha!("GIT_SHA");
140
141pub fn current_cluster_version() -> String {
142 format!(
143 "PostgreSQL {}-RisingWave-{} ({})",
144 PG_VERSION, RW_VERSION, GIT_SHA
145 )
146}
147
148#[macro_export]
153macro_rules! panic_if_debug {
154 ($($arg:tt)*) => {
155 if cfg!(debug_assertions) {
156 panic!($($arg)*)
157 } else {
158 tracing::warn!($($arg)*)
159 }
160 };
161}