diff --git a/plugin/trino-prometheus/pom.xml b/plugin/trino-prometheus/pom.xml index 7a44709522d4..40da1e779a1e 100644 --- a/plugin/trino-prometheus/pom.xml +++ b/plugin/trino-prometheus/pom.xml @@ -62,6 +62,11 @@ jackson-datatype-jsr310 + + com.google.code.findbugs + jsr305 + + com.google.guava guava diff --git a/plugin/trino-prometheus/src/main/java/io/trino/plugin/prometheus/PrometheusStandardizedRow.java b/plugin/trino-prometheus/src/main/java/io/trino/plugin/prometheus/PrometheusStandardizedRow.java index 0ad038807453..2a9bfeb62981 100644 --- a/plugin/trino-prometheus/src/main/java/io/trino/plugin/prometheus/PrometheusStandardizedRow.java +++ b/plugin/trino-prometheus/src/main/java/io/trino/plugin/prometheus/PrometheusStandardizedRow.java @@ -15,6 +15,8 @@ import io.trino.spi.block.Block; +import javax.annotation.Nullable; + import java.time.Instant; import static java.util.Objects.requireNonNull; @@ -25,13 +27,14 @@ public class PrometheusStandardizedRow private final Instant timestamp; private final Double value; - public PrometheusStandardizedRow(Block labels, Instant timestamp, Double value) + public PrometheusStandardizedRow(@Nullable Block labels, Instant timestamp, Double value) { - this.labels = requireNonNull(labels, "labels is null"); + this.labels = labels; this.timestamp = requireNonNull(timestamp, "timestamp is null"); this.value = requireNonNull(value, "value is null"); } + @Nullable public Block getLabels() { return labels; diff --git a/plugin/trino-prometheus/src/test/java/io/trino/plugin/prometheus/TestPrometheusIntegrationMetrics.java b/plugin/trino-prometheus/src/test/java/io/trino/plugin/prometheus/TestPrometheusIntegrationMetrics.java index bc406e4a0db6..9652f99e27ed 100644 --- a/plugin/trino-prometheus/src/test/java/io/trino/plugin/prometheus/TestPrometheusIntegrationMetrics.java +++ b/plugin/trino-prometheus/src/test/java/io/trino/plugin/prometheus/TestPrometheusIntegrationMetrics.java @@ -71,4 +71,11 @@ public void testDescribeTable() "('timestamp', 'timestamp(3) with time zone', '', '')," + "('value', 'double', '', '')"); } + + @Test + public void testSelectWithoutLabels() + { + assertQuerySucceeds("SELECT timestamp, value FROM prometheus.default.up"); + assertQuery("SELECT value FROM prometheus.default.up LIMIT 1", "VALUES ('1.0')"); + } }