From 2efa4adbf7f4358e4f476a1da8a889edeffac477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9E=97=E4=BC=9F?= Date: Thu, 11 Dec 2025 17:08:41 +0800 Subject: [PATCH 1/2] Print version & Add more sql time metrics --- src/session.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/session.rs b/src/session.rs index a98c1ff..fbfe4b9 100644 --- a/src/session.rs +++ b/src/session.rs @@ -32,12 +32,12 @@ impl Session { .map_err(|err| ArrowError::IpcError(err.to_string()))?; if is_repl { - println!("Welcome to Arrow CLI."); + println!("Welcome to Arrow CLI v{}.", env!("CARGO_PKG_VERSION")); println!("Connecting to {} as user {}.", endpoint.uri(), user); println!(); } let mut client = FlightSqlServiceClient::new(channel); - let _token = client.handshake(user, password).await.unwrap(); + let _token = client.handshake(user, password).await?; let prompt = format!("{} :) ", endpoint.uri().host().unwrap()); Ok(Self { @@ -124,7 +124,7 @@ impl Session { let start = Instant::now(); let mut stmt = self.client.prepare(query.to_string(), None).await?; let flight_info = stmt.execute().await?; - let sql_exec_duration = start.elapsed(); + let ticket_recv_duration = start.elapsed(); let mut batches: Vec = Vec::new(); let mut handles = Vec::with_capacity(flight_info.endpoint.len()); @@ -147,6 +147,7 @@ impl Session { for handle in handles { batches.extend(handle.await.unwrap()?); } + let data_recv_duration = start.elapsed(); if is_repl { let res = pretty_format_batches(batches.as_slice())?; @@ -156,9 +157,10 @@ impl Session { let rows: usize = batches.iter().map(|b| b.num_rows()).sum(); println!( - "{} rows in set ({:.3} sec)", + "{} rows in set (tickets received in {:.3} sec, data received in {:.3} sec)", rows, - sql_exec_duration.as_secs_f64() + ticket_recv_duration.as_secs_f64(), + data_recv_duration.as_secs_f64(), ); println!(); } else { From 83af2cd054318051e9fb033824354965cc8a50b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9E=97=E4=BC=9F?= Date: Thu, 11 Dec 2025 17:13:01 +0800 Subject: [PATCH 2/2] rename data to rows --- src/session.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/session.rs b/src/session.rs index fbfe4b9..e39a2d5 100644 --- a/src/session.rs +++ b/src/session.rs @@ -147,7 +147,7 @@ impl Session { for handle in handles { batches.extend(handle.await.unwrap()?); } - let data_recv_duration = start.elapsed(); + let rows_recv_duration = start.elapsed(); if is_repl { let res = pretty_format_batches(batches.as_slice())?; @@ -157,10 +157,10 @@ impl Session { let rows: usize = batches.iter().map(|b| b.num_rows()).sum(); println!( - "{} rows in set (tickets received in {:.3} sec, data received in {:.3} sec)", + "{} rows in set (tickets received in {:.3} sec, rows received in {:.3} sec)", rows, ticket_recv_duration.as_secs_f64(), - data_recv_duration.as_secs_f64(), + rows_recv_duration.as_secs_f64(), ); println!(); } else {