Skip to content

Commit

Permalink
Ignore case when parsing ROW signature
Browse files Browse the repository at this point in the history
Recent changes to signature parsing made the code
sensitive to case when dealing with row types.
  • Loading branch information
martint committed Jan 17, 2016
1 parent 2d62365 commit e75b147
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
Expand Up @@ -94,7 +94,7 @@ public static TypeSignature parseTypeSignature(String signature)
if (!signature.contains("<") && !signature.contains("(")) {
return new TypeSignature(signature, new ArrayList<>());
}
if (signature.startsWith(StandardTypes.ROW)) {
if (signature.toLowerCase(Locale.ENGLISH).startsWith(StandardTypes.ROW)) {
return parseRowTypeSignature(signature);
}

Expand Down Expand Up @@ -252,7 +252,7 @@ private static String parseFieldName(String fieldName)
@JsonValue
public String toString()
{
if (base.equals(StandardTypes.ROW)) {
if (base.equalsIgnoreCase(StandardTypes.ROW)) {
return rowToString();
}
else {
Expand Down
Expand Up @@ -69,6 +69,11 @@ public void parseRowSignature()
"row<bigint,varchar>('a','b')",
"row",
ImmutableList.of("a bigint", "b varchar"));
assertRowSignature(
"ROW<bigint,varchar>('a','b')",
"ROW",
ImmutableList.of("a bigint", "b varchar"),
"row<bigint,varchar>('a','b')");
assertRowSignature(
"row<bigint,array(bigint),row<bigint>('a')>('a','b','c')",
"row",
Expand Down Expand Up @@ -131,7 +136,16 @@ private static void assertRowSignature(
String base,
List<String> parameters)
{
assertSignature(typeName, base, parameters, typeName);
assertRowSignature(typeName, base, parameters, typeName);
}

private static void assertRowSignature(
String typeName,
String base,
List<String> parameters,
String expected)
{
assertSignature(typeName, base, parameters, expected);
}

private static void assertSignature(String typeName, String base, List<String> parameters)
Expand Down

0 comments on commit e75b147

Please sign in to comment.