eywek
01/14/2021, 1:34 PMSELECT "tmpId" from datasource_5ffdbf421eb80003001818fe
WHERE "name" = "identify" AND "clientId" = "ef8e0112fbac1450776931712bdaad3bb0deb121"
GROUP BY "tmpId"
LIMIT 1
The query is executed
But with:
SELECT "tmpId" from datasource_5ffdbf421eb80003001818fe
WHERE "name" = "identify" AND "clientId" = "3f8e0112fbac1450776931712bdaad3bb0deb121" -- 3f8e0112fbac1450776931712bdaad3bb0deb121
GROUP BY "tmpId"
LIMIT 1
I get the following error:
[
{
"errorCode": 200,
"message": "QueryExecutionError:\norg.antlr.v4.runtime.misc.ParseCancellationException\n\tat org.antlr.v4.runtime.BailErrorStrategy.recoverInline(BailErrorStrategy.java:66)\n\tat org.antlr.v4.runtime.Parser.match(Parser.java:203)\n\tat org.apache.pinot.pql.parsers.PQL2Parser.expression(PQL2Parser.java:828)\n\tat org.apache.pinot.pql.parsers.PQL2Parser.expression(PQL2Parser.java:745)\n\tat org.apache.pinot.pql.parsers.Pql2Compiler.parseToAstNode(Pql2Compiler.java:148)\n\tat org.apache.pinot.pql.parsers.Pql2Compiler.compileToExpressionTree(Pql2Compiler.java:153)\n\tat org.apache.pinot.common.request.transform.TransformExpressionTree.compileToExpressionTree(TransformExpressionTree.java:46)\n\tat org.apache.pinot.broker.requesthandler.BaseBrokerRequestHandler.handleSubquery(BaseBrokerRequestHandler.java:471)\n\tat org.apache.pinot.broker.requesthandler.BaseBrokerRequestHandler.handleRequest(BaseBrokerRequestHandler.java:215)\n\tat org.apache.pinot.broker.api.resources.PinotClientRequest.processSqlQueryPost(PinotClientRequest.java:155)\n\tat sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)"
}
]
I don’t really understand the error and why it’s happening, the only thing that changes between 2 queries is the clientId
value that starts with ef
in the first query and starts with 3f
in the 2nd oneMayank
eywek
01/14/2021, 3:24 PM<http://localhost:9000/sql>
)Mayank
Mayank
eywek
01/14/2021, 3:49 PMSELECT tmpId from datasource_5ffdbf421eb80003001818fe
WHERE name = "identify" AND clientId = "3f8e0112fbac1450776931712bdaad3bb0deb121"
GROUP BY tmpId
LIMIT 1
Mayank
Kishore G
Mayank
Mayank
Kishore G
org.apache.pinot.broker.requesthandler.BaseBrokerRequestHandler.handleSubquery(BaseBrokerRequestHandler.java:471)
Kishore G
Mayank
Kishore G
Kishore G
Jackie
01/14/2021, 6:36 PMvmarchaud
01/14/2021, 9:16 PMvmarchaud
01/14/2021, 9:19 PMvmarchaud
01/14/2021, 9:20 PMJackie
01/14/2021, 9:29 PM"name" = "identify"
will be interpreted into name - identify = 0
, where both name
and identify
are treated as identifier (column)