diff --git a/src/main/java/org/caosdb/server/query/POV.java b/src/main/java/org/caosdb/server/query/POV.java index 43b3ca23e238a7a644840cf3a7605cf08962569d..1c04443f6357d75a86ae0787caa9e383579d7523 100644 --- a/src/main/java/org/caosdb/server/query/POV.java +++ b/src/main/java/org/caosdb/server/query/POV.java @@ -134,8 +134,8 @@ public class POV implements EntityFilterInterface { this.vDouble = (double) this.vInt; } else { try { + // Doubles are allowed without dots, for example when the integer overflows. final Pattern dp = Pattern.compile("^(-?[0-9]+(?:\\.)?(?:[0-9]+))\\s*([^-]*)$"); - // final Pattern dp = Pattern.compile("^(-?[0-9]+(?:\\.[0-9]+))\\s*([^-]*)$"); final Matcher m = dp.matcher(value); if (!m.matches()) { throw new NumberFormatException(); @@ -522,6 +522,21 @@ public class POV implements EntityFilterInterface { return "String"; } + /** Return the Int value, which may be null. */ + public Integer getVInt() { + return this.vInt; + } + + /** Return the Double value, which may be null. */ + public Double getVDouble() { + return this.vDouble; + } + + /** Return the Datetime value, which may be null. */ + public DateTimeInterface getVDatetime() { + return this.vDatetime; + } + public String getAggregate() { return this.aggregate; } diff --git a/src/test/java/org/caosdb/server/query/TestCQL.java b/src/test/java/org/caosdb/server/query/TestCQL.java index 9abed098ceacc4b9381b46ac79a407cb1d8a3ca3..a4b08515d9e048a218eded199a498414dc6aa027 100644 --- a/src/test/java/org/caosdb/server/query/TestCQL.java +++ b/src/test/java/org/caosdb/server/query/TestCQL.java @@ -6931,5 +6931,6 @@ public class TestCQL { System.out.println(pov.getValue()); assertEquals("10000000000", pov.getValue()); assertEquals("Double", pov.getValueType()); + assertEquals(1e10, pov.getVDouble().doubleValue(), 0.0); } }