pub struct FrameColumn {
pub namespace: Option<String>,
pub source: Option<String>,
pub name: String,
pub data: FrameColumnData,
}Fields§
§namespace: Option<String>§source: Option<String>§name: String§data: FrameColumnDataImplementations§
Source§impl FrameColumn
impl FrameColumn
pub fn qualified_name(&self) -> String
Methods from Deref<Target = FrameColumnData>§
pub fn get_type(&self) -> Type
pub fn is_defined(&self, idx: usize) -> bool
pub fn is_bool(&self) -> bool
pub fn is_float(&self) -> bool
pub fn is_utf8(&self) -> bool
pub fn is_number(&self) -> bool
pub fn is_text(&self) -> bool
pub fn is_temporal(&self) -> bool
pub fn is_uuid(&self) -> bool
pub fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = Value> + 'a>
Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Examples found in repository?
examples/test_remote_sort.rs (line 38)
4fn main() -> Result<(), Box<dyn std::error::Error>> {
5 println!("Connecting to ws://192.168.100.52:8090/\n");
6
7 // Connect to the remote server
8 let client = Client::ws(("192.168.100.52", 8090))?;
9
10 // Try with auth token from environment or use "root"
11 let token = std::env::var("REIFYDB_TOKEN").unwrap_or_else(|_| "root".to_string());
12 println!(
13 "Using auth token: {}\n",
14 if token == "root" {
15 "root (default)"
16 } else {
17 &token
18 }
19 );
20
21 // Create a blocking session with auth token
22 let mut session = client.blocking_session(Some(token))?;
23
24 println!("Connected successfully!\n");
25
26 // Test ASC
27 println!("=== TEST 1: ASC (should show smallest first) ===");
28 println!("Query:");
29 println!("from system.table_storage_stats");
30 println!("sort total_bytes asc\n");
31
32 let query_asc = "from system.table_storage_stats\nsort total_bytes asc";
33 let result_asc = session.query(query_asc, None)?;
34
35 if let Some(frame) = result_asc.frames.first() {
36 if let Some(total_bytes_col) = frame.columns.iter().find(|c| c.name == "total_bytes") {
37 let mut values: Vec<u64> = Vec::new();
38 for i in 0..total_bytes_col.data.len() {
39 let val = total_bytes_col.data.as_string(i).parse::<u64>().unwrap_or(0);
40 values.push(val);
41 }
42 println!("ASC Results: {:?}", values);
43 println!("First value (should be smallest): {}", values[0]);
44 println!("Last value (should be largest): {}\n", values[values.len() - 1]);
45 }
46 }
47
48 // Test DESC
49 println!("=== TEST 2: DESC (should show largest first) ===");
50 println!("Query:");
51 println!("from system.table_storage_stats");
52 println!("sort total_bytes desc\n");
53
54 let query = "from system.table_storage_stats\nsort total_bytes desc";
55 let result = session.query(query, None)?;
56
57 println!("Query executed: {} frames returned\n", result.frames.len());
58
59 // Print the results
60 if let Some(frame) = result.frames.first() {
61 println!("Frame output:");
62 println!("{}\n", frame);
63
64 // Also analyze the data
65 if let Some(total_bytes_col) = frame.columns.iter().find(|c| c.name == "total_bytes") {
66 println!("=== Analyzing total_bytes column ===");
67 let mut values: Vec<u64> = Vec::new();
68 for i in 0..total_bytes_col.data.len() {
69 let val = total_bytes_col.data.as_string(i).parse::<u64>().unwrap_or(0);
70 values.push(val);
71 println!("Row {}: {} bytes", i, val);
72 }
73
74 println!("\nValues in order: {:?}", values);
75
76 // Check if sorted correctly (DESC = largest first)
77 let mut is_desc_sorted = true;
78 for i in 1..values.len() {
79 if values[i - 1] < values[i] {
80 is_desc_sorted = false;
81 println!(
82 "\n⚠️ SORTING ERROR at position {}: {} < {}",
83 i,
84 values[i - 1],
85 values[i]
86 );
87 }
88 }
89
90 if is_desc_sorted {
91 println!("\n✅ Correctly sorted in DESCENDING order (largest first)");
92 } else {
93 println!("\n❌ NOT correctly sorted in descending order!");
94 println!(" Expected: Largest value first, decreasing values");
95 println!(" Got: {:?}", values);
96 }
97 }
98 }
99
100 Ok(())
101}Sourcepub fn as_string(&self, index: usize) -> String
pub fn as_string(&self, index: usize) -> String
Examples found in repository?
examples/test_remote_sort.rs (line 39)
4fn main() -> Result<(), Box<dyn std::error::Error>> {
5 println!("Connecting to ws://192.168.100.52:8090/\n");
6
7 // Connect to the remote server
8 let client = Client::ws(("192.168.100.52", 8090))?;
9
10 // Try with auth token from environment or use "root"
11 let token = std::env::var("REIFYDB_TOKEN").unwrap_or_else(|_| "root".to_string());
12 println!(
13 "Using auth token: {}\n",
14 if token == "root" {
15 "root (default)"
16 } else {
17 &token
18 }
19 );
20
21 // Create a blocking session with auth token
22 let mut session = client.blocking_session(Some(token))?;
23
24 println!("Connected successfully!\n");
25
26 // Test ASC
27 println!("=== TEST 1: ASC (should show smallest first) ===");
28 println!("Query:");
29 println!("from system.table_storage_stats");
30 println!("sort total_bytes asc\n");
31
32 let query_asc = "from system.table_storage_stats\nsort total_bytes asc";
33 let result_asc = session.query(query_asc, None)?;
34
35 if let Some(frame) = result_asc.frames.first() {
36 if let Some(total_bytes_col) = frame.columns.iter().find(|c| c.name == "total_bytes") {
37 let mut values: Vec<u64> = Vec::new();
38 for i in 0..total_bytes_col.data.len() {
39 let val = total_bytes_col.data.as_string(i).parse::<u64>().unwrap_or(0);
40 values.push(val);
41 }
42 println!("ASC Results: {:?}", values);
43 println!("First value (should be smallest): {}", values[0]);
44 println!("Last value (should be largest): {}\n", values[values.len() - 1]);
45 }
46 }
47
48 // Test DESC
49 println!("=== TEST 2: DESC (should show largest first) ===");
50 println!("Query:");
51 println!("from system.table_storage_stats");
52 println!("sort total_bytes desc\n");
53
54 let query = "from system.table_storage_stats\nsort total_bytes desc";
55 let result = session.query(query, None)?;
56
57 println!("Query executed: {} frames returned\n", result.frames.len());
58
59 // Print the results
60 if let Some(frame) = result.frames.first() {
61 println!("Frame output:");
62 println!("{}\n", frame);
63
64 // Also analyze the data
65 if let Some(total_bytes_col) = frame.columns.iter().find(|c| c.name == "total_bytes") {
66 println!("=== Analyzing total_bytes column ===");
67 let mut values: Vec<u64> = Vec::new();
68 for i in 0..total_bytes_col.data.len() {
69 let val = total_bytes_col.data.as_string(i).parse::<u64>().unwrap_or(0);
70 values.push(val);
71 println!("Row {}: {} bytes", i, val);
72 }
73
74 println!("\nValues in order: {:?}", values);
75
76 // Check if sorted correctly (DESC = largest first)
77 let mut is_desc_sorted = true;
78 for i in 1..values.len() {
79 if values[i - 1] < values[i] {
80 is_desc_sorted = false;
81 println!(
82 "\n⚠️ SORTING ERROR at position {}: {} < {}",
83 i,
84 values[i - 1],
85 values[i]
86 );
87 }
88 }
89
90 if is_desc_sorted {
91 println!("\n✅ Correctly sorted in DESCENDING order (largest first)");
92 } else {
93 println!("\n❌ NOT correctly sorted in descending order!");
94 println!(" Expected: Largest value first, decreasing values");
95 println!(" Got: {:?}", values);
96 }
97 }
98 }
99
100 Ok(())
101}pub fn get_value(&self, index: usize) -> Value
Trait Implementations§
Source§impl Clone for FrameColumn
impl Clone for FrameColumn
Source§fn clone(&self) -> FrameColumn
fn clone(&self) -> FrameColumn
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FrameColumn
impl Debug for FrameColumn
Source§impl Deref for FrameColumn
impl Deref for FrameColumn
Source§type Target = FrameColumnData
type Target = FrameColumnData
The resulting type after dereferencing.
Source§impl<'de> Deserialize<'de> for FrameColumn
impl<'de> Deserialize<'de> for FrameColumn
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<FrameColumn, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<FrameColumn, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for FrameColumn
impl PartialEq for FrameColumn
Source§impl Serialize for FrameColumn
impl Serialize for FrameColumn
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for FrameColumn
Auto Trait Implementations§
impl Freeze for FrameColumn
impl RefUnwindSafe for FrameColumn
impl Send for FrameColumn
impl Sync for FrameColumn
impl Unpin for FrameColumn
impl UnwindSafe for FrameColumn
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more