+/**
+ * Executes comments changes made in WordPress 4.3.0.
+ *
+ * @ignore
+ * @since 4.3.0
+ *
+ * @global int $wp_current_db_version Current version.
+ * @global wpdb $wpdb WordPress database abstraction object.
+ */
+function upgrade_430_fix_comments() {
+ global $wp_current_db_version, $wpdb;
+
+ $content_length = $wpdb->get_col_length( $wpdb->comments, 'comment_content' );
+
+ if ( is_wp_error( $content_length ) ) {
+ return;
+ }
+
+ if ( false === $content_length ) {
+ $content_length = array(
+ 'type' => 'byte',
+ 'length' => 65535,
+ );
+ } elseif ( ! is_array( $content_length ) ) {
+ $length = (int) $content_length > 0 ? (int) $content_length : 65535;
+ $content_length = array(
+ 'type' => 'byte',
+ 'length' => $length
+ );
+ }
+
+ if ( 'byte' !== $content_length['type'] || 0 === $content_length['length'] ) {
+ // Sites with malformed DB schemas are on their own.
+ return;
+ }
+
+ $allowed_length = intval( $content_length['length'] ) - 10;
+
+ $comments = $wpdb->get_results(
+ "SELECT `comment_ID` FROM `{$wpdb->comments}`
+ WHERE `comment_date_gmt` > '2015-04-26'
+ AND LENGTH( `comment_content` ) >= {$allowed_length}
+ AND ( `comment_content` LIKE '%<%' OR `comment_content` LIKE '%>%' )"
+ );
+
+ foreach ( $comments as $comment ) {
+ wp_delete_comment( $comment->comment_ID, true );
+ }
+}
+
+/**
+ * Executes changes made in WordPress 4.3.1.
+ *
+ * @ignore
+ * @since 4.3.1
+ */
+function upgrade_431() {
+ // Fix incorrect cron entries for term splitting
+ $cron_array = _get_cron_array();
+ if ( isset( $cron_array['wp_batch_split_terms'] ) ) {
+ unset( $cron_array['wp_batch_split_terms'] );
+ _set_cron_array( $cron_array );
+ }
+}
+
+/**
+ * Executes changes made in WordPress 4.4.0.
+ *
+ * @ignore
+ * @since 4.4.0
+ *
+ * @global int $wp_current_db_version Current version.
+ * @global wpdb $wpdb WordPress database abstraction object.
+ */
+function upgrade_440() {
+ global $wp_current_db_version, $wpdb;
+
+ if ( $wp_current_db_version < 34030 ) {
+ $wpdb->query( "ALTER TABLE {$wpdb->options} MODIFY option_name VARCHAR(191)" );
+ }
+
+ // Remove the unused 'add_users' role.
+ $roles = wp_roles();
+ foreach ( $roles->role_objects as $role ) {
+ if ( $role->has_cap( 'add_users' ) ) {
+ $role->remove_cap( 'add_users' );
+ }
+ }
+}
+
+/**
+ * Executes changes made in WordPress 4.5.0.
+ *
+ * @ignore
+ * @since 4.5.0
+ *
+ * @global int $wp_current_db_version Current database version.
+ * @global wpdb $wpdb WordPress database abstraction object.
+ */
+function upgrade_450() {
+ global $wp_current_db_version, $wpdb;
+
+ if ( $wp_current_db_version < 36180 ) {
+ wp_clear_scheduled_hook( 'wp_maybe_auto_update' );
+ }
+
+ // Remove unused email confirmation options, moved to usermeta.
+ if ( $wp_current_db_version < 36679 && is_multisite() ) {
+ $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name REGEXP '^[0-9]+_new_email$'" );
+ }
+
+ // Remove unused user setting for wpLink.
+ delete_user_setting( 'wplink' );
+}
+