array( 'id' => 'bigint unsigned', 'attempt_uuid' => 'char(36)', 'appointment_id' => 'bigint unsigned', 'template_key' => 'varchar(40)', 'recipient_role' => 'varchar(10)', 'content_revision' => 'char(64)', 'result' => 'varchar(12)', 'occurred_at' => 'datetime' ) ), array( 'notification_attempts' => array( array( 'id' ), array( 'attempt_uuid' ) ) ) ); if ( ! $present ) { return false; } global $wpdb; $table = $wpdb->prefix . 'abientot_notification_attempts'; $engine = $wpdb->get_var( $wpdb->prepare( 'SELECT ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=%s', $table ) ); if ( $wpdb->last_error || strtoupper( (string) $engine ) !== 'INNODB' ) { throw new \RuntimeException( 'Notification storage must support transactional erasure.' ); } return true; } }