This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git
The following commit(s) were added to refs/heads/develop by this push:
new 550c482f Add support for alter column datatype (#567)
550c482f is described below
commit 550c482fcaa26a4b8e6195a75876f289d0b8240f
Author: libo <[email protected]>
AuthorDate: Wed Aug 20 17:26:53 2025 +0800
Add support for alter column datatype (#567)
* Resolve may happen the problem that type conversion.
* Format code.
* Fix code.
* Fix code.
* Modify functions related type transfer in every operators class via
template
---
.../codegen/templates/FilterOperatorsTemplate.ftl | 100 ++++++++++++++-------
.../file/metadata/statistics/DoubleStatistics.java | 10 +++
.../file/metadata/statistics/FloatStatistics.java | 10 +++
.../metadata/statistics/IntegerStatistics.java | 10 +++
.../file/metadata/statistics/Statistics.java | 12 +++
.../tsfile/read/filter/factory/ValueFilterApi.java | 67 +++++++-------
6 files changed, 147 insertions(+), 62 deletions(-)
diff --git a/java/tsfile/src/main/codegen/templates/FilterOperatorsTemplate.ftl
b/java/tsfile/src/main/codegen/templates/FilterOperatorsTemplate.ftl
index 77d394d1..0fe475d1 100644
--- a/java/tsfile/src/main/codegen/templates/FilterOperatorsTemplate.ftl
+++ b/java/tsfile/src/main/codegen/templates/FilterOperatorsTemplate.ftl
@@ -137,7 +137,11 @@ public final class ${className} {
@Override
public boolean valueSatisfy(Object value){
+ <#if filter.dataType == "boolean" || filter.dataType == "Binary" ||
filter.javaBoxName == "String">
return valueSatisfy((${filter.dataType}) value);
+ <#else>
+ return valueSatisfy(((Number) value).${filter.dataType}Value());
+ </#if>
}
@Override
@@ -167,8 +171,8 @@ public final class ${className} {
if(statistics.isEmpty()){
return false;
}
- return constant < (${filter.javaBoxName}) statistics.getMinValue()
- || constant > (${filter.javaBoxName}) statistics.getMaxValue();
+ return constant < ((Number)
statistics.getMinValue()).${filter.dataType}Value()
+ || constant > ((Number)
statistics.getMaxValue()).${filter.dataType}Value();
</#if>
}
@@ -190,8 +194,8 @@ public final class ${className} {
if(statistics.isEmpty()){
return false;
}
- return constant == (${filter.javaBoxName}) statistics.getMinValue()
- && constant == (${filter.javaBoxName}) statistics.getMaxValue();
+ return constant == ((Number)
statistics.getMinValue()).${filter.dataType}Value()
+ && constant == ((Number)
statistics.getMaxValue()).${filter.dataType}Value();
</#if>
}
@@ -218,7 +222,11 @@ public final class ${className} {
@Override
public boolean valueSatisfy(Object value){
+ <#if filter.dataType == "boolean" || filter.dataType == "Binary" ||
filter.javaBoxName == "String">
return valueSatisfy((${filter.dataType}) value);
+ <#else>
+ return valueSatisfy(((Number) value).${filter.dataType}Value());
+ </#if>
}
@Override
@@ -249,8 +257,8 @@ public final class ${className} {
return false;
}
// drop if this is a column where min = max = value
- return constant == (${filter.javaBoxName}) statistics.getMinValue()
- && constant == (${filter.javaBoxName}) statistics.getMaxValue();
+ return constant == ((Number)
statistics.getMinValue()).${filter.dataType}Value()
+ && constant == ((Number)
statistics.getMaxValue()).${filter.dataType}Value();
</#if>
}
@@ -271,8 +279,8 @@ public final class ${className} {
if(statistics.isEmpty()){
return false;
}
- return constant < (${filter.javaBoxName}) statistics.getMinValue()
- || constant > (${filter.javaBoxName}) statistics.getMaxValue();
+ return constant < ((Number)
statistics.getMinValue()).${filter.dataType}Value()
+ || constant > ((Number)
statistics.getMaxValue()).${filter.dataType}Value();
</#if>
}
@@ -300,7 +308,11 @@ public final class ${className} {
@Override
@SuppressWarnings("unchecked")
public boolean valueSatisfy(Object value){
+ <#if filter.dataType == "boolean" || filter.dataType == "Binary" ||
filter.javaBoxName == "String">
return valueSatisfy((${filter.dataType}) value);
+ <#else>
+ return valueSatisfy(((Number) value).${filter.dataType}Value());
+ </#if>
}
@Override
@@ -332,7 +344,7 @@ public final class ${className} {
return false;
}
// drop if value <= min
- return constant <= (${filter.javaBoxName}) statistics.getMinValue();
+ return constant <= ((Number)
statistics.getMinValue()).${filter.dataType}Value();
</#if>
}
@@ -352,7 +364,7 @@ public final class ${className} {
if(statistics.isEmpty()){
return false;
}
- return constant > (${filter.javaBoxName}) statistics.getMaxValue();
+ return constant > ((Number)
statistics.getMaxValue()).${filter.dataType}Value();
</#if>
}
@@ -380,7 +392,11 @@ public final class ${className} {
@Override
@SuppressWarnings("unchecked")
public boolean valueSatisfy(Object value){
+ <#if filter.dataType == "boolean" || filter.dataType == "Binary" ||
filter.javaBoxName == "String">
return valueSatisfy((${filter.dataType}) value);
+ <#else>
+ return valueSatisfy(((Number) value).${filter.dataType}Value());
+ </#if>
}
@Override
@@ -412,7 +428,7 @@ public final class ${className} {
return false;
}
// drop if value < min
- return constant < (${filter.javaBoxName}) statistics.getMinValue();
+ return constant < ((Number)
statistics.getMinValue()).${filter.dataType}Value();
</#if>
}
@@ -432,7 +448,7 @@ public final class ${className} {
if(statistics.isEmpty()){
return false;
}
- return constant >= (${filter.javaBoxName}) statistics.getMaxValue();
+ return constant >= ((Number)
statistics.getMaxValue()).${filter.dataType}Value();
</#if>
}
@@ -460,7 +476,11 @@ public final class ${className} {
@Override
@SuppressWarnings("unchecked")
public boolean valueSatisfy(Object value){
+ <#if filter.dataType == "boolean" || filter.dataType == "Binary" ||
filter.javaBoxName == "String">
return valueSatisfy((${filter.dataType}) value);
+ <#else>
+ return valueSatisfy(((Number) value).${filter.dataType}Value());
+ </#if>
}
@Override
@@ -492,7 +512,7 @@ public final class ${className} {
return false;
}
// drop if value >= max
- return constant >= (${filter.javaBoxName}) statistics.getMaxValue();
+ return constant >= ((Number)
statistics.getMaxValue()).${filter.dataType}Value();
</#if>
}
@@ -512,7 +532,7 @@ public final class ${className} {
if(statistics.isEmpty()){
return false;
}
- return constant < (${filter.javaBoxName}) statistics.getMinValue();
+ return constant < ((Number)
statistics.getMinValue()).${filter.dataType}Value();
</#if>
}
@@ -540,7 +560,11 @@ public final class ${className} {
@Override
@SuppressWarnings("unchecked")
public boolean valueSatisfy(Object value){
+ <#if filter.dataType == "boolean" || filter.dataType == "Binary" ||
filter.javaBoxName == "String">
return valueSatisfy((${filter.dataType}) value);
+ <#else>
+ return valueSatisfy(((Number) value).${filter.dataType}Value());
+ </#if>
}
@Override
@@ -572,7 +596,7 @@ public final class ${className} {
return false;
}
// drop if value > max
- return constant > (${filter.javaBoxName}) statistics.getMaxValue();
+ return constant > ((Number)
statistics.getMaxValue()).${filter.dataType}Value();
</#if>
}
@@ -592,7 +616,7 @@ public final class ${className} {
if(statistics.isEmpty()){
return false;
}
- return constant <= (${filter.javaBoxName}) statistics.getMinValue();
+ return constant <= ((Number)
statistics.getMinValue()).${filter.dataType}Value();
</#if>
}
@@ -688,7 +712,11 @@ public final class ${className} {
@Override
@SuppressWarnings("unchecked")
public boolean valueSatisfy(Object value){
+ <#if filter.dataType == "boolean" || filter.dataType == "Binary" ||
filter.javaBoxName == "String">
return valueSatisfy((${filter.dataType}) value);
+ <#else>
+ return valueSatisfy(((Number) value).${filter.dataType}Value());
+ </#if>
}
@Override
@@ -722,8 +750,8 @@ public final class ${className} {
if(statistics.isEmpty()){
return false;
}
- return (${filter.javaBoxName}) statistics.getMaxValue() < min
- || (${filter.javaBoxName}) statistics.getMinValue() > max;
+ return ((Number) statistics.getMaxValue()).${filter.dataType}Value() <
min
+ || ((Number) statistics.getMinValue()).${filter.dataType}Value() >
max;
</#if>
}
@@ -744,8 +772,8 @@ public final class ${className} {
if(statistics.isEmpty()){
return false;
}
- return (${filter.javaBoxName}) statistics.getMinValue() >= min
- && (${filter.javaBoxName}) statistics.getMaxValue() <= max;
+ return ((Number) statistics.getMinValue()).${filter.dataType}Value() >=
min
+ && ((Number) statistics.getMaxValue()).${filter.dataType}Value() <=
max;
</#if>
}
@@ -773,7 +801,11 @@ public final class ${className} {
@Override
@SuppressWarnings("unchecked")
public boolean valueSatisfy(Object value){
+ <#if filter.dataType == "boolean" || filter.dataType == "Binary" ||
filter.javaBoxName == "String">
return valueSatisfy((${filter.dataType}) value);
+ <#else>
+ return valueSatisfy(((Number) value).${filter.dataType}Value());
+ </#if>
}
@Override
@@ -806,8 +838,8 @@ public final class ${className} {
if(statistics.isEmpty()){
return false;
}
- return (${filter.javaBoxName}) statistics.getMinValue() >= min
- && (${filter.javaBoxName}) statistics.getMaxValue() <= max;
+ return ((Number) statistics.getMinValue()).${filter.dataType}Value() >=
min
+ && ((Number) statistics.getMaxValue()).${filter.dataType}Value() <=
max;
</#if>
}
@@ -828,8 +860,8 @@ public final class ${className} {
if(statistics.isEmpty()){
return false;
}
- return (${filter.javaBoxName}) statistics.getMinValue() > max
- || (${filter.javaBoxName}) statistics.getMaxValue() < min;
+ return ((Number) statistics.getMinValue()).${filter.dataType}Value() >
max
+ || ((Number) statistics.getMaxValue()).${filter.dataType}Value() <
min;
</#if>
}
@@ -962,7 +994,11 @@ public final class ${className} {
@Override
public boolean valueSatisfy(Object value){
- return candidates.contains((${filter.javaBoxName}) value);
+ <#if filter.dataType == "boolean" || filter.dataType == "Binary" ||
filter.javaBoxName == "String">
+ return candidates.contains((${filter.dataType}) value);
+ <#else>
+ return candidates.contains(((Number) value).${filter.dataType}Value());
+ </#if>
}
@Override
@@ -994,8 +1030,8 @@ public final class ${className} {
${filter.dataType} valuesMin = (${filter.dataType}) stat.getMinValue();
${filter.dataType} valuesMax = (${filter.dataType}) stat.getMaxValue();
<#else>
- ${filter.javaBoxName} valuesMin = (${filter.javaBoxName})
stat.getMinValue();
- ${filter.javaBoxName} valuesMax = (${filter.javaBoxName})
stat.getMaxValue();
+ ${filter.javaBoxName} valuesMin = ((Number)
stat.getMinValue()).${filter.dataType}Value();
+ ${filter.javaBoxName} valuesMax = ((Number)
stat.getMaxValue()).${filter.dataType}Value();
</#if>
// All values are same
if (valuesMin.equals(valuesMax)) {
@@ -1048,8 +1084,8 @@ public final class ${className} {
${filter.dataType} valuesMin = (${filter.dataType}) stat.getMinValue();
${filter.dataType} valuesMax = (${filter.dataType}) stat.getMaxValue();
<#else>
- ${filter.javaBoxName} valuesMin = (${filter.javaBoxName})
stat.getMinValue();
- ${filter.javaBoxName} valuesMax = (${filter.javaBoxName})
stat.getMaxValue();
+ ${filter.javaBoxName} valuesMin = ((Number)
stat.getMinValue()).${filter.dataType}Value();
+ ${filter.javaBoxName} valuesMax = ((Number)
stat.getMaxValue()).${filter.dataType}Value();
</#if>
// All values are same
if (valuesMin.equals(valuesMax)) {
@@ -1106,7 +1142,11 @@ public final class ${className} {
@Override
public boolean valueSatisfy(Object value){
- return !candidates.contains((${filter.javaBoxName}) value);
+ <#if filter.dataType == "boolean" || filter.dataType == "Binary" ||
filter.javaBoxName == "String">
+ return !candidates.contains((${filter.dataType}) value);
+ <#else>
+ return !candidates.contains(((Number) value).${filter.dataType}Value());
+ </#if>
}
@Override
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/DoubleStatistics.java
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/DoubleStatistics.java
index 1d259ca3..6d406d5f 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/DoubleStatistics.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/DoubleStatistics.java
@@ -128,6 +128,16 @@ public class DoubleStatistics extends Statistics<Double> {
}
}
+ @Override
+ public void updateStats(double minValue, double maxValue) {
+ if (minValue < this.minValue) {
+ this.minValue = minValue;
+ }
+ if (maxValue > this.maxValue) {
+ this.maxValue = maxValue;
+ }
+ }
+
@Override
public Double getMinValue() {
return minValue;
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/FloatStatistics.java
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/FloatStatistics.java
index 0d9595a8..fd764349 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/FloatStatistics.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/FloatStatistics.java
@@ -119,6 +119,16 @@ public class FloatStatistics extends Statistics<Float> {
}
}
+ @Override
+ public void updateStats(float minValue, float maxValue) {
+ if (minValue < this.minValue) {
+ this.minValue = minValue;
+ }
+ if (maxValue > this.maxValue) {
+ this.maxValue = maxValue;
+ }
+ }
+
@Override
public Float getMinValue() {
return minValue;
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/IntegerStatistics.java
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/IntegerStatistics.java
index 22db0aa9..b5cf408b 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/IntegerStatistics.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/IntegerStatistics.java
@@ -120,6 +120,16 @@ public class IntegerStatistics extends Statistics<Integer>
{
}
}
+ @Override
+ public void updateStats(int minValue, int maxValue) {
+ if (minValue < this.minValue) {
+ this.minValue = minValue;
+ }
+ if (maxValue > this.maxValue) {
+ this.maxValue = maxValue;
+ }
+ }
+
@Override
public Integer getMinValue() {
return minValue;
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/Statistics.java
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/Statistics.java
index 3fc0f714..ee41b063 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/Statistics.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/statistics/Statistics.java
@@ -393,6 +393,18 @@ public abstract class Statistics<T extends Serializable> {
throw new UnsupportedOperationException();
}
+ public void updateStats(int min, int max) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateStats(float min, float max) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateStats(double min, double max) {
+ throw new UnsupportedOperationException();
+ }
+
public long getStartTime() {
return startTime;
}
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/read/filter/factory/ValueFilterApi.java
b/java/tsfile/src/main/java/org/apache/tsfile/read/filter/factory/ValueFilterApi.java
index 6ccec7ec..745d78af 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/read/filter/factory/ValueFilterApi.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/read/filter/factory/ValueFilterApi.java
@@ -60,14 +60,14 @@ public class ValueFilterApi {
return new BooleanFilterOperators.ValueGt(measurementIndex, (boolean)
value);
case INT32:
case DATE:
- return new IntegerFilterOperators.ValueGt(measurementIndex, (int)
value);
+ return new IntegerFilterOperators.ValueGt(measurementIndex, ((Number)
value).intValue());
case INT64:
case TIMESTAMP:
- return new LongFilterOperators.ValueGt(measurementIndex, (long) value);
+ return new LongFilterOperators.ValueGt(measurementIndex, ((Number)
value).longValue());
case DOUBLE:
- return new DoubleFilterOperators.ValueGt(measurementIndex, (double)
value);
+ return new DoubleFilterOperators.ValueGt(measurementIndex, ((Number)
value).doubleValue());
case FLOAT:
- return new FloatFilterOperators.ValueGt(measurementIndex, (float)
value);
+ return new FloatFilterOperators.ValueGt(measurementIndex, ((Number)
value).floatValue());
case TEXT:
case BLOB:
return new BinaryFilterOperators.ValueGt(measurementIndex, (Binary)
value);
@@ -86,14 +86,15 @@ public class ValueFilterApi {
return new BooleanFilterOperators.ValueGtEq(measurementIndex,
(boolean) value);
case INT32:
case DATE:
- return new IntegerFilterOperators.ValueGtEq(measurementIndex, (int)
value);
+ return new IntegerFilterOperators.ValueGtEq(measurementIndex,
((Number) value).intValue());
case INT64:
case TIMESTAMP:
- return new LongFilterOperators.ValueGtEq(measurementIndex, (long)
value);
+ return new LongFilterOperators.ValueGtEq(measurementIndex, ((Number)
value).longValue());
case DOUBLE:
- return new DoubleFilterOperators.ValueGtEq(measurementIndex, (double)
value);
+ return new DoubleFilterOperators.ValueGtEq(
+ measurementIndex, ((Number) value).doubleValue());
case FLOAT:
- return new FloatFilterOperators.ValueGtEq(measurementIndex, (float)
value);
+ return new FloatFilterOperators.ValueGtEq(measurementIndex, ((Number)
value).floatValue());
case TEXT:
case BLOB:
return new BinaryFilterOperators.ValueGtEq(measurementIndex, (Binary)
value);
@@ -112,14 +113,14 @@ public class ValueFilterApi {
return new BooleanFilterOperators.ValueLt(measurementIndex, (boolean)
value);
case INT32:
case DATE:
- return new IntegerFilterOperators.ValueLt(measurementIndex, (int)
value);
+ return new IntegerFilterOperators.ValueLt(measurementIndex, ((Number)
value).intValue());
case INT64:
case TIMESTAMP:
- return new LongFilterOperators.ValueLt(measurementIndex, (long) value);
+ return new LongFilterOperators.ValueLt(measurementIndex, ((Number)
value).longValue());
case DOUBLE:
- return new DoubleFilterOperators.ValueLt(measurementIndex, (double)
value);
+ return new DoubleFilterOperators.ValueLt(measurementIndex, ((Number)
value).doubleValue());
case FLOAT:
- return new FloatFilterOperators.ValueLt(measurementIndex, (float)
value);
+ return new FloatFilterOperators.ValueLt(measurementIndex, ((Number)
value).floatValue());
case TEXT:
case BLOB:
return new BinaryFilterOperators.ValueLt(measurementIndex, (Binary)
value);
@@ -138,14 +139,15 @@ public class ValueFilterApi {
return new BooleanFilterOperators.ValueLtEq(measurementIndex,
(boolean) value);
case INT32:
case DATE:
- return new IntegerFilterOperators.ValueLtEq(measurementIndex, (int)
value);
+ return new IntegerFilterOperators.ValueLtEq(measurementIndex,
((Number) value).intValue());
case INT64:
case TIMESTAMP:
- return new LongFilterOperators.ValueLtEq(measurementIndex, (long)
value);
+ return new LongFilterOperators.ValueLtEq(measurementIndex, ((Number)
value).longValue());
case DOUBLE:
- return new DoubleFilterOperators.ValueLtEq(measurementIndex, (double)
value);
+ return new DoubleFilterOperators.ValueLtEq(
+ measurementIndex, ((Number) value).doubleValue());
case FLOAT:
- return new FloatFilterOperators.ValueLtEq(measurementIndex, (float)
value);
+ return new FloatFilterOperators.ValueLtEq(measurementIndex, ((Number)
value).floatValue());
case TEXT:
case BLOB:
return new BinaryFilterOperators.ValueLtEq(measurementIndex, (Binary)
value);
@@ -164,14 +166,14 @@ public class ValueFilterApi {
return new BooleanFilterOperators.ValueEq(measurementIndex, (boolean)
value);
case INT32:
case DATE:
- return new IntegerFilterOperators.ValueEq(measurementIndex, (int)
value);
+ return new IntegerFilterOperators.ValueEq(measurementIndex, ((Number)
value).intValue());
case INT64:
case TIMESTAMP:
- return new LongFilterOperators.ValueEq(measurementIndex, (long) value);
+ return new LongFilterOperators.ValueEq(measurementIndex, ((Number)
value).longValue());
case DOUBLE:
- return new DoubleFilterOperators.ValueEq(measurementIndex, (double)
value);
+ return new DoubleFilterOperators.ValueEq(measurementIndex, ((Number)
value).doubleValue());
case FLOAT:
- return new FloatFilterOperators.ValueEq(measurementIndex, (float)
value);
+ return new FloatFilterOperators.ValueEq(measurementIndex, ((Number)
value).floatValue());
case TEXT:
case BLOB:
return new BinaryFilterOperators.ValueEq(measurementIndex, (Binary)
value);
@@ -190,14 +192,15 @@ public class ValueFilterApi {
return new BooleanFilterOperators.ValueNotEq(measurementIndex,
(boolean) value);
case INT32:
case DATE:
- return new IntegerFilterOperators.ValueNotEq(measurementIndex, (int)
value);
+ return new IntegerFilterOperators.ValueNotEq(measurementIndex,
((Number) value).intValue());
case INT64:
case TIMESTAMP:
- return new LongFilterOperators.ValueNotEq(measurementIndex, (long)
value);
+ return new LongFilterOperators.ValueNotEq(measurementIndex, ((Number)
value).longValue());
case DOUBLE:
- return new DoubleFilterOperators.ValueNotEq(measurementIndex, (double)
value);
+ return new DoubleFilterOperators.ValueNotEq(
+ measurementIndex, ((Number) value).doubleValue());
case FLOAT:
- return new FloatFilterOperators.ValueNotEq(measurementIndex, (float)
value);
+ return new FloatFilterOperators.ValueNotEq(measurementIndex, ((Number)
value).floatValue());
case TEXT:
case BLOB:
return new BinaryFilterOperators.ValueNotEq(measurementIndex, (Binary)
value);
@@ -228,17 +231,17 @@ public class ValueFilterApi {
case INT32:
case DATE:
return new IntegerFilterOperators.ValueBetweenAnd(
- measurementIndex, (int) value1, (int) value2);
+ measurementIndex, ((Number) value1).intValue(), ((Number)
value2).intValue());
case INT64:
case TIMESTAMP:
return new LongFilterOperators.ValueBetweenAnd(
- measurementIndex, (long) value1, (long) value2);
+ measurementIndex, ((Number) value1).longValue(), ((Number)
value2).longValue());
case DOUBLE:
return new DoubleFilterOperators.ValueBetweenAnd(
- measurementIndex, (double) value1, (double) value2);
+ measurementIndex, ((Number) value1).doubleValue(), ((Number)
value2).doubleValue());
case FLOAT:
return new FloatFilterOperators.ValueBetweenAnd(
- measurementIndex, (float) value1, (float) value2);
+ measurementIndex, ((Number) value1).floatValue(), ((Number)
value2).floatValue());
case TEXT:
case BLOB:
return new BinaryFilterOperators.ValueBetweenAnd(
@@ -263,17 +266,17 @@ public class ValueFilterApi {
case INT32:
case DATE:
return new IntegerFilterOperators.ValueNotBetweenAnd(
- measurementIndex, (int) value1, (int) value2);
+ measurementIndex, ((Number) value1).intValue(), ((Number)
value2).intValue());
case INT64:
case TIMESTAMP:
return new LongFilterOperators.ValueNotBetweenAnd(
- measurementIndex, (long) value1, (long) value2);
+ measurementIndex, ((Number) value1).longValue(), ((Number)
value2).longValue());
case DOUBLE:
return new DoubleFilterOperators.ValueNotBetweenAnd(
- measurementIndex, (double) value1, (double) value2);
+ measurementIndex, ((Number) value1).doubleValue(), ((Number)
value2).doubleValue());
case FLOAT:
return new FloatFilterOperators.ValueNotBetweenAnd(
- measurementIndex, (float) value1, (float) value2);
+ measurementIndex, ((Number) value1).floatValue(), ((Number)
value2).floatValue());
case TEXT:
case BLOB:
return new BinaryFilterOperators.ValueNotBetweenAnd(