This is an automated email from the ASF dual-hosted git repository.
vavrtom pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git
The following commit(s) were added to refs/heads/main by this push:
new 40c2d096ac QPID-8659: [Broker-J] Unit tests in QuerySettingsTest fail
under some circumstances (#232)
40c2d096ac is described below
commit 40c2d096acb74b02b269a287ac4e4ae48d57e976
Author: Daniil Kirilyuk <[email protected]>
AuthorDate: Mon Jan 22 09:26:42 2024 +0100
QPID-8659: [Broker-J] Unit tests in QuerySettingsTest fail under some
circumstances (#232)
---
.../query/engine/evaluator/QueryEvaluator.java | 11 +++-
.../engine/parsing/query/QuerySettingsTest.java | 75 ++++++++++++++--------
2 files changed, 59 insertions(+), 27 deletions(-)
diff --git
a/broker-plugins/query-engine/src/main/java/org/apache/qpid/server/query/engine/evaluator/QueryEvaluator.java
b/broker-plugins/query-engine/src/main/java/org/apache/qpid/server/query/engine/evaluator/QueryEvaluator.java
index c81e11e9a0..1d1f9a7b13 100644
---
a/broker-plugins/query-engine/src/main/java/org/apache/qpid/server/query/engine/evaluator/QueryEvaluator.java
+++
b/broker-plugins/query-engine/src/main/java/org/apache/qpid/server/query/engine/evaluator/QueryEvaluator.java
@@ -137,7 +137,16 @@ public class QueryEvaluator
{
throw QueryValidationException.of(Errors.VALIDATION.QUERY_EMPTY);
}
- return execute(sql, new QuerySettings());
+ final QuerySettings querySettings = new QuerySettings();
+ querySettings.setDatePattern(_defaultQuerySettings.getDatePattern());
+
querySettings.setDateTimeFormat(_defaultQuerySettings.getDateTimeFormat());
+
querySettings.setDecimalDigits(_defaultQuerySettings.getDecimalDigits());
+
querySettings.setMaxBigDecimalValue(_defaultQuerySettings.getMaxBigDecimalValue());
+
querySettings.setMaxQueryCacheSize(_defaultQuerySettings.getMaxQueryCacheSize());
+
querySettings.setMaxQueryDepth(_defaultQuerySettings.getMaxQueryDepth());
+ querySettings.setRoundingMode(_defaultQuerySettings.getRoundingMode());
+ querySettings.setZoneId(_defaultQuerySettings.getZoneId());
+ return execute(sql, querySettings);
}
/**
diff --git
a/broker-plugins/query-engine/src/test/java/org/apache/qpid/server/query/engine/parsing/query/QuerySettingsTest.java
b/broker-plugins/query-engine/src/test/java/org/apache/qpid/server/query/engine/parsing/query/QuerySettingsTest.java
index a8105f87d0..f85bd8b102 100644
---
a/broker-plugins/query-engine/src/test/java/org/apache/qpid/server/query/engine/parsing/query/QuerySettingsTest.java
+++
b/broker-plugins/query-engine/src/test/java/org/apache/qpid/server/query/engine/parsing/query/QuerySettingsTest.java
@@ -243,39 +243,63 @@ public class QuerySettingsTest
@Test()
public void customizeZoneIdViaQuerySettings()
{
- DateTimeFormatter formatter = new
DateTimeFormatterBuilder().appendPattern(DefaultQuerySettings.DATE_TIME_PATTERN)
- .appendFraction(ChronoField.NANO_OF_SECOND, 0, 6, true)
- .toFormatter().withZone(ZoneId.of(DefaultQuerySettings.ZONE_ID));
+ final List<ZoneId> zoneIds = List.of(ZoneId.of("UTC"),
ZoneId.of("GMT+1"), ZoneId.of("GMT+2"), ZoneId.of("GMT+3"),
+ ZoneId.of("GMT+4"), ZoneId.of("GMT+5"), ZoneId.of("GMT+6"),
ZoneId.of("GMT+7"), ZoneId.of("GMT+8"),
+ ZoneId.of("GMT+9"), ZoneId.of("GMT+10"), ZoneId.of("GMT+11"),
ZoneId.of("GMT+12"));
- QueryEvaluator queryEvaluator = new QueryEvaluator(_broker);
- QuerySettings querySettings = new
QuerySettingsBuilder().zoneId(ZoneId.of(DefaultQuerySettings.ZONE_ID)).build();
+ zoneIds.forEach(zoneId ->
+ {
+ DateTimeFormatter formatter =
+ new
DateTimeFormatterBuilder().appendPattern(DefaultQuerySettings.DATE_TIME_PATTERN)
+ .appendFraction(ChronoField.NANO_OF_SECOND, 0, 6,
true)
+ .toFormatter().withZone(zoneId);
- String query = "select current_timestamp() as result";
- List<Map<String, Object>> result = queryEvaluator.execute(query,
querySettings).getResults();
- assertEquals(1, result.size());
- formatter.parse((String)result.get(0).get("result"));
+ QueryEvaluator queryEvaluator = new QueryEvaluator(_broker);
+ QuerySettings querySettings = new
QuerySettingsBuilder().zoneId(zoneId).build();
+
+ String query = "select current_timestamp() as result";
+ List<Map<String, Object>> result = queryEvaluator.execute(query,
querySettings).getResults();
+
+ Instant expected = Instant.now();
+ Instant actual = LocalDateTime.parse((String)
result.get(0).get("result"), formatter)
+ .atZone(zoneId)
+ .toInstant();
+
+ assertEquals(1, result.size());
+ assertTrue(expected.toEpochMilli() - actual.toEpochMilli() < 1000);
+ });
}
@Test()
public void customizeZoneIdViaQueryEngine()
{
- QueryEngine queryEngine = new QueryEngine(_broker);
- queryEngine.setZoneId(ZoneId.of("GMT+2"));
- queryEngine.setMaxQueryDepth(DefaultQuerySettings.MAX_QUERY_DEPTH);
- QueryEvaluator queryEvaluator = queryEngine.createEvaluator();
- QuerySettings querySettings = new QuerySettings();
-
- Instant expected =
LocalDateTime.now().atZone(ZoneId.of("GMT+2")).toInstant();
- DateTimeFormatter formatter = new
DateTimeFormatterBuilder().appendPattern(DefaultQuerySettings.DATE_TIME_PATTERN)
- .appendFraction(ChronoField.NANO_OF_SECOND, 0, 6, true)
-
.toFormatter().withZone(ZoneId.of("GMT+2")).withResolverStyle(ResolverStyle.STRICT);
+ final List<ZoneId> zoneIds = List.of(ZoneId.of("UTC"),
ZoneId.of("GMT+1"), ZoneId.of("GMT+2"), ZoneId.of("GMT+3"),
+ ZoneId.of("GMT+4"), ZoneId.of("GMT+5"), ZoneId.of("GMT+6"),
ZoneId.of("GMT+7"), ZoneId.of("GMT+8"),
+ ZoneId.of("GMT+9"), ZoneId.of("GMT+10"), ZoneId.of("GMT+11"),
ZoneId.of("GMT+12"));
- String query = "select current_timestamp() as result";
- List<Map<String,Object>> result = queryEvaluator.execute(query,
querySettings).getResults();
- Instant actual =
LocalDateTime.parse((String)result.get(0).get("result"),
formatter).atZone(ZoneId.of("GMT+2")).toInstant();
-
- assertEquals(1, result.size());
- assertTrue(actual.toEpochMilli() - expected.toEpochMilli() < 1000);
+ zoneIds.forEach(zoneId ->
+ {
+ QueryEngine queryEngine = new QueryEngine(_broker);
+ queryEngine.setZoneId(zoneId);
+ queryEngine.setMaxQueryDepth(DefaultQuerySettings.MAX_QUERY_DEPTH);
+ QueryEvaluator queryEvaluator = queryEngine.createEvaluator();
+
+ Instant expected = Instant.now();
+ DateTimeFormatter formatter =
+ new
DateTimeFormatterBuilder().appendPattern(DefaultQuerySettings.DATE_TIME_PATTERN)
+ .appendFraction(ChronoField.NANO_OF_SECOND, 0, 6,
true)
+ .toFormatter()
+ .withResolverStyle(ResolverStyle.STRICT);
+
+ String query = "select current_timestamp() as result";
+ List<Map<String, Object>> result =
queryEvaluator.execute(query).getResults();
+ Instant actual = LocalDateTime.parse((String)
result.get(0).get("result"), formatter)
+ .atZone(zoneId)
+ .toInstant();
+
+ assertEquals(1, result.size());
+ assertTrue(expected.toEpochMilli() - actual.toEpochMilli() < 1000);
+ });
}
@Test()
@@ -307,7 +331,6 @@ public class QuerySettingsTest
@Test()
public void customizeMaxQueryCacheSize()
{
-
QueryEngine queryEngine = new QueryEngine(_broker);
queryEngine.setMaxQueryCacheSize(10);
queryEngine.setMaxQueryDepth(DefaultQuerySettings.MAX_QUERY_DEPTH);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]