fix(2meet-data-optimizer): compare empty strings correctly when retiring a group
Anti-EAV Lint + Quality Gate / anti-eav-lint (pull_request) Successful in 14s
Tests / Unit Tests (pull_request) Successful in 33s
Tests / PHP Lint (pull_request) Successful in 36s
Tests / Integration Tests (pull_request) Successful in 57s
Tests / PHPCS (pull_request) Successful in 35s
Tests / PHPStan (pull_request) Failing after 50s
Anti-EAV Lint + Quality Gate / anti-eav-lint (pull_request) Successful in 14s
Tests / Unit Tests (pull_request) Successful in 33s
Tests / PHP Lint (pull_request) Successful in 36s
Tests / Integration Tests (pull_request) Successful in 57s
Tests / PHPCS (pull_request) Successful in 35s
Tests / PHPStan (pull_request) Failing after 50s
- retire() read native meta with wpdb::get_col(), which (via get_var()) returns null for an empty string, so a flat '' written back as '' was counted as a mismatch and blocked the retirement. It now reads raw rows with get_results(). - The integration test wpdb stub's get_var() / get_col() now read '' as null like the real wpdb, so tests see WordPress behaviour. - Found writing back the sso group on dev21 / dev22 (picture_url = ''). - Verify: core unit 658 / integration 480 green, phpcs clean - PR: PR-042 follow-up
This commit is contained in:
@@ -168,8 +168,9 @@ final class TMDO_Native_Restorer {
|
||||
if ( '' === $col || ! isset( $row[ $col ] ) ) {
|
||||
continue;
|
||||
}
|
||||
$want = (string) maybe_serialize( TMDO_Type_Caster::from_db( $row[ $col ], $field ) );
|
||||
$native = $wpdb->get_col( $wpdb->prepare( "SELECT meta_value FROM `{$native_table}` WHERE `{$id_col}` = %d AND meta_key = %s", (int) $row[ $id_col ], $field['key'] ) );
|
||||
$want = (string) maybe_serialize( TMDO_Type_Caster::from_db( $row[ $col ], $field ) );
|
||||
// get_results(), not get_col(): wpdb reads an empty string as null.
|
||||
$native = array_column( (array) $wpdb->get_results( $wpdb->prepare( "SELECT meta_value FROM `{$native_table}` WHERE `{$id_col}` = %d AND meta_key = %s", (int) $row[ $id_col ], $field['key'] ), ARRAY_A ), 'meta_value' );
|
||||
if ( array( $want ) !== $native ) {
|
||||
++$result['mismatches'];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user