Skip to content

Commit 3c7f8a9

Browse files
committed
replace isSnapshot with capability check
1 parent db44c9d commit 3c7f8a9

File tree

11 files changed

+35
-37
lines changed

11 files changed

+35
-37
lines changed

x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/TSDBRestEsqlIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
1010

1111
import org.apache.http.util.EntityUtils;
12-
import org.elasticsearch.Build;
1312
import org.elasticsearch.client.Request;
1413
import org.elasticsearch.client.Response;
1514
import org.elasticsearch.common.settings.Settings;
@@ -18,6 +17,7 @@
1817
import org.elasticsearch.test.rest.ESRestTestCase;
1918
import org.elasticsearch.xpack.esql.AssertWarnings;
2019
import org.elasticsearch.xpack.esql.CsvTestsDataLoader;
20+
import org.elasticsearch.xpack.esql.action.EsqlCapabilities;
2121
import org.elasticsearch.xpack.esql.qa.rest.ProfileLogger;
2222
import org.elasticsearch.xpack.esql.qa.rest.RestEsqlTestCase;
2323
import org.junit.ClassRule;
@@ -48,7 +48,7 @@ protected String getTestRestCluster() {
4848
}
4949

5050
public void testTimeSeriesQuerying() throws IOException {
51-
assumeTrue("time series querying relies on query pragma", Build.current().isSnapshot());
51+
assumeTrue("time series querying relies on query pragma", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
5252
var settings = Settings.builder()
5353
.loadFromStream("tsdb-settings.json", TSDBRestEsqlIT.class.getResourceAsStream("/tsdb-settings.json"), false)
5454
.build();

x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/TelemetryIT.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,18 +149,20 @@ public static Iterable<Object[]> parameters() {
149149
new Object[] {
150150
new Test(
151151
"TS time_series_idx | LIMIT 10",
152-
Build.current().isSnapshot() ? Map.ofEntries(Map.entry("TS", 1), Map.entry("LIMIT", 1)) : Collections.emptyMap(),
152+
EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled()
153+
? Map.ofEntries(Map.entry("TS", 1), Map.entry("LIMIT", 1))
154+
: Collections.emptyMap(),
153155
Map.ofEntries(),
154-
Build.current().isSnapshot()
156+
EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled()
155157
) },
156158
new Object[] {
157159
new Test(
158160
"TS time_series_idx | STATS max(id) BY host | LIMIT 10",
159-
Build.current().isSnapshot()
161+
EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled()
160162
? Map.ofEntries(Map.entry("TS", 1), Map.entry("STATS", 1), Map.entry("LIMIT", 1))
161163
: Collections.emptyMap(),
162-
Build.current().isSnapshot() ? Map.ofEntries(Map.entry("MAX", 1)) : Collections.emptyMap(),
163-
Build.current().isSnapshot()
164+
EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled() ? Map.ofEntries(Map.entry("MAX", 1)) : Collections.emptyMap(),
165+
EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled()
164166
) },
165167
new Object[] {
166168
new Test(

x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/TimeSeriesIT.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
package org.elasticsearch.xpack.esql.action;
99

10-
import org.elasticsearch.Build;
1110
import org.elasticsearch.common.Randomness;
1211
import org.elasticsearch.common.settings.Settings;
1312
import org.elasticsearch.common.unit.ByteSizeValue;
@@ -38,7 +37,7 @@ public class TimeSeriesIT extends AbstractEsqlIntegTestCase {
3837

3938
@Override
4039
public EsqlQueryResponse run(EsqlQueryRequest request) {
41-
assumeTrue("time series available in snapshot builds only", Build.current().isSnapshot());
40+
assumeTrue("time series available in snapshot builds only", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
4241
return super.run(request);
4342
}
4443

x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/TimeSeriesRateIT.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
package org.elasticsearch.xpack.esql.action;
99

10-
import org.elasticsearch.Build;
1110
import org.elasticsearch.common.Randomness;
1211
import org.elasticsearch.common.settings.Settings;
1312
import org.elasticsearch.xpack.esql.EsqlTestUtils;
@@ -28,7 +27,7 @@ public class TimeSeriesRateIT extends AbstractEsqlIntegTestCase {
2827

2928
@Override
3029
public EsqlQueryResponse run(EsqlQueryRequest request) {
31-
assumeTrue("time series available in snapshot builds only", Build.current().isSnapshot());
30+
assumeTrue("time series available in snapshot builds only", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
3231
return super.run(request);
3332
}
3433

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/LogicalPlanBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ private static Tuple<Mode, String> parsePolicyName(EsqlBaseParser.EnrichPolicyNa
551551

552552
@Override
553553
public LogicalPlan visitTimeSeriesCommand(EsqlBaseParser.TimeSeriesCommandContext ctx) {
554-
if (Build.current().isSnapshot() == false) {
554+
if (EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled() == false) {
555555
throw new IllegalArgumentException("TS command currently requires a snapshot build");
556556
}
557557
return visitRelation(source(ctx), IndexMode.TIME_SERIES, ctx.indexPatternAndMetadataFields());

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/analysis/AnalyzerTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2458,7 +2458,7 @@ public void testNoDenseVectorFailsForMagnitude() {
24582458
}
24592459

24602460
public void testRateRequiresCounterTypes() {
2461-
assumeTrue("rate requires snapshot builds", Build.current().isSnapshot());
2461+
assumeTrue("rate requires snapshot builds", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
24622462
Analyzer analyzer = analyzer(tsdbIndexResolution());
24632463
var query = "TS test | STATS avg(rate(network.connections))";
24642464
VerificationException error = expectThrows(VerificationException.class, () -> analyze(query, analyzer));

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/analysis/VerifierTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1139,7 +1139,7 @@ public void testAggsResolutionWithUnresolvedGroupings() {
11391139
}
11401140

11411141
public void testNotAllowRateOutsideMetrics() {
1142-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
1142+
assumeTrue("requires metric command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
11431143
assertThat(
11441144
error("FROM tests | STATS avg(rate(network.bytes_in))", tsdb),
11451145
equalTo("1:24: time_series aggregate[rate(network.bytes_in)] can only be used with the TS command")
@@ -1159,7 +1159,7 @@ public void testNotAllowRateOutsideMetrics() {
11591159
}
11601160

11611161
public void testRateNotEnclosedInAggregate() {
1162-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
1162+
assumeTrue("requires metric command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
11631163
assertThat(
11641164
error("TS tests | STATS rate(network.bytes_in)", tsdb),
11651165
equalTo("1:18: the rate aggregate [rate(network.bytes_in)] can only be used with the TS command and inside another aggregate")

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/optimizer/LocalPhysicalPlanOptimizerTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
1111

1212
import org.apache.lucene.search.IndexSearcher;
13-
import org.elasticsearch.Build;
1413
import org.elasticsearch.common.network.NetworkAddress;
1514
import org.elasticsearch.common.settings.Settings;
1615
import org.elasticsearch.common.unit.Fuzziness;
@@ -2145,7 +2144,7 @@ public void testMultipleKnnQueriesInPrefilters() {
21452144
}
21462145

21472146
public void testParallelizeTimeSeriesPlan() {
2148-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
2147+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
21492148
var query = "TS k8s | STATS max(rate(network.total_bytes_in)) BY bucket(@timestamp, 1h)";
21502149
var optimizer = new TestPlannerOptimizer(config, timeSeriesAnalyzer);
21512150
PhysicalPlan plan = optimizer.plan(query);

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizerTests.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7289,7 +7289,7 @@ public void testMultipleLookupShadowing() {
72897289
}
72907290

72917291
public void testTranslateMetricsWithoutGrouping() {
7292-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7292+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
72937293
var query = "TS k8s | STATS max(rate(network.total_bytes_in))";
72947294
var plan = logicalOptimizer.optimize(metricsAnalyzer.analyze(parser.createStatement(query, EsqlTestUtils.TEST_CFG)));
72957295
Limit limit = as(plan, Limit.class);
@@ -7310,7 +7310,7 @@ public void testTranslateMetricsWithoutGrouping() {
73107310
}
73117311

73127312
public void testTranslateMixedAggsWithoutGrouping() {
7313-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7313+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
73147314
var query = "TS k8s | STATS max(rate(network.total_bytes_in)), max(network.cost)";
73157315
var plan = logicalOptimizer.optimize(metricsAnalyzer.analyze(parser.createStatement(query, EsqlTestUtils.TEST_CFG)));
73167316
Limit limit = as(plan, Limit.class);
@@ -7335,7 +7335,7 @@ public void testTranslateMixedAggsWithoutGrouping() {
73357335
}
73367336

73377337
public void testTranslateMixedAggsWithMathWithoutGrouping() {
7338-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7338+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
73397339
var query = "TS k8s | STATS max(rate(network.total_bytes_in)), max(network.cost + 0.2) * 1.1";
73407340
var plan = logicalOptimizer.optimize(metricsAnalyzer.analyze(parser.createStatement(query, EsqlTestUtils.TEST_CFG)));
73417341
Project project = as(plan, Project.class);
@@ -7373,7 +7373,7 @@ public void testTranslateMixedAggsWithMathWithoutGrouping() {
73737373
}
73747374

73757375
public void testTranslateMetricsGroupedByOneDimension() {
7376-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7376+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
73777377
var query = "TS k8s | STATS sum(rate(network.total_bytes_in)) BY cluster | SORT cluster | LIMIT 10";
73787378
var plan = logicalOptimizer.optimize(metricsAnalyzer.analyze(parser.createStatement(query, EsqlTestUtils.TEST_CFG)));
73797379
TopN topN = as(plan, TopN.class);
@@ -7398,7 +7398,7 @@ public void testTranslateMetricsGroupedByOneDimension() {
73987398
}
73997399

74007400
public void testTranslateMetricsGroupedByTwoDimension() {
7401-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7401+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
74027402
var query = "TS k8s | STATS avg(rate(network.total_bytes_in)) BY cluster, pod";
74037403
var plan = logicalOptimizer.optimize(metricsAnalyzer.analyze(parser.createStatement(query, EsqlTestUtils.TEST_CFG)));
74047404
Project project = as(plan, Project.class);
@@ -7438,7 +7438,7 @@ public void testTranslateMetricsGroupedByTwoDimension() {
74387438
}
74397439

74407440
public void testTranslateMetricsGroupedByTimeBucket() {
7441-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7441+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
74427442
var query = "TS k8s | STATS sum(rate(network.total_bytes_in)) BY bucket(@timestamp, 1h)";
74437443
var plan = logicalOptimizer.optimize(metricsAnalyzer.analyze(parser.createStatement(query, EsqlTestUtils.TEST_CFG)));
74447444
Limit limit = as(plan, Limit.class);
@@ -7467,7 +7467,7 @@ public void testTranslateMetricsGroupedByTimeBucket() {
74677467
}
74687468

74697469
public void testTranslateMetricsGroupedByTimeBucketAndDimensions() {
7470-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7470+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
74717471
var query = """
74727472
TS k8s
74737473
| STATS avg(rate(network.total_bytes_in)) BY pod, bucket(@timestamp, 5 minute), cluster
@@ -7509,7 +7509,7 @@ public void testTranslateMetricsGroupedByTimeBucketAndDimensions() {
75097509
}
75107510

75117511
public void testTranslateSumOfTwoRates() {
7512-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7512+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
75137513
var query = """
75147514
TS k8s
75157515
| STATS max(rate(network.total_bytes_in) + rate(network.total_bytes_out)) BY pod, bucket(@timestamp, 5 minute), cluster
@@ -7530,7 +7530,7 @@ public void testTranslateSumOfTwoRates() {
75307530
}
75317531

75327532
public void testTranslateMixedAggsGroupedByTimeBucketAndDimensions() {
7533-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7533+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
75347534
var query = """
75357535
TS k8s
75367536
| STATS avg(rate(network.total_bytes_in)), avg(network.cost) BY bucket(@timestamp, 5 minute), cluster
@@ -7582,7 +7582,7 @@ public void testTranslateMixedAggsGroupedByTimeBucketAndDimensions() {
75827582
}
75837583

75847584
public void testAdjustMetricsRateBeforeFinalAgg() {
7585-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7585+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
75867586
var query = """
75877587
TS k8s
75887588
| STATS avg(round(1.05 * rate(network.total_bytes_in))) BY bucket(@timestamp, 1 minute), cluster
@@ -7640,7 +7640,7 @@ public void testAdjustMetricsRateBeforeFinalAgg() {
76407640
}
76417641

76427642
public void testTranslateMaxOverTime() {
7643-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7643+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
76447644
var query = "TS k8s | STATS sum(max_over_time(network.bytes_in)) BY bucket(@timestamp, 1h)";
76457645
var plan = logicalOptimizer.optimize(metricsAnalyzer.analyze(parser.createStatement(query, EsqlTestUtils.TEST_CFG)));
76467646
Limit limit = as(plan, Limit.class);
@@ -7669,7 +7669,7 @@ public void testTranslateMaxOverTime() {
76697669
}
76707670

76717671
public void testTranslateAvgOverTime() {
7672-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7672+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
76737673
var query = "TS k8s | STATS sum(avg_over_time(network.bytes_in)) BY bucket(@timestamp, 1h)";
76747674
var plan = logicalOptimizer.optimize(metricsAnalyzer.analyze(parser.createStatement(query, EsqlTestUtils.TEST_CFG)));
76757675
Limit limit = as(plan, Limit.class);
@@ -7702,7 +7702,7 @@ public void testTranslateAvgOverTime() {
77027702
}
77037703

77047704
public void testMetricsWithoutRate() {
7705-
assumeTrue("requires snapshot builds", Build.current().isSnapshot());
7705+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
77067706
List<String> queries = List.of("""
77077707
TS k8s | STATS count(to_long(network.total_bytes_in)) BY bucket(@timestamp, 1 minute)
77087708
| LIMIT 10

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/parser/StatementParserTests.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2378,7 +2378,7 @@ public void testInlineConvertUnsupportedType() {
23782378
}
23792379

23802380
public void testMetricsWithoutStats() {
2381-
assumeTrue("requires snapshot build", Build.current().isSnapshot());
2381+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
23822382

23832383
assertStatement("TS foo", unresolvedTSRelation("foo"));
23842384
assertStatement("TS foo,bar", unresolvedTSRelation("foo,bar"));
@@ -2388,7 +2388,7 @@ public void testMetricsWithoutStats() {
23882388
}
23892389

23902390
public void testMetricsIdentifiers() {
2391-
assumeTrue("requires snapshot build", Build.current().isSnapshot());
2391+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
23922392
Map<String, String> patterns = Map.ofEntries(
23932393
Map.entry("ts foo,test-*", "foo,test-*"),
23942394
Map.entry("ts 123-test@foo_bar+baz1", "123-test@foo_bar+baz1"),
@@ -2401,7 +2401,7 @@ public void testMetricsIdentifiers() {
24012401
}
24022402

24032403
public void testSimpleMetricsWithStats() {
2404-
assumeTrue("requires snapshot build", Build.current().isSnapshot());
2404+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
24052405
assertStatement(
24062406
"TS foo | STATS load=avg(cpu) BY ts",
24072407
new TimeSeriesAggregate(
@@ -2536,7 +2536,7 @@ private LogicalPlan unresolvedTSRelation(String index) {
25362536
}
25372537

25382538
public void testMetricWithGroupKeyAsAgg() {
2539-
assumeTrue("requires snapshot build", Build.current().isSnapshot());
2539+
assumeTrue("requires metrics command", EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled());
25402540
var queries = List.of("TS foo | STATS a BY a");
25412541
for (String query : queries) {
25422542
expectVerificationError(query, "grouping key [a] already specified in the STATS BY clause");
@@ -3153,7 +3153,7 @@ public void testValidJoinPattern() {
31533153
}
31543154

31553155
public void testInvalidFromPatterns() {
3156-
var sourceCommands = Build.current().isSnapshot() ? new String[] { "FROM", "TS" } : new String[] { "FROM" };
3156+
var sourceCommands = EsqlCapabilities.Cap.METRICS_COMMAND.isEnabled() ? new String[] { "FROM", "TS" } : new String[] { "FROM" };
31573157
var indexIsBlank = "Blank index specified in index pattern";
31583158
var remoteIsEmpty = "remote part is empty";
31593159
var invalidDoubleColonUsage = "invalid usage of :: separator";

0 commit comments

Comments
 (0)