Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: influxdata/influxdb
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 081166a30732958d9de2281b6c3bca61b941caa2
Choose a base ref
..
head repository: influxdata/influxdb
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 7e610e7a9f57e07494bbea4787f2c62077c2b8b1
Choose a head ref
Showing with 13 additions and 4 deletions.
  1. +13 −4 influxdb3_server/src/http/v1.rs
17 changes: 13 additions & 4 deletions influxdb3_server/src/http/v1.rs
Original file line number Diff line number Diff line change
@@ -393,6 +393,15 @@ impl ChunkBuffer {
}
}

/// This function returns true if the number of rows in the current series exceeds the chunk size
fn is_partial_series(&self) -> bool {
if let (Some(size), Some(m)) = (self.size, self.series.back()) {
m.1.len() > size
} else {
false
}
}

/// The [`ChunkBuffer`] is operating in chunked mode, and can flush a chunk
fn can_flush(&self) -> bool {
if let (Some(size), Some(m)) = (self.size, self.series.back()) {
@@ -550,22 +559,22 @@ impl QueryResponseStream {
fn flush_one(&mut self) -> QueryResponse {
let columns = self.columns();

let partial = self.buffer.can_flush().then_some(true);

let partial_series = self.buffer.is_partial_series().then_some(true);
let partial_results = self.buffer.can_flush().then_some(true);
// this unwrap is okay because we only ever call flush_one
// after calling can_flush on the buffer:
let (name, values) = self.buffer.flush_one().unwrap();
let series = vec![Series {
name,
columns,
values,
partial,
partial: partial_series,
}];
QueryResponse {
results: vec![StatementResponse {
statement_id: self.statement_id,
series,
partial,
partial: partial_results,
}],
format: self.format,
}