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


Reply via email to