diff options
author | Jacques Nadeau <jacques@apache.org> | 2014-04-21 09:22:32 -0700 |
---|---|---|
committer | Jacques Nadeau <jacques@apache.org> | 2014-04-21 09:22:32 -0700 |
commit | 6d26f23ce0b9840b28b38a5ee4a343607811761b (patch) | |
tree | 2e98be42589433de6dfc5462f58bca11315d03f5 /common | |
parent | 58d33c8af3e8c4caf5ef0cfc77c8f6f2d88ef1ca (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.java | 19 |
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; |