aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorJacques Nadeau <jacques@apache.org>2014-04-21 09:22:32 -0700
committerJacques Nadeau <jacques@apache.org>2014-04-21 09:22:32 -0700
commit6d26f23ce0b9840b28b38a5ee4a343607811761b (patch)
tree2e98be42589433de6dfc5462f58bca11315d03f5 /common
parent58d33c8af3e8c4caf5ef0cfc77c8f6f2d88ef1ca (diff)
Update VectorUtil to print out unescaped schema paths.
Diffstat (limited to 'common')
-rw-r--r--common/src/main/java/org/apache/drill/common/expression/SchemaPath.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/common/src/main/java/org/apache/drill/common/expression/SchemaPath.java b/common/src/main/java/org/apache/drill/common/expression/SchemaPath.java
index a3f93a3cf..659639aac 100644
--- a/common/src/main/java/org/apache/drill/common/expression/SchemaPath.java
+++ b/common/src/main/java/org/apache/drill/common/expression/SchemaPath.java
@@ -152,6 +152,25 @@ public class SchemaPath extends LogicalExpressionBase {
return ExpressionStringBuilder.toString(this);
}
+ public String getAsUnescapedPath(){
+ StringBuilder sb = new StringBuilder();
+ PathSegment seg = getRootSegment();
+ if(seg.isArray()) throw new IllegalStateException("Drill doesn't currently support top level arrays");
+ sb.append(seg.getNameSegment().getPath());
+
+ while( (seg = seg.getChild()) != null){
+ if(seg.isNamed()){
+ sb.append('.');
+ sb.append(seg.getNameSegment().getPath());
+ }else{
+ sb.append('[');
+ sb.append(seg.getArraySegment().getIndex());
+ sb.append(']');
+ }
+ }
+ return sb.toString();
+ }
+
public static class De extends StdDeserializer<SchemaPath> {
DrillConfig config;