String itemName = criteria.getItemName();
if (itemName != null) {
String measurementName = calculateMeasurementName(itemName);
+ boolean needsToUseItemTagName = !measurementName.equals(itemName);
+
flux = flux.filter(measurement().equal(measurementName));
- if (!measurementName.equals(itemName)) {
- flux = flux.filter(tag("item").equal(itemName));
+ if (needsToUseItemTagName) {
+ flux = flux.filter(tag(TAG_ITEM_NAME).equal(itemName));
}
+
+ if (needsToUseItemTagName)
+ flux = flux.keep(new String[] { FIELD_MEASUREMENT_NAME, COLUMN_TIME_NAME_V2, COLUMN_VALUE_NAME_V2,
+ TAG_ITEM_NAME });
+ else
+ flux = flux.keep(new String[] { FIELD_MEASUREMENT_NAME, COLUMN_TIME_NAME_V2, COLUMN_VALUE_NAME_V2 });
}
if (criteria.getState() != null && criteria.getOperator() != null) {
assertThat(queryV1, equalTo("SELECT \"value\"::field,\"item\"::tag FROM origin.sampleItem;"));
String queryV2 = instanceV2.createQuery(criteria, RETENTION_POLICY);
- assertThat(queryV2, equalTo("from(bucket:\"origin\")\n\t" + "|> range(start:-100y)\n\t"
- + "|> filter(fn: (r) => r[\"_measurement\"] == \"sampleItem\")"));
+ assertThat(queryV2,
+ equalTo("from(bucket:\"origin\")\n\t" + "|> range(start:-100y)\n\t"
+ + "|> filter(fn: (r) => r[\"_measurement\"] == \"sampleItem\")\n\t"
+ + "|> keep(columns:[\"_measurement\", \"_time\", \"_value\"])"));
}
@Test
String queryV2 = instanceV2.createQuery(criteria, RETENTION_POLICY);
String expectedQueryV2 = String.format(
"from(bucket:\"origin\")\n\t" + "|> range(start:%s, stop:%s)\n\t"
- + "|> filter(fn: (r) => r[\"_measurement\"] == \"sampleItem\")",
+ + "|> filter(fn: (r) => r[\"_measurement\"] == \"sampleItem\")\n\t"
+ + "|> keep(columns:[\"_measurement\", \"_time\", \"_value\"])",
INFLUX2_DATE_FORMATTER.format(now.toInstant()), INFLUX2_DATE_FORMATTER.format(tomorrow.toInstant()));
assertThat(queryV2, equalTo(expectedQueryV2));
}
assertThat(queryV2,
equalTo("from(bucket:\"origin\")\n\t" + "|> range(start:-100y)\n\t"
+ "|> filter(fn: (r) => r[\"_measurement\"] == \"sampleItem\")\n\t"
+ + "|> keep(columns:[\"_measurement\", \"_time\", \"_value\"])\n\t"
+ "|> filter(fn: (r) => (r[\"_field\"] == \"value\" and r[\"_value\"] <= 90))"));
}
String queryV2 = instanceV2.createQuery(criteria, RETENTION_POLICY);
assertThat(queryV2, equalTo("from(bucket:\"origin\")\n\t" + "|> range(start:-100y)\n\t"
- + "|> filter(fn: (r) => r[\"_measurement\"] == \"sampleItem\")\n\t" + "|> limit(n:10, offset:20)"));
+ + "|> filter(fn: (r) => r[\"_measurement\"] == \"sampleItem\")\n\t"
+ + "|> keep(columns:[\"_measurement\", \"_time\", \"_value\"])\n\t" + "|> limit(n:10, offset:20)"));
}
@Test
assertThat(queryV2,
equalTo("from(bucket:\"origin\")\n\t" + "|> range(start:-100y)\n\t"
+ "|> filter(fn: (r) => r[\"_measurement\"] == \"sampleItem\")\n\t"
+ + "|> keep(columns:[\"_measurement\", \"_time\", \"_value\"])\n\t"
+ "|> sort(desc:false, columns:[\"_time\"])"));
}
assertThat(queryV2,
equalTo("from(bucket:\"origin\")\n\t" + "|> range(start:-100y)\n\t"
+ "|> filter(fn: (r) => r[\"_measurement\"] == \"measurementName\")\n\t"
- + "|> filter(fn: (r) => r[\"item\"] == \"sampleItem\")"));
+ + "|> filter(fn: (r) => r[\"item\"] == \"sampleItem\")\n\t"
+ + "|> keep(columns:[\"_measurement\", \"_time\", \"_value\", \"item\"])"));
when(metadataRegistry.get(metadataKey))
.thenReturn(new Metadata(metadataKey, "", Map.of("key1", "val1", "key2", "val2")));
assertThat(queryV1, equalTo("SELECT \"value\"::field,\"item\"::tag FROM origin.sampleItem;"));
queryV2 = instanceV2.createQuery(criteria, RETENTION_POLICY);
- assertThat(queryV2, equalTo("from(bucket:\"origin\")\n\t" + "|> range(start:-100y)\n\t"
- + "|> filter(fn: (r) => r[\"_measurement\"] == \"sampleItem\")"));
+ assertThat(queryV2,
+ equalTo("from(bucket:\"origin\")\n\t" + "|> range(start:-100y)\n\t"
+ + "|> filter(fn: (r) => r[\"_measurement\"] == \"sampleItem\")\n\t"
+ + "|> keep(columns:[\"_measurement\", \"_time\", \"_value\"])"));
}
}