diff options
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/record/metadata/schema/parser/SchemaExprParser.java')
-rw-r--r-- | exec/java-exec/src/main/java/org/apache/drill/exec/record/metadata/schema/parser/SchemaExprParser.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/record/metadata/schema/parser/SchemaExprParser.java b/exec/java-exec/src/main/java/org/apache/drill/exec/record/metadata/schema/parser/SchemaExprParser.java index 3cf376215..ea5071e5b 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/record/metadata/schema/parser/SchemaExprParser.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/record/metadata/schema/parser/SchemaExprParser.java @@ -23,6 +23,7 @@ import org.antlr.v4.runtime.CodePointCharStream; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.RecognitionException; import org.antlr.v4.runtime.Recognizer; +import org.apache.drill.common.types.TypeProtos; import org.apache.drill.exec.record.metadata.ColumnMetadata; import org.apache.drill.exec.record.metadata.TupleMetadata; @@ -41,6 +42,21 @@ public class SchemaExprParser { } /** + * Parses given column name, type and mode into {@link ColumnMetadata} instance. + * + * @param name column name + * @param type column type + * @param mode column mode + * @return column metadata + */ + public static ColumnMetadata parseColumn(String name, String type, TypeProtos.DataMode mode) { + return parseColumn(String.format("`%s` %s %s", + name.replaceAll("(\\\\)|(`)", "\\\\$0"), + type, + TypeProtos.DataMode.REQUIRED == mode ? "not null" : "")); + } + + /** * Parses string definition of the column and converts it * into {@link ColumnMetadata} instance. * |