function cw_csvxc_get_columns4insert($tbl_name, $src_tbl_name, $tmp_tbl_name = '')
{
    global $csvxc_fmap;
    $ins_into_fields = array();
    $select_fields = array();
    if (empty($tmp_tbl_name)) {
        $tmp_tbl_name = $tbl_name;
    }
    $avail_ins_fields = cw_csvxc_get_table_fields($tmp_tbl_name);
    $avail_src_fields = cw_csvxc_get_table_fields($src_tbl_name);
    foreach ($csvxc_fmap[$src_tbl_name] as $load_field => $load_f_data) {
        if ($load_f_data['table'] == $tbl_name && in_array($load_f_data['field'], $avail_ins_fields) && in_array($load_field, $avail_src_fields)) {
            $ins_into_fields[] = "{$tmp_tbl_name}.`{$load_f_data['field']}`";
            $select_fields[] = "{$src_tbl_name}.`{$load_field}`";
            //$select_fields[] = (!empty($load_f_data['transform'])?$load_f_data['transform']:("$src_tbl_name.`$load_field`"));
        } elseif (isset($load_f_data['alter'])) {
            if ($load_f_data['alter']['table'] == $tbl_name && in_array($load_f_data['alter']['field'], $avail_ins_fields) && in_array($load_field, $avail_src_fields)) {
                $ins_into_fields[] = $tmp_tbl_name . '.`' . $load_f_data['alter']['field'] . '`';
                $select_fields[] = "{$src_tbl_name}.`{$load_field}`";
                //$select_fields[] = (!empty($load_f_data['transform'])?$load_f_data['transform']:("$src_tbl_name.`$load_field`"));
            }
        }
    }
    return array($ins_into_fields, $select_fields);
}
        //            cw_csvxc_logged_query("UPDATE tmp_load_EXTRA_FIELDS SET ACTIVE=IF(ACTIVE='Y', 1,0)");
        cw_csvxc_logged_query("ALTER TABLE tmp_load_EXTRA_FIELDS ADD COLUMN ref_attribute_id INT(11) NOT NULL DEFAULT 0");
        cw_csvxc_logged_query("ALTER TABLE tmp_load_EXTRA_FIELDS ADD COLUMN ref_is_new int(1) not null default 1");
        cw_csvxc_logged_query("UPDATE tmp_load_EXTRA_FIELDS, cw_attributes SET tmp_load_EXTRA_FIELDS.ref_is_new=0, tmp_load_EXTRA_FIELDS.ref_attribute_id=cw_attributes.attribute_id WHERE tmp_load_EXTRA_FIELDS.SERVICE_NAME=cw_attributes.field AND cw_attributes.item_type='P'");
        //        cw_csvxc_logged_query("UPDATE cw_attributes ca, tmp_load_EXTRA_FIELDS tlef SET ca.name=tlef.FIELD, ca.orderby=tlef.ORDERBY, ca.active=tlef.ACTIVE WHERE tlef.SERVICE_NAME=ca.field AND ca.item_type='P' AND ca.addon=''");
        $update_fields = cw_csvxc_make_update_fields_arr('tmp_load_EXTRA_FIELDS', 'cw_attributes', 'SERVICE_NAME');
        cw_csvxc_logged_query("UPDATE cw_attributes, tmp_load_EXTRA_FIELDS SET " . implode(', ', $update_fields) . " WHERE tmp_load_EXTRA_FIELDS.SERVICE_NAME=cw_attributes.field AND cw_attributes.item_type='P' AND cw_attributes.addon=''");
        cw_csvxc_logged_query("INSERT INTO cw_attributes (name, type, field, orderby, item_type, addon) SELECT FIELD, 'text', SERVICE_NAME, ORDERBY, 'P','' FROM tmp_load_EXTRA_FIELDS WHERE ref_attribute_id=0");
        cw_csvxc_logged_query("UPDATE tmp_load_EXTRA_FIELDS tlef, cw_attributes ca SET tlef.ref_attribute_id=ca.attribute_id WHERE tlef.SERVICE_NAME=ca.field AND ca.item_type='P'");
        cw_csvxc_logged_query("REPLACE INTO cw_attributes_classes_assignement (attribute_class_id, attribute_id) SELECT {$default_attr_classid}, ref_attribute_id FROM tmp_load_EXTRA_FIELDS WHERE ref_is_new=1");
    }
}
if (cw_csvxc_is_table_exists('tmp_load_PRODUCTS_EXTRA_FIELD_VALUES') && $csvxc_allowed_sections['tmp_load_PRODUCTS_EXTRA_FIELD_VALUES']) {
    cw_csvxc_set_col_exist_flag('tmp_load_PRODUCTS_EXTRA_FIELD_VALUES');
    if ($csvxc_fmap['tmp_load_PRODUCTS_EXTRA_FIELD_VALUES']['PRODUCTID']['exists_column']) {
        $efv_columns = cw_csvxc_get_table_fields('tmp_load_PRODUCTS_EXTRA_FIELD_VALUES');
        cw_csvxc_logged_query("DELETE tmp_load_PRODUCTS_EXTRA_FIELD_VALUES.* FROM tmp_load_PRODUCTS_EXTRA_FIELD_VALUES LEFT JOIN cw_products ON cw_products.product_id=tmp_load_PRODUCTS_EXTRA_FIELD_VALUES.PRODUCTID WHERE cw_products.product_id IS NULL");
        cw_csvxc_logged_query("ALTER TABLE tmp_load_PRODUCTS_EXTRA_FIELD_VALUES ADD COLUMN ref_is_new int(1) NOT NULL DEFAULT 1");
        foreach ($efv_columns as $ef_colname) {
            if (in_array($ef_colname, array("id_products_extra_field_values", "PRODUCTID", "PRODUCTCODE", "PRODUCT"))) {
                continue;
            }
            $attr_info = cw_query_first("SELECT * FROM cw_attributes WHERE field='{$ef_colname}' AND item_type='P' AND addon in ('', 'custom_saratogawine_magazines','custom_saratogawine_backorder', 'clean_urls')");
            $attr_id = $attr_info['attribute_id'];
            if ($attr_id) {
                if ($attr_info['type'] == 'selectbox') {
                    $id_ef_colname = $ef_colname . "_id";
                    cw_csvxc_logged_query("ALTER TABLE tmp_load_PRODUCTS_EXTRA_FIELD_VALUES ADD COLUMN `{$id_ef_colname}` int(11) NOT NULL DEFAULT 0");
                    cw_csvxc_logged_query("UPDATE tmp_load_PRODUCTS_EXTRA_FIELD_VALUES tlpefv, cw_attributes_default cad SET tlpefv.`{$id_ef_colname}`=cad.attribute_value_id WHERE cad.attribute_id='{$attr_id}' AND cad.value=tlpefv.`{$ef_colname}`");
                    cw_csvxc_logged_query("INSERT INTO cw_attributes_default (value, attribute_id, active, facet) SELECT distinct(`{$ef_colname}`), {$attr_id}, 1, {$attr_info['facet']} FROM tmp_load_PRODUCTS_EXTRA_FIELD_VALUES WHERE `{$id_ef_colname}`=0");
                    cw_csvxc_logged_query("UPDATE tmp_load_PRODUCTS_EXTRA_FIELD_VALUES tlpefv, cw_attributes_default cad SET tlpefv.`{$id_ef_colname}`=cad.attribute_value_id WHERE cad.attribute_id='{$attr_id}' AND cad.value=tlpefv.`{$ef_colname}` AND tlpefv.`{$id_ef_colname}`=0");