saurabhd336 opened a new pull request, #12524:
URL: https://github.com/apache/pinot/pull/12524
For a json column `myJsonCol` with values like
```
{"values": [1, 2, 3, 4, 5]}
```
```
select summv(json_extract_scalar(myJsonCol, '$.values[0:3]', 'INT_ARRAY'))
from wxcc_agent_activity limit 10
```
Fails with
```
Error Code: 200
QueryExecutionError:
java.lang.ClassCastException: class java.lang.Integer cannot be cast to
class java.lang.Double (java.lang.Integer and java.lang.Double are in module
java.base of loader 'bootstrap')
at
org.apache.pinot.core.common.evaluators.DefaultJsonPathEvaluator.processList(DefaultJsonPathEvaluator.java:633)
at
org.apache.pinot.core.common.evaluators.DefaultJsonPathEvaluator.evaluateBlock(DefaultJsonPathEvaluator.java:381)
at
org.apache.pinot.core.common.DataFetcher$ColumnValueReader.readDoubleValuesMV(DataFetcher.java:724)
at
org.apache.pinot.core.common.DataFetcher.fetchDoubleValues(DataFetcher.java:385)
```
This is because the implicit cast to `List<>` class when performing the
`read(_jsonPath)` operation is not enough to correctly convert the data types.
This PR fixes this behaviour by passing explicit TypeRef objects to `read` when
reading json arrays.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]