Skip to content

Commit 3a64d24

Browse files
committed
Fix a bug in that caused custom validations to always report anomalies
PiperOrigin-RevId: 671804127
1 parent 358631a commit 3a64d24

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

RELEASE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
## Bug Fixes and Other Changes
2222

23+
* Fix bug in implementation of custom validations.
2324
* Depends on `tensorflow>=2.15,<2.16`.
2425

2526
## Known Issues

tensorflow_data_validation/anomalies/custom_validation.cc

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ absl::Status GetFeatureStatistics(
9292
}
9393

9494
absl::Status MergeAnomalyInfos(const AnomalyInfo& anomaly_info,
95-
const std::string& key,
96-
AnomalyInfo* existing_anomaly_info) {
95+
const std::string& key,
96+
AnomalyInfo* existing_anomaly_info) {
9797
if (Path(anomaly_info.path()).Compare(Path(existing_anomaly_info->path())) !=
9898
0) {
9999
return absl::AlreadyExistsError(
@@ -242,13 +242,15 @@ absl::Status CustomValidateStatistics(
242242
"Attempt to run query: ", validation.sql_expression(),
243243
" failed with the following error: ",
244244
query_result.status().ToString()));
245+
} else if (!query_result.value()) {
246+
// If the sql_expression evaluates to False, there is an anomaly.
247+
TFDV_RETURN_IF_ERROR(UpdateAnomalyResults(
248+
feature_pair_validation.feature_test_path(),
249+
feature_pair_validation.dataset_name(),
250+
feature_pair_validation.base_dataset_name(),
251+
feature_pair_validation.feature_base_path(), validation,
252+
result));
245253
}
246-
// If the sql_expression evaluates to False, there is an anomaly.
247-
TFDV_RETURN_IF_ERROR(UpdateAnomalyResults(
248-
feature_pair_validation.feature_test_path(),
249-
feature_pair_validation.dataset_name(),
250-
feature_pair_validation.base_dataset_name(),
251-
feature_pair_validation.feature_base_path(), validation, result));
252254
}
253255
}
254256
}

tensorflow_data_validation/anomalies/custom_validation_test.cc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,11 @@ TEST(CustomValidationTest, TestPairValidation) {
168168
severity: ERROR
169169
description: 'Test feature has too many zeros.'
170170
}
171+
validations {
172+
sql_expression: 'feature_test.num_stats.num_zeros > feature_base.num_stats.num_zeros'
173+
severity: ERROR
174+
description: 'Base feature has too few zeros.'
175+
}
171176
})pb");
172177
metadata::v0::Anomalies expected_anomalies = ParseTextProtoOrDie<
173178
metadata::v0::Anomalies>(

0 commit comments

Comments
 (0)