magento-lts
magento-lts copied to clipboard
Syntax error or access violation: 1118 Row size too large
Preconditions (*)
- OpenMage 20.0.1
- MariaDB 10.2
Steps to reproduce (*)
- Create a lot of varchar (255) product attributes
- Set Catalog Flat Products / Categories to no
- Run an indexing process using n98-magerun to show the errors because they're being supressed.
Expected result (*)
- Reindexing works correctly. I think that the catalog_product_flat indexer is not needed to run if we don't use flat catalog data in the backend. Perhaps we could add a config check before executing it?
I don't know if this indexer has any other significance though.
Actual result (*)
- Receive a mysql error
Reindex finished with error message "SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
In my case the query executed was
CREATE TABLE `catalog_product_flat_1` (
`entity_id` int UNSIGNED NOT NULL COMMENT 'entity_id' ,
`attribute_set_id` smallint UNSIGNED NOT NULL default '0' COMMENT 'attribute_set_id' ,
`type_id` varchar(32) NOT NULL default 'simple' COMMENT 'type_id' ,
`adiabroxh` int NULL COMMENT 'adiabroxh' ,
`adiabroxh_value` varchar(255) NULL COMMENT 'adiabroxh_value' ,
`antikollhtikes_plakes` int NULL COMMENT 'antikollhtikes_plakes' ,
`antikollhtikes_plakes_value` varchar(255) NULL COMMENT 'antikollhtikes_plakes_value' ,
`antikollhtikh_bash` int NULL COMMENT 'antikollhtikh_bash' ,
`antikollhtikh_bash_value` varchar(255) NULL COMMENT 'antikollhtikh_bash_value' ,
`antikollhtikh_epifaneia` int NULL COMMENT 'antikollhtikh_epifaneia' ,
`antikollhtikh_epifaneia_value` varchar(255) NULL COMMENT 'antikollhtikh_epifaneia_value' ,
`antikollhtikh_epistrwsh` int NULL COMMENT 'antikollhtikh_epistrwsh' ,
`antikollhtikh_epistrwsh_value` varchar(255) NULL COMMENT 'antikollhtikh_epistrwsh_value' ,
`antikradasmiko_dapedo` int NULL COMMENT 'antikradasmiko_dapedo' ,
`antikradasmiko_dapedo_value` varchar(255) NULL COMMENT 'antikradasmiko_dapedo_value' ,
`antiolisthhtikh_bash` int NULL COMMENT 'antiolisthhtikh_bash' ,
`antiolisthhtikh_bash_value` varchar(255) NULL COMMENT 'antiolisthhtikh_bash_value' ,
`antithermika_toixwmata` int NULL COMMENT 'antithermika_toixwmata' ,
`antithermika_toixwmata_value` varchar(255) NULL COMMENT 'antithermika_toixwmata_value' ,
`apodosh_katharismoy_se_dapedo` int NULL COMMENT 'apodosh_katharismoy_se_dapedo' ,
`apodosh_katharismoy_se_dapedo_value` varchar(255) NULL COMMENT 'apodosh_katharismoy_se_dapedo_value' ,
`apodosh_katharismoy_se_xalia` int NULL COMMENT 'apodosh_katharismoy_se_xalia' ,
`apodosh_katharismoy_se_xalia_value` varchar(255) NULL COMMENT 'apodosh_katharismoy_se_xalia_value' ,
`apokrish_syxnothtas` int NULL COMMENT 'apokrish_syxnothtas' ,
`apokrish_syxnothtas_value` varchar(255) NULL COMMENT 'apokrish_syxnothtas_value' ,
`aporrofhsh` int NULL COMMENT 'aporrofhsh' ,
`aporrofhsh_value` varchar(255) NULL COMMENT 'aporrofhsh_value' ,
`apospwmenh_rabdos` int NULL COMMENT 'apospwmenh_rabdos' ,
`apospwmenh_rabdos_value` varchar(255) NULL COMMENT 'apospwmenh_rabdos_value' ,
`arithmos_eksodwn_neroy` int NULL COMMENT 'arithmos_eksodwn_neroy' ,
`arithmos_eksodwn_neroy_value` varchar(255) NULL COMMENT 'arithmos_eksodwn_neroy_value' ,
`arithmos_estiwn` int NULL COMMENT 'arithmos_estiwn' ,
`arithmos_estiwn_value` varchar(255) NULL COMMENT 'arithmos_estiwn_value' ,
`arithmos_hxeiwn` int NULL COMMENT 'arithmos_hxeiwn' ,
`arithmos_hxeiwn_value` varchar(255) NULL COMMENT 'arithmos_hxeiwn_value' ,
`arithmos_lampthrwn` int NULL COMMENT 'arithmos_lampthrwn' ,
`arithmos_lampthrwn_value` varchar(255) NULL COMMENT 'arithmos_lampthrwn_value' ,
`aytomath_apenergopoihsh` int NULL COMMENT 'aytomath_apenergopoihsh' ,
`aytomath_apenergopoihsh_value` varchar(255) NULL COMMENT 'aytomath_apenergopoihsh_value' ,
`aytonomia` int NULL COMMENT 'aytonomia' ,
`aytonomia_value` varchar(255) NULL COMMENT 'aytonomia_value' ,
`barcode` varchar(255) NULL COMMENT 'barcode' ,
`bathmos_steganothtas` int NULL COMMENT 'bathmos_steganothtas' ,
`bathmos_steganothtas_value` varchar(255) NULL COMMENT 'bathmos_steganothtas_value' ,
`cost` decimal(12,4) NULL COMMENT 'cost' ,
`created_at` timestamp NULL default NULL COMMENT 'created_at' ,
`diakopths_on_/_off` int NULL COMMENT 'diakopths_on_/_off' ,
`diakopths_on_/_off_value` varchar(255) NULL COMMENT 'diakopths_on_/_off_value' ,
`diakosmhtika_eidh` int NULL COMMENT 'diakosmhtika_eidh' ,
`diakosmhtika_eidh_value` varchar(255) NULL COMMENT 'diakosmhtika_eidh_value' ,
`diarkeia_mpatarias` int NULL COMMENT 'diarkeia_mpatarias' ,
`diarkeia_mpatarias_value` varchar(255) NULL COMMENT 'diarkeia_mpatarias_value' ,
`diastash` int NULL COMMENT 'diastash' ,
`diastash_value` varchar(255) NULL COMMENT 'diastash_value' ,
`dorean_metaforika` varchar(255) NULL COMMENT 'dorean_metaforika' ,
`eidos` int NULL COMMENT 'eidos' ,
`eidos_value` varchar(255) NULL COMMENT 'eidos_value' ,
`eksarthmata` int NULL COMMENT 'eksarthmata' ,
`eksarthmata_value` varchar(255) NULL COMMENT 'eksarthmata_value' ,
`eksodos_eikonas` int NULL COMMENT 'eksodos_eikonas' ,
`eksodos_eikonas_value` varchar(255) NULL COMMENT 'eksodos_eikonas_value' ,
`elaxisth_/_megisth_taxythta` int NULL COMMENT 'elaxisth_/_megisth_taxythta' ,
`elaxisth_/_megisth_taxythta_value` varchar(255) NULL COMMENT 'elaxisth_/_megisth_taxythta_value' ,
`embeleia` int NULL COMMENT 'embeleia' ,
`embeleia_value` varchar(255) NULL COMMENT 'embeleia_value' ,
`energeiakh_klash` int NULL COMMENT 'energeiakh_klash' ,
`energeiakh_klash_value` varchar(255) NULL COMMENT 'energeiakh_klash_value' ,
`energeiakh_klash_psykshs` int NULL COMMENT 'energeiakh_klash_psykshs' ,
`energeiakh_klash_psykshs_value` varchar(255) NULL COMMENT 'energeiakh_klash_psykshs_value' ,
`energeiakh_klash_thermanshs` int NULL COMMENT 'energeiakh_klash_thermanshs' ,
`energeiakh_klash_thermanshs_value` varchar(255) NULL COMMENT 'energeiakh_klash_thermanshs_value' ,
`epipedo_thoryboy` int NULL COMMENT 'epipedo_thoryboy' ,
`epipedo_thoryboy_value` varchar(255) NULL COMMENT 'epipedo_thoryboy_value' ,
`featured` smallint NULL COMMENT 'featured' ,
`filtro` int NULL COMMENT 'filtro' ,
`filtro_value` varchar(255) NULL COMMENT 'filtro_value' ,
`fwtismos` int NULL COMMENT 'fwtismos' ,
`fwtismos_value` varchar(255) NULL COMMENT 'fwtismos_value' ,
`geysh` int NULL COMMENT 'geysh' ,
`geysh_value` varchar(255) NULL COMMENT 'geysh_value' ,
`gia_syskeyes` int NULL COMMENT 'gia_syskeyes' ,
`gia_syskeyes_value` varchar(255) NULL COMMENT 'gia_syskeyes_value' ,
`gift_message_available` smallint NULL COMMENT 'gift_message_available' ,
`gwnia_theashs` int NULL COMMENT 'gwnia_theashs' ,
`gwnia_theashs_value` varchar(255) NULL COMMENT 'gwnia_theashs_value' ,
`has_options` smallint NOT NULL default '0' COMMENT 'has_options' ,
`image_label` varchar(255) NULL COMMENT 'image_label' ,
`io_arxiki` varchar(255) NULL COMMENT 'io_arxiki' ,
`io_availability` int NULL COMMENT 'io_availability' ,
`io_availability_value` varchar(255) NULL COMMENT 'io_availability_value' ,
`io_discount` varchar(255) NULL COMMENT 'io_discount' ,
`io_eggyisi` smallint NULL COMMENT 'io_eggyisi' ,
`io_skroutz_exclude` smallint NULL COMMENT 'io_skroutz_exclude' ,
`io_skroutz_mpn` text NULL COMMENT 'io_skroutz_mpn' ,
`io_spm_id` varchar(255) NULL COMMENT 'io_spm_id' ,
`io_video` varchar(255) NULL COMMENT 'io_video' ,
`isxys` int NULL COMMENT 'isxys' ,
`isxys_value` varchar(255) NULL COMMENT 'isxys_value' ,
`isxys_boyrtsas` int NULL COMMENT 'isxys_boyrtsas' ,
`isxys_boyrtsas_value` varchar(255) NULL COMMENT 'isxys_boyrtsas_value' ,
`isxys_gkril` int NULL COMMENT 'isxys_gkril' ,
`isxys_gkril_value` varchar(255) NULL COMMENT 'isxys_gkril_value' ,
`isxys_mikrokymatwn` int NULL COMMENT 'isxys_mikrokymatwn' ,
`isxys_mikrokymatwn_value` varchar(255) NULL COMMENT 'isxys_mikrokymatwn_value' ,
`isxys_myloy` int NULL COMMENT 'isxys_myloy' ,
`isxys_myloy_value` varchar(255) NULL COMMENT 'isxys_myloy_value' ,
`isxys_odontoboyrtsas` int NULL COMMENT 'isxys_odontoboyrtsas' ,
`isxys_odontoboyrtsas_value` varchar(255) NULL COMMENT 'isxys_odontoboyrtsas_value' ,
`isxys_plyshs` int NULL COMMENT 'isxys_plyshs' ,
`isxys_plyshs_value` varchar(255) NULL COMMENT 'isxys_plyshs_value' ,
`isxys_sesoyar` int NULL COMMENT 'isxys_sesoyar' ,
`isxys_sesoyar_value` varchar(255) NULL COMMENT 'isxys_sesoyar_value' ,
`isxys_stypsimatos` int NULL COMMENT 'isxys_stypsimatos' ,
`isxys_stypsimatos_value` varchar(255) NULL COMMENT 'isxys_stypsimatos_value' ,
`is_recurring` smallint NULL COMMENT 'is_recurring' ,
`kados` int NULL COMMENT 'kados' ,
`kados_value` varchar(255) NULL COMMENT 'kados_value' ,
`kalykas_lampthra` int NULL COMMENT 'kalykas_lampthra' ,
`kalykas_lampthra_value` varchar(255) NULL COMMENT 'kalykas_lampthra_value' ,
`kathetos_atmos` int NULL COMMENT 'kathetos_atmos' ,
`kathetos_atmos_value` varchar(255) NULL COMMENT 'kathetos_atmos_value' ,
`koryfaio_poliseis` varchar(255) NULL COMMENT 'koryfaio_poliseis' ,
`links_exist` int NULL COMMENT 'links_exist' ,
`links_purchased_separately` int NULL COMMENT 'links_purchased_separately' ,
`links_title` varchar(255) NULL COMMENT 'links_title' ,
`manufacturer` int NULL COMMENT 'manufacturer' ,
`manufacturer_value` varchar(255) NULL COMMENT 'manufacturer_value' ,
`megethos` int NULL COMMENT 'megethos' ,
`megethos_value` varchar(255) NULL COMMENT 'megethos_value' ,
`megisth_fortwsh` int NULL COMMENT 'megisth_fortwsh' ,
`megisth_fortwsh_value` varchar(255) NULL COMMENT 'megisth_fortwsh_value' ,
`megisth_isxys_plyshs` int NULL COMMENT 'megisth_isxys_plyshs' ,
`megisth_isxys_plyshs_value` varchar(255) NULL COMMENT 'megisth_isxys_plyshs_value' ,
`megistos_xronos_skoypismatos` int NULL COMMENT 'megistos_xronos_skoypismatos' ,
`megistos_xronos_skoypismatos_value` varchar(255) NULL COMMENT 'megistos_xronos_skoypismatos_value' ,
`megisto_baros` int NULL COMMENT 'megisto_baros' ,
`megisto_baros_value` varchar(255) NULL COMMENT 'megisto_baros_value' ,
`megisto_baros_elkshs` int NULL COMMENT 'megisto_baros_elkshs' ,
`megisto_baros_elkshs_value` varchar(255) NULL COMMENT 'megisto_baros_elkshs_value' ,
`megisto_baros_xrhsth` int NULL COMMENT 'megisto_baros_xrhsth' ,
`megisto_baros_xrhsth_value` varchar(255) NULL COMMENT 'megisto_baros_xrhsth_value' ,
`megisto_bathos` int NULL COMMENT 'megisto_bathos' ,
`megisto_bathos_value` varchar(255) NULL COMMENT 'megisto_bathos_value' ,
`megisto_reyma` int NULL COMMENT 'megisto_reyma' ,
`megisto_reyma_value` varchar(255) NULL COMMENT 'megisto_reyma_value' ,
`megisto_ypsos` int NULL COMMENT 'megisto_ypsos' ,
`megisto_ypsos_value` varchar(255) NULL COMMENT 'megisto_ypsos_value' ,
`mesh_apodotikothta` int NULL COMMENT 'mesh_apodotikothta' ,
`mesh_apodotikothta_value` varchar(255) NULL COMMENT 'mesh_apodotikothta_value' ,
`metrhsh_deikth_mazas_swmatos` int NULL COMMENT 'metrhsh_deikth_mazas_swmatos' ,
`metrhsh_deikth_mazas_swmatos_value` varchar(255) NULL COMMENT 'metrhsh_deikth_mazas_swmatos_value' ,
`metrhsh_kardiakwn_sfygmwn` int NULL COMMENT 'metrhsh_kardiakwn_sfygmwn' ,
`metrhsh_kardiakwn_sfygmwn_value` varchar(255) NULL COMMENT 'metrhsh_kardiakwn_sfygmwn_value' ,
`mnhmes` int NULL COMMENT 'mnhmes' ,
`mnhmes_value` varchar(255) NULL COMMENT 'mnhmes_value' ,
`mnhmh_ram` int NULL COMMENT 'mnhmh_ram' ,
`mnhmh_ram_value` varchar(255) NULL COMMENT 'mnhmh_ram_value' ,
`moter` int NULL COMMENT 'moter' ,
`moter_value` varchar(255) NULL COMMENT 'moter_value' ,
`motiba_beloniwn` int NULL COMMENT 'motiba_beloniwn' ,
`motiba_beloniwn_value` varchar(255) NULL COMMENT 'motiba_beloniwn_value' ,
`mpalta` int NULL COMMENT 'mpalta' ,
`mpalta_value` varchar(255) NULL COMMENT 'mpalta_value' ,
`mpataria` int NULL COMMENT 'mpataria' ,
`mpataria_value` varchar(255) NULL COMMENT 'mpataria_value' ,
`mpataries` int NULL COMMENT 'mpataries' ,
`mpataries_value` varchar(255) NULL COMMENT 'mpataries_value' ,
`msrp` decimal(12,4) NULL COMMENT 'msrp' ,
`msrp_display_actual_price_type` varchar(255) NULL COMMENT 'msrp_display_actual_price_type' ,
`msrp_enabled` smallint NULL COMMENT 'msrp_enabled' ,
`name` varchar(255) NULL COMMENT 'name' ,
`newsletter` smallint NULL COMMENT 'newsletter' ,
`news_from_date` datetime NULL COMMENT 'news_from_date' ,
`news_to_date` datetime NULL COMMENT 'news_to_date' ,
`onomastikh_apodosh` int NULL COMMENT 'onomastikh_apodosh' ,
`onomastikh_apodosh_value` varchar(255) NULL COMMENT 'onomastikh_apodosh_value' ,
`othonh` int NULL COMMENT 'othonh' ,
`othonh_value` varchar(255) NULL COMMENT 'othonh_value' ,
`othonh_endeiksewn` int NULL COMMENT 'othonh_endeiksewn' ,
`othonh_endeiksewn_value` varchar(255) NULL COMMENT 'othonh_endeiksewn_value' ,
`palmikes_kinhseis_ana_lepto` int NULL COMMENT 'palmikes_kinhseis_ana_lepto' ,
`palmikes_kinhseis_ana_lepto_value` varchar(255) NULL COMMENT 'palmikes_kinhseis_ana_lepto_value' ,
`palmoi_fwtos` int NULL COMMENT 'palmoi_fwtos' ,
`palmoi_fwtos_value` varchar(255) NULL COMMENT 'palmoi_fwtos_value' ,
`paragwgh_atmoy` int NULL COMMENT 'paragwgh_atmoy' ,
`paragwgh_atmoy_value` varchar(255) NULL COMMENT 'paragwgh_atmoy_value' ,
`perimetro_meshs` int NULL COMMENT 'perimetro_meshs' ,
`perimetro_meshs_value` varchar(255) NULL COMMENT 'perimetro_meshs_value' ,
`peripoihsh` int NULL COMMENT 'peripoihsh' ,
`peripoihsh_value` varchar(255) NULL COMMENT 'peripoihsh_value' ,
`peristrefomenh_bash` int NULL COMMENT 'peristrefomenh_bash' ,
`peristrefomenh_bash_value` varchar(255) NULL COMMENT 'peristrefomenh_bash_value' ,
`piesh` int NULL COMMENT 'piesh' ,
`piesh_value` varchar(255) NULL COMMENT 'piesh_value' ,
`posothta_se_gr` int NULL COMMENT 'posothta_se_gr' ,
`posothta_se_gr_value` varchar(255) NULL COMMENT 'posothta_se_gr_value' ,
`posothta_se_kg` int NULL COMMENT 'posothta_se_kg' ,
`posothta_se_kg_value` varchar(255) NULL COMMENT 'posothta_se_kg_value' ,
`posothta_se_ml` int NULL COMMENT 'posothta_se_ml' ,
`posothta_se_ml_value` varchar(255) NULL COMMENT 'posothta_se_ml_value' ,
`posothta_se_temaxia` int NULL COMMENT 'posothta_se_temaxia' ,
`posothta_se_temaxia_value` varchar(255) NULL COMMENT 'posothta_se_temaxia_value' ,
`price` decimal(12,4) NULL COMMENT 'price' ,
`price_type` int NULL COMMENT 'price_type' ,
`price_view` int NULL COMMENT 'price_view' ,
`programmata` int NULL COMMENT 'programmata' ,
`programmata_value` varchar(255) NULL COMMENT 'programmata_value' ,
`programmatismenes_leitoyrgies` int NULL COMMENT 'programmatismenes_leitoyrgies' ,
`programmatismenes_leitoyrgies_value` varchar(255) NULL COMMENT 'programmatismenes_leitoyrgies_value' ,
`pshfiakes_endeikseis` int NULL COMMENT 'pshfiakes_endeikseis' ,
`pshfiakes_endeikseis_value` varchar(255) NULL COMMENT 'pshfiakes_endeikseis_value' ,
`pshfiakh_othonh` int NULL COMMENT 'pshfiakh_othonh' ,
`pshfiakh_othonh_value` varchar(255) NULL COMMENT 'pshfiakh_othonh_value' ,
`rafia` int NULL COMMENT 'rafia' ,
`rafia_value` varchar(255) NULL COMMENT 'rafia_value' ,
`recurring_profile` text NULL COMMENT 'recurring_profile' ,
`required_options` smallint UNSIGNED NOT NULL default '0' COMMENT 'required_options' ,
`rythmish_thermokrasias` int NULL COMMENT 'rythmish_thermokrasias' ,
`rythmish_thermokrasias_value` varchar(255) NULL COMMENT 'rythmish_thermokrasias_value' ,
`rythmizomenh_thermokrasia` int NULL COMMENT 'rythmizomenh_thermokrasia' ,
`rythmizomenh_thermokrasia_value` varchar(255) NULL COMMENT 'rythmizomenh_thermokrasia_value' ,
`shipment_type` int NULL COMMENT 'shipment_type' ,
`short_description` text NULL COMMENT 'short_description' ,
`size` int NULL COMMENT 'size' ,
`size_value` varchar(255) NULL COMMENT 'size_value' ,
`sku` varchar(64) NULL COMMENT 'sku' ,
`sku_type` int NULL COMMENT 'sku_type' ,
`small_image` varchar(255) NULL COMMENT 'small_image' ,
`small_image_label` varchar(255) NULL COMMENT 'small_image_label' ,
`special_from_date` datetime NULL COMMENT 'special_from_date' ,
`special_price` decimal(12,4) NULL COMMENT 'special_price' ,
`special_to_date` datetime NULL COMMENT 'special_to_date' ,
`status` smallint UNSIGNED NULL COMMENT 'status' ,
`steno_stomio` int NULL COMMENT 'steno_stomio' ,
`steno_stomio_value` varchar(255) NULL COMMENT 'steno_stomio_value' ,
`syndesh_apoxeteyshs` int NULL COMMENT 'syndesh_apoxeteyshs' ,
`syndesh_apoxeteyshs_value` varchar(255) NULL COMMENT 'syndesh_apoxeteyshs_value' ,
`taxythtes` int NULL COMMENT 'taxythtes' ,
`taxythtes_value` varchar(255) NULL COMMENT 'taxythtes_value' ,
`tax_class_id` int UNSIGNED NULL COMMENT 'tax_class_id' ,
`thermikh_apodosh` int NULL COMMENT 'thermikh_apodosh' ,
`thermikh_apodosh_value` varchar(255) NULL COMMENT 'thermikh_apodosh_value' ,
`thermokrasia` int NULL COMMENT 'thermokrasia' ,
`thermokrasia_value` varchar(255) NULL COMMENT 'thermokrasia_value' ,
`thermokrasia_psykshs` int NULL COMMENT 'thermokrasia_psykshs' ,
`thermokrasia_psykshs_value` varchar(255) NULL COMMENT 'thermokrasia_psykshs_value' ,
`thorybos_plyshs` int NULL COMMENT 'thorybos_plyshs' ,
`thorybos_plyshs_value` varchar(255) NULL COMMENT 'thorybos_plyshs_value' ,
`thumbnail` varchar(255) NULL COMMENT 'thumbnail' ,
`thumbnail_label` varchar(255) NULL COMMENT 'thumbnail_label' ,
`thyres_fortishs` int NULL COMMENT 'thyres_fortishs' ,
`thyres_fortishs_value` varchar(255) NULL COMMENT 'thyres_fortishs_value' ,
`trofodosia` int NULL COMMENT 'trofodosia' ,
`trofodosia_value` varchar(255) NULL COMMENT 'trofodosia_value' ,
`trofodosia_boyrtsas` int NULL COMMENT 'trofodosia_boyrtsas' ,
`trofodosia_boyrtsas_value` varchar(255) NULL COMMENT 'trofodosia_boyrtsas_value' ,
`typos_mpatarias` int NULL COMMENT 'typos_mpatarias' ,
`typos_mpatarias_value` varchar(255) NULL COMMENT 'typos_mpatarias_value' ,
`typos_swmatos` int NULL COMMENT 'typos_swmatos' ,
`typos_swmatos_value` varchar(255) NULL COMMENT 'typos_swmatos_value' ,
`typos_syskeyhs` int NULL COMMENT 'typos_syskeyhs' ,
`typos_syskeyhs_value` varchar(255) NULL COMMENT 'typos_syskeyhs_value' ,
`updated_at` timestamp NULL default NULL COMMENT 'updated_at' ,
`url_key` varchar(255) NULL COMMENT 'url_key' ,
`url_path` varchar(255) NULL COMMENT 'url_path' ,
`usb_thyres` int NULL COMMENT 'usb_thyres' ,
`usb_thyres_value` varchar(255) NULL COMMENT 'usb_thyres_value' ,
`vendor` int NULL COMMENT 'vendor' ,
`vendor_value` varchar(255) NULL COMMENT 'vendor_value' ,
`visibility` smallint UNSIGNED NULL COMMENT 'visibility' ,
`weight` decimal(12,4) NULL COMMENT 'weight' ,
`weight_type` int NULL COMMENT 'weight_type' ,
`xeirolabes` int NULL COMMENT 'xeirolabes' ,
`xeirolabes_value` varchar(255) NULL COMMENT 'xeirolabes_value' ,
`xronos_fortishs_se_wres` int NULL COMMENT 'xronos_fortishs_se_wres' ,
`xronos_fortishs_se_wres_value` varchar(255) NULL COMMENT 'xronos_fortishs_se_wres_value' ,
`xronos_leitoyrgias_mpatarias` int NULL COMMENT 'xronos_leitoyrgias_mpatarias' ,
`xronos_leitoyrgias_mpatarias_value` varchar(255) NULL COMMENT 'xronos_leitoyrgias_mpatarias_value' ,
`xronos_proetoimasias` int NULL COMMENT 'xronos_proetoimasias' ,
`xronos_proetoimasias_value` varchar(255) NULL COMMENT 'xronos_proetoimasias_value' ,
`xwrhtikothta` int NULL COMMENT 'xwrhtikothta' ,
`xwrhtikothta_value` varchar(255) NULL COMMENT 'xwrhtikothta_value' ,
`xwrhtikothta_doxeioy_neroy` int NULL COMMENT 'xwrhtikothta_doxeioy_neroy' ,
`xwrhtikothta_doxeioy_neroy_value` varchar(255) NULL COMMENT 'xwrhtikothta_doxeioy_neroy_value' ,
`xwrhtikothta_kadoy` int NULL COMMENT 'xwrhtikothta_kadoy' ,
`xwrhtikothta_kadoy_value` varchar(255) NULL COMMENT 'xwrhtikothta_kadoy_value' ,
`xwrhtikothta_mpatarias` int NULL COMMENT 'xwrhtikothta_mpatarias' ,
`xwrhtikothta_mpatarias_value` varchar(255) NULL COMMENT 'xwrhtikothta_mpatarias_value' ,
`xwrhtikothta_mpoykaliwn` int NULL COMMENT 'xwrhtikothta_mpoykaliwn' ,
`xwrhtikothta_mpoykaliwn_value` varchar(255) NULL COMMENT 'xwrhtikothta_mpoykaliwn_value' ,
`xwrhtikothta_myloy` int NULL COMMENT 'xwrhtikothta_myloy' ,
`xwrhtikothta_myloy_value` varchar(255) NULL COMMENT 'xwrhtikothta_myloy_value' ,
`xwrhtikothta_se_gb` int NULL COMMENT 'xwrhtikothta_se_gb' ,
`xwrhtikothta_se_gb_value` varchar(255) NULL COMMENT 'xwrhtikothta_se_gb_value' ,
`xwrhtikothta_toy_lebhta` int NULL COMMENT 'xwrhtikothta_toy_lebhta' ,
`xwrhtikothta_toy_lebhta_value` varchar(255) NULL COMMENT 'xwrhtikothta_toy_lebhta_value' ,
`yliko` int NULL COMMENT 'yliko' ,
`yliko_value` varchar(255) NULL COMMENT 'yliko_value' ,
`yliko_doxeioy` int NULL COMMENT 'yliko_doxeioy' ,
`yliko_doxeioy_value` varchar(255) NULL COMMENT 'yliko_doxeioy_value' ,
`yliko_kadoy` int NULL COMMENT 'yliko_kadoy' ,
`yliko_kadoy_value` varchar(255) NULL COMMENT 'yliko_kadoy_value' ,
`yliko_kapakioy` int NULL COMMENT 'yliko_kapakioy' ,
`yliko_kapakioy_value` varchar(255) NULL COMMENT 'yliko_kapakioy_value' ,
`yliko_lepidas` int NULL COMMENT 'yliko_lepidas' ,
`yliko_lepidas_value` varchar(255) NULL COMMENT 'yliko_lepidas_value' ,
`yliko_patoy` int NULL COMMENT 'yliko_patoy' ,
`yliko_patoy_value` varchar(255) NULL COMMENT 'yliko_patoy_value' ,
`yliko_skeletoy` int NULL COMMENT 'yliko_skeletoy' ,
`yliko_skeletoy_value` varchar(255) NULL COMMENT 'yliko_skeletoy_value' ,
`yposthrizei` int NULL COMMENT 'yposthrizei' ,
`yposthrizei_value` varchar(255) NULL COMMENT 'yposthrizei_value' ,
PRIMARY KEY (`entity_id`),
INDEX `IDX_CATALOG_PRODUCT_FLAT_1_TYPE_ID` (`type_id`),
INDEX `IDX_CATALOG_PRODUCT_FLAT_1_ATTRIBUTE_SET_ID` (`attribute_set_id`),
INDEX `IDX_CATALOG_PRODUCT_FLAT_1_IO_DISCOUNT` (`io_discount`),
INDEX `IDX_CATALOG_PRODUCT_FLAT_1_MANUFACTURER` (`manufacturer`),
INDEX `IDX_CATALOG_PRODUCT_FLAT_1_MANUFACTURER_VALUE` (`manufacturer_value`),
INDEX `IDX_CATALOG_PRODUCT_FLAT_1_NAME` (`name`),
INDEX `IDX_CATALOG_PRODUCT_FLAT_1_PRICE` (`price`),
INDEX `IDX_CATALOG_PRODUCT_FLAT_1_STATUS` (`status`),
INDEX `IDX_CATALOG_PRODUCT_FLAT_1_WEIGHT` (`weight`),
CONSTRAINT `FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_ID` FOREIGN KEY (`entity_id`) REFERENCES `catalog_product_entity` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE
) COMMENT='Catalog Product Flat (Store 1)' ENGINE=INNODB charset=utf8 COLLATE=utf8_general_ci
Solution can be to configure MariaDB to use file_per_table with Barracuda format as Barracuda only uses a 20 byte pointer for variable length types. The following options in my.cnf may help:
[mysqld]
innodb_file_per_table=1
innodb_file_format = Barracuda
The hint for the innodb_file_format is usefull, should also work for MySql
https://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html
We cant really solve this on OpenMage side, as we probably would need to change the flat table approach.
Any suggestions what we could do on our side here to improve the situation?
Out of interest, does the error only happen using magerun, or also using the shell/index script?
The hint for the innodb_file_format helps to mitigate the issue allowing for like 2500 attributes instead of 250 and it will work on newly created tables. Not all providers will make this change though on their servers.
I think there are some side effects by changing the file format in some edge cases.
@Flyingmana There were some measurements done with a lot of attributes and the flat table approach ended up being slower than EAV approach. In Magento 2 it's no longer recommended to use flat catalog as well.
I was thinking that if the user is not using the flat tables at all, why would the indexer run and fail?
Regarding magerun and shell/indexer.php they both fail but the error is not apparent. For example shell/indexer.php will finish executing after 1second but it will show it ran successfully. The table still won't be created though.
Magerun will show the error.
Important distinction with M2, doesn't it use Elasticsearch for serving the frontend?
I think the current limitations are reasonable for the large majority of users and for the users that hit this limitation hopefully they will find this issue and switch to Barracuda format.
Yes M2 since 2.4 version removed the mysql engine and forces elastic. In prior versions you had a choice
For the record, this error came up for me on a server with Barracuda enabled
MariaDB [(none)]> show global variables like '%innodb_file%'
-> ;
+--------------------------+-----------+
| Variable_name | Value |
+--------------------------+-----------+
| innodb_file_format | Barracuda |
| innodb_file_format_check | ON |
| innodb_file_format_max | Barracuda |
| innodb_file_per_table | ON |
+--------------------------+-----------+
4 rows in set (0.00 sec)
We should add an improved error for this then, but we should try it with flat tables active. (as it may be inteded to not create one when disabled)
I think we should introduce a shell script to check for such things as Database configs and make recommendations, or maybe a magerun extension. Not sure at which point during normal OpenMage usage we could make recommendations there.
I was thinking that if the user is not using the flat tables at all, why would the indexer run and fail?
tested now and it's a magerun bug, our "normal" reindexall doens't reindex flat tables if they're disabled.
So, to me, this issue should closed and opened in the magerun repo.
@fballiano - I agree. This is not an OpenMage issue.