You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by Ryan Shanks <ry...@softcomcorp.com> on 2018/03/20 20:28:34 UTC
Issue with order by clause for custom StoragePlugin
Hi!
I am trying to learn how to write a custom StoragePlugin. My
StoragePlugin currently takes 3 parameters: the type name, a file name
and if its enabled. The file contains a schema describing my data
source, which currently is just an xml file with test values while I
learn more. Currently I have my plugin able to execute basic queries,
but it fails when I try an "ORDER BY" clause. I was hoping someone might
be able to provide some insight into why this might be or maybe point me
in the right direction. I am not sure what information is helpful for
determining the issue so please let me know what I can provide if the
below is not enough.
This works:
SELECT loginName FROM test1.`Users`;
But this does not work:
SELECT loginName FROM test1.`Users` ORDER BY loginName;
Below is the error I obtain with the order by query:
org.apache.drill.common.exceptions.UserException: SYSTEM ERROR:
ExpressionParsingException: Expression has syntax error! line 1:0:no
viable alternative at input '{'
Fragment 3:0
[Error Id: eba80b35-d8b8-483c-ab03-726c135cc7f2 on ubuntu:31010]
at
org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:586)
~[drill-common-1.12.0.jar:1.12.0]
at
org.apache.drill.exec.work.fragment.FragmentExecutor.sendFinalState(FragmentExecutor.java:301)
[drill-java-exec-1.12.0.jar:1.12.0]
at
org.apache.drill.exec.work.fragment.FragmentExecutor.cleanup(FragmentExecutor.java:160)
[drill-java-exec-1.12.0.jar:1.12.0]
at
org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:267)
[drill-java-exec-1.12.0.jar:1.12.0]
at
org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38)
[drill-common-1.12.0.jar:1.12.0]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[na:1.8.0_161]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[na:1.8.0_161]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_161]
Caused by: com.fasterxml.jackson.databind.JsonMappingException:
Expression has syntax error! line 1:0:no viable alternative at input '{'
(through reference chain:
org.apache.drill.exec.physical.config.SingleSender["child"]->org.apache.drill.exec.physical.config.Project["child"]->org.apache.drill.rest.storage.plugin.RestSubScan["columns"]->java.util.ArrayList[0])
at
com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:379)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:351)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:308)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:259)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:26)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:495)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:465)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:384)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1127)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:298)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithObjectId(BeanDeserializerBase.java:1098)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:166)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:135)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:120)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:91)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:142)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:493)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:465)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:384)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1127)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:298)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithObjectId(BeanDeserializerBase.java:1098)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:166)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:135)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:120)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:91)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:142)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:493)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:465)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:384)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1127)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:298)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithObjectId(BeanDeserializerBase.java:1098)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:166)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:135)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:120)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:91)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:142)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.deser.impl.TypeWrappedDeserializer.deserialize(TypeWrappedDeserializer.java:63)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1579)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1200)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
at
org.apache.drill.exec.planner.PhysicalPlanReader.readFragmentRoot(PhysicalPlanReader.java:101)
~[drill-java-exec-1.12.0.jar:1.12.0]
at
org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:205)
[drill-java-exec-1.12.0.jar:1.12.0]
... 4 common frames omitted
Caused by:
org.apache.drill.common.exceptions.ExpressionParsingException:
Expression has syntax error! line 1:0:no viable alternative at input '{'
at
org.apache.drill.common.expression.parser.ExprParser.displayRecognitionError(ExprParser.java:169)
~[drill-logical-1.12.0.jar:1.12.0]
at
org.antlr.runtime.BaseRecognizer.reportError(BaseRecognizer.java:186)
~[antlr-runtime-3.4.jar:na]
at
org.apache.drill.common.expression.parser.ExprParser.expression(ExprParser.java:3063)
~[drill-logical-1.12.0.jar:1.12.0]
at
org.apache.drill.common.expression.parser.ExprParser.parse(ExprParser.java:206)
~[drill-logical-1.12.0.jar:1.12.0]
at
org.apache.drill.common.expression.SchemaPath.parseFromString(SchemaPath.java:133)
~[drill-logical-1.12.0.jar:1.12.0]
at
org.apache.drill.common.expression.SchemaPath$De.deserialize(SchemaPath.java:275)
~[drill-logical-1.12.0.jar:1.12.0]
at
org.apache.drill.common.expression.SchemaPath$De.deserialize(SchemaPath.java:267)
~[drill-logical-1.12.0.jar:1.12.0]
at
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:287)
~[jackson-databind-2.7.9.1.jar:2.7.9.1]
... 44 common frames omitted
Thank you!
- Ryan