array( 'appointment_id' => 'bigint unsigned', 'state' => 'varchar(20)', 'revision' => 'bigint unsigned', 'arrived_at' => 'datetime', 'actor_user_id' => 'bigint unsigned', 'updated_at' => 'datetime' ) ), array( 'attendance' => array( array( 'appointment_id' ) ) ) ); if ( ! $present ) { return false; } global $wpdb; $table = $wpdb->prefix . 'abientot_attendance'; $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( 'Attendance storage must support transactional erasure.' ); } return true; } }