/**
 * @package wpml-core
 */
function update_gettext_context_schema()
{
    if (!icl_table_column_exists('icl_strings', 'domain_name_context_md5')) {
        $columns_definitions = array();
        if (!icl_table_column_exists('icl_strings', 'gettext_context')) {
            $columns_definitions[] = array('action' => 'ADD', 'name' => 'gettext_context', 'type' => 'TEXT', 'null' => false, 'after' => 'status');
        }
        $columns_definitions[] = array('action' => 'ADD', 'name' => 'domain_name_context_md5', 'type' => 'VARCHAR(32)', 'charset' => 'LATIN1', 'null' => false, 'default' => '', 'after' => 'gettext_context');
        if (icl_alter_table_columns('icl_strings', $columns_definitions)) {
            if (icl_table_index_exists('icl_strings', 'context_name')) {
                if (icl_drop_table_index('icl_strings', 'context_name')) {
                }
            }
            if (icl_table_index_exists('icl_strings', 'context_name_gettext_context')) {
                if (icl_drop_table_index('icl_strings', 'context_name_gettext_context')) {
                }
            }
        }
        update_domain_name_context();
        $index_definition = array('name' => 'uc_domain_name_context_md5', 'type' => 'BTREE', 'choice' => 'UNIQUE', 'columns' => array('domain_name_context_md5'));
        icl_create_table_index('icl_strings', $index_definition);
    }
    if (icl_table_column_exists('icl_strings', 'gettext_context_md5')) {
        $columns_definitions = array(array('action' => 'DROP', 'name' => 'gettext_context_md5'));
        icl_alter_table_columns('icl_strings', $columns_definitions);
    }
}
function update_icl_strings_charset_and_collations()
{
    global $wpdb;
    if (!icl_table_column_exists('icl_strings', 'domain_name_context_md5')) {
        include_once __DIR__ . '/upgrade-3.2.3.php';
    }
    $collate = false;
    if (method_exists($wpdb, 'has_cap') && $wpdb->has_cap('collation')) {
        $collate = true;
    }
    $language_data = upgrade_3_5_1_get_language_charset_and_collation();
    $sql_template = "ALTER TABLE `{$wpdb->prefix}%s` MODIFY `%s` VARCHAR(%d) CHARACTER SET %s %s";
    $fields = array(array('table' => 'icl_strings', 'column' => 'name', 'size' => WPML_STRING_TABLE_NAME_CONTEXT_LENGTH, 'charset' => 'UTF8', 'collation' => $collate ? 'COLLATE utf8_general_ci' : ''), array('table' => 'icl_strings', 'column' => 'context', 'size' => WPML_STRING_TABLE_NAME_CONTEXT_LENGTH, 'charset' => 'UTF8', 'collation' => $collate ? 'COLLATE utf8_general_ci' : ''), array('table' => 'icl_strings', 'column' => 'domain_name_context_md5', 'size' => 32, 'charset' => 'LATIN1', 'collation' => $collate ? 'COLLATE latin1_general_ci' : ''));
    foreach ($fields as $setting) {
        if ($wpdb->query("SHOW TABLES LIKE '{$wpdb->prefix}{$setting['table']}'")) {
            $sql = sprintf($sql_template, $setting['table'], $setting['column'], $setting['size'], $setting['charset'], $setting['collation']);
            if ($wpdb->query($sql) === false) {
                throw new Exception($wpdb->last_error);
            }
        }
    }
}
 function check_db_for_gettext_context()
 {
     $string_settings = apply_filters('wpml_get_setting', false, 'st');
     if (!isset($string_settings['db_ok_for_gettext_context'])) {
         if (function_exists('icl_table_column_exists') && icl_table_column_exists('icl_strings', 'domain_name_context_md5')) {
             $string_settings['db_ok_for_gettext_context'] = true;
             do_action('wpml_set_setting', 'st', $string_settings, true);
         }
     }
 }