Merge pull request #2902 from influxdata/ntran/table_names
feat: make tag_keys work with deletepull/24376/head
commit
1bc6514dfa
|
@ -277,6 +277,10 @@ impl InfluxRpcPlanner {
|
|||
|
||||
let mut known_columns = BTreeSet::new();
|
||||
for chunk in database.chunks(normalizer.unnormalized()) {
|
||||
let mut do_full_plan = false;
|
||||
if chunk.has_delete_predicates() {
|
||||
do_full_plan = true;
|
||||
}
|
||||
let table_name = chunk.table_name();
|
||||
let predicate = normalizer.normalized(table_name);
|
||||
|
||||
|
@ -302,36 +306,43 @@ impl InfluxRpcPlanner {
|
|||
|
||||
let selection = Selection::Some(&column_names);
|
||||
|
||||
// filter the columns further from the predicate
|
||||
let maybe_names = chunk
|
||||
.column_names(&predicate, selection)
|
||||
.map_err(|e| Box::new(e) as _)
|
||||
.context(FindingColumnNames)?;
|
||||
if !do_full_plan {
|
||||
// filter the columns further from the predicate
|
||||
let maybe_names = chunk
|
||||
.column_names(&predicate, selection)
|
||||
.map_err(|e| Box::new(e) as _)
|
||||
.context(FindingColumnNames)?;
|
||||
|
||||
match maybe_names {
|
||||
Some(mut names) => {
|
||||
debug!(
|
||||
table_name,
|
||||
names=?names,
|
||||
chunk_id=%chunk.id().get(),
|
||||
"column names found from metadata",
|
||||
);
|
||||
known_columns.append(&mut names);
|
||||
}
|
||||
None => {
|
||||
debug!(
|
||||
table_name,
|
||||
chunk_id=%chunk.id().get(),
|
||||
"column names need full plan"
|
||||
);
|
||||
// can't get columns only from metadata, need
|
||||
// a general purpose plan
|
||||
need_full_plans
|
||||
.entry(table_name.to_string())
|
||||
.or_insert_with(Vec::new)
|
||||
.push(Arc::clone(&chunk));
|
||||
match maybe_names {
|
||||
Some(mut names) => {
|
||||
debug!(
|
||||
table_name,
|
||||
names=?names,
|
||||
chunk_id=%chunk.id().get(),
|
||||
"column names found from metadata",
|
||||
);
|
||||
known_columns.append(&mut names);
|
||||
}
|
||||
None => {
|
||||
do_full_plan = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// can't get columns only from metadata, need
|
||||
// a general purpose plan
|
||||
if do_full_plan {
|
||||
debug!(
|
||||
table_name,
|
||||
chunk_id=%chunk.id().get(),
|
||||
"column names need full plan"
|
||||
);
|
||||
|
||||
need_full_plans
|
||||
.entry(table_name.to_string())
|
||||
.or_insert_with(Vec::new)
|
||||
.push(Arc::clone(&chunk));
|
||||
}
|
||||
}
|
||||
|
||||
let mut builder = StringSetPlanBuilder::new();
|
||||
|
|
|
@ -144,8 +144,6 @@ async fn list_tag_name_end_to_end() {
|
|||
run_tag_keys_test_case(EndToEndTest {}, predicate, expected_tag_keys).await;
|
||||
}
|
||||
|
||||
// https://github.com/influxdata/influxdb_iox/issues/2863
|
||||
#[ignore]
|
||||
#[tokio::test]
|
||||
async fn list_tag_name_end_to_end_with_delete() {
|
||||
let predicate = PredicateBuilder::default()
|
||||
|
|
Loading…
Reference in New Issue