Skip to content

Commit

Permalink
Revert "Update QualifiedName to Store the Case-sensitive QualifiedName (
Browse files Browse the repository at this point in the history
Netflix#359)"

This reverts commit e5e69f5.
  • Loading branch information
ajoymajumdar committed Aug 8, 2019
1 parent f73c03a commit f428ac8
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 82 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,6 @@ public final class QualifiedName implements Serializable {
private Map<String, String> parts;
private Type type;

// Null if this QualifiedName was all lower-case to begin with.
private QualifiedName caseSensitiveQualifiedName;

private QualifiedName(
@NonNull final String catalogName,
@Nullable final String databaseName,
Expand Down Expand Up @@ -82,10 +79,6 @@ private QualifiedName(
} else {
type = Type.CATALOG;
}

this.caseSensitiveQualifiedName = createCaseSensitiveQualifiedNameIfNecessary(this.catalogName,
databaseName, this.databaseName, tableName, this.tableName, partitionName, this.partitionName,
viewName, this.viewName, this.type);
}

private QualifiedName(
Expand Down Expand Up @@ -298,58 +291,6 @@ public static QualifiedName ofTable(
return new QualifiedName(catalogName, databaseName, tableName, null, null);
}

/**
* Returns the case-sensitive QualifiedName if present and
* {@code name} as a default otherwise.
* @param name The QualifiedName instance.
* @return case-sensitive QualifiedName.
*/
public static QualifiedName getCaseSensitiveQualifiedNameIfPresent(@NonNull final QualifiedName name) {
final QualifiedName caseSensitiveQualifiedName = name.getCaseSensitiveQualifiedName();
return caseSensitiveQualifiedName == null ? name : caseSensitiveQualifiedName;
}

private static QualifiedName createCaseSensitiveQualifiedNameIfNecessary(
@NonNull final String catalogName,
@Nullable final String databaseName,
@NonNull final String standardDatabaseName,
@Nullable final String tableName,
@NonNull final String standardTableName,
@Nullable final String partitionName,
@NonNull final String standardPartitionName,
@Nullable final String viewName,
@NonNull final String standardViewName,
@NonNull final Type type
) {
final String caseSensitiveDatabaseName = standardizeOptional(databaseName, false);
final String caseSensitiveTableName = standardizeOptional(tableName, false);
final String caseSensitivePartitionName = standardizeOptional(partitionName, false);
final String caseSensitiveViewName = standardizeOptional(viewName, false);
if (shouldCreateCaseSensitiveQualifiedName(caseSensitiveDatabaseName, standardDatabaseName,
caseSensitiveTableName, standardTableName, caseSensitivePartitionName, standardPartitionName,
caseSensitiveViewName, standardViewName)) {
return new QualifiedName(catalogName, caseSensitiveDatabaseName, caseSensitiveTableName,
caseSensitivePartitionName, caseSensitiveViewName, type);
}

return null;
}

private static boolean shouldCreateCaseSensitiveQualifiedName(
@NonNull final String databaseName,
@NonNull final String standardDatabaseName,
@NonNull final String tableName,
@NonNull final String standardTableName,
@NonNull final String partitionName,
@NonNull final String standardPartitionName,
@NonNull final String viewName,
@NonNull final String standardViewName) {
return !standardDatabaseName.equals(databaseName)
|| !standardTableName.equals(tableName)
|| !standardPartitionName.equals(partitionName)
|| !standardViewName.equals(viewName);
}

/**
* Creates a wild card string format of the qualified name.
*
Expand Down Expand Up @@ -495,7 +436,7 @@ public boolean isTableDefinition() {
return !tableName.isEmpty();
}

private static String standardizeOptional(@Nullable final String value, final boolean forceLowerCase) {
private String standardizeOptional(@Nullable final String value, final boolean forceLowerCase) {
if (value == null) {
return "";
} else {
Expand All @@ -507,7 +448,7 @@ private static String standardizeOptional(@Nullable final String value, final bo
}
}

private static String standardizeRequired(final String name, @Nullable final String value) {
private String standardizeRequired(final String name, @Nullable final String value) {
if (value == null) {
throw new IllegalStateException(name + " cannot be null");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -257,25 +257,4 @@ class QualifiedNameSpec extends Specification {
"" | "database_1" | "abcd" | "%/database_1/abcd%"
"" | "" | "abcd" | "%/%/abcd%"
}

@Unroll
def testCaseSensitiveQualifiedNameCreation() {
when:
def QualifiedName caseSensitiveQualifiedName = QualifiedName.fromString(input).getCaseSensitiveQualifiedName();

then:
(caseSensitiveQualifiedName == null) ? (result == null) : (caseSensitiveQualifiedName.toString().equals(result))

where:
input | result
'c' | null
'c/D' | 'c/D'
'c/d' | null
'c/D/T' | 'c/D/T'
'c/d/t' | null
'c/d/t/P' | 'c/d/t/P'
'c/d/t/v=1' | null
'c/d/t/V=1' | null
'c/d/t/View' | 'c/d/t/View'
}
}

0 comments on commit f428ac8

Please sign in to comment.