[
https://issues.apache.org/jira/browse/IOTDB-4221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17604767#comment-17604767
]
liaolanyu commented on IOTDB-4221:
----------------------------------
In 0.13, when parsing a string that represents a real number, we will treat it
as a double value. But in 0.14, the property float_string_infer_type will
decide the type(float/double) that we use to parse it and the default type is
float. So the result of SQL in this issue is expected.
> In 0.14.0-SNAPSHOT newServer, where clause cannot obtain a Double value
> ------------------------------------------------------------------------
>
> Key: IOTDB-4221
> URL: https://issues.apache.org/jira/browse/IOTDB-4221
> Project: Apache IoTDB
> Issue Type: Bug
> Affects Versions: 0.14.0-SNAPSHOT
> Environment: Windows 10
> Reporter: Tao Yi
> Assignee: liaolanyu
> Priority: Minor
> Attachments: image-2022-08-27-17-10-07-881.png,
> image-2022-09-09-22-46-08-063.png, screenshot-1.png
>
>
> I try 2 same insert and query in both 0.13.2 and 0.14.0,
> the statements are:
> create timeseries root.sg0.t0 with datatype=double, encoding=plain
> insert into root.sg0(timestamp, t0) values(1, 3.5E38)
> select t0 from root.sg0 where t0 > 3.49E38
>
> result in IoTDB 0.13.2:
> !image-2022-08-27-17-10-07-881.png|width=600,height=396!
> result int IoTDB 0.14.0:
> !image-2022-09-09-22-46-08-063.png|width=809,height=290!
> So I guess that the problem is 0.14.0 where clause cannot obtain a Double
> value, I think this is a bug needs fixing.
>
> This is the error log of IoTDB-server:
> 2022-09-09 22:45:35,440 [20220909_144535_00002_0.1.0-44] ERROR
> o.a.i.d.m.e.f.FragmentInstanceManager:130 - error when create
> FragmentInstanceExecution.
> java.lang.UnsupportedOperationException:
> org.apache.iotdb.db.exception.query.QueryProcessException: The input float
> value is Infinity
> at
> org.apache.iotdb.db.mpp.transformation.dag.util.TransformUtils.transformConstantOperandToColumn(TransformUtils.java:100)
> at
> org.apache.iotdb.db.mpp.plan.expression.visitor.ColumnTransformerVisitor.lambda$visitConstantOperand$5(ColumnTransformerVisitor.java:301)
> at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1134)
> at
> org.apache.iotdb.db.mpp.plan.expression.visitor.ColumnTransformerVisitor.visitConstantOperand(ColumnTransformerVisitor.java:295)
> at
> org.apache.iotdb.db.mpp.plan.expression.visitor.ColumnTransformerVisitor.visitConstantOperand(ColumnTransformerVisitor.java:74)
> at
> org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand.accept(ConstantOperand.java:59)
> at
> org.apache.iotdb.db.mpp.plan.expression.visitor.ExpressionVisitor.process(ExpressionVisitor.java:52)
> at
> org.apache.iotdb.db.mpp.plan.expression.visitor.ColumnTransformerVisitor.visitBinaryExpression(ColumnTransformerVisitor.java:135)
> at
> org.apache.iotdb.db.mpp.plan.expression.visitor.ColumnTransformerVisitor.visitBinaryExpression(ColumnTransformerVisitor.java:74)
> at
> org.apache.iotdb.db.mpp.plan.expression.visitor.ExpressionVisitor.visitCompareBinaryExpression(ExpressionVisitor.java:100)
> at
> org.apache.iotdb.db.mpp.plan.expression.binary.CompareBinaryExpression.accept(CompareBinaryExpression.java:44)
> at
> org.apache.iotdb.db.mpp.plan.expression.visitor.ExpressionVisitor.process(ExpressionVisitor.java:52)
> at
> org.apache.iotdb.db.mpp.plan.planner.OperatorTreeGenerator.visitFilter(OperatorTreeGenerator.java:969)
> at
> org.apache.iotdb.db.mpp.plan.planner.OperatorTreeGenerator.visitFilter(OperatorTreeGenerator.java:199)
> at
> org.apache.iotdb.db.mpp.plan.planner.plan.node.process.FilterNode.accept(FilterNode.java:64)
> at
> org.apache.iotdb.db.mpp.plan.planner.OperatorTreeGenerator.visitFragmentSink(OperatorTreeGenerator.java:1362)
> at
> org.apache.iotdb.db.mpp.plan.planner.OperatorTreeGenerator.visitFragmentSink(OperatorTreeGenerator.java:199)
> at
> org.apache.iotdb.db.mpp.plan.planner.plan.node.sink.FragmentSinkNode.accept(FragmentSinkNode.java:75)
> at
> org.apache.iotdb.db.mpp.plan.planner.LocalExecutionPlanner.plan(LocalExecutionPlanner.java:68)
> at
> org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceManager.lambda$execDataQueryFragmentInstance$1(FragmentInstanceManager.java:115)
> at
> java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
> at
> org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceManager.execDataQueryFragmentInstance(FragmentInstanceManager.java:101)
> at
> org.apache.iotdb.db.mpp.plan.scheduler.StandaloneScheduler.start(StandaloneScheduler.java:107)
> at
> org.apache.iotdb.db.mpp.plan.execution.QueryExecution.schedule(QueryExecution.java:255)
> at
> org.apache.iotdb.db.mpp.plan.execution.QueryExecution.start(QueryExecution.java:182)
> at
> org.apache.iotdb.db.mpp.plan.Coordinator.execute(Coordinator.java:146)
> at
> org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.executeStatement(ClientRPCServiceImpl.java:563)
> at
> org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$executeStatement.getResult(IClientRPCService.java:3037)
> at
> org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$executeStatement.getResult(IClientRPCService.java:3017)
> at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
> at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
> at
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:248)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: org.apache.iotdb.db.exception.query.QueryProcessException: The
> input float value is Infinity
> at
> org.apache.iotdb.db.utils.CommonUtils.parseValue(CommonUtils.java:107)
> at
> org.apache.iotdb.db.mpp.transformation.dag.util.TransformUtils.transformConstantOperandToColumn(TransformUtils.java:71)
> ... 34 common frames omitted
--
This message was sent by Atlassian Jira
(v8.20.10#820010)