Cacti / plugin_reportit

ReportIt Plugin for Cacti
GNU General Public License v2.0
7 stars 9 forks source link

Cache table creation on install #1

Closed smiles1969 closed 6 years ago

smiles1969 commented 7 years ago

I believe I am running into issues with mb4 collation again, due to i18n support. My default charset is mb4.

191 will be the max index field size using mb4 since it's 4 bytes per char instead of 3 with utf8.

191*4 = 764 < 767

Getting the following SQL errors when trying to create the cache tables:

[SQL] CREATE TABLE IF NOT EXISTS reportit_cache_reports ( cache_id varchar(255) NOT NULL default '', id int(11) NOT NULL default '0', description varchar(255) NOT NULL default '', user_id int(11) NOT NULL default '0', template_id int(11) NOT NULL default '0', host_template_id mediumint(8) UNSIGNED NOT NULL DEFAULT 0, data_source_filter varchar(255) NOT NULL DEFAULT '', preset_timespan varchar(255) NOT NULL default '', last_run datetime NOT NULL default '0000-00-00 00:00:00', runtime float NOT NULL default '0', public tinyint(1) NOT NULL default '0', start_date date NOT NULL default '0000-00-00', end_date date NOT NULL default '0000-00-00', ds_description varchar(5000) NOT NULL default '', rs_def varchar(255) NOT NULL default '', sp_def varchar(255) NOT NULL default '', sliding tinyint(1) NOT NULL default '0', present tinyint(1) NOT NULL default '0', scheduled tinyint(1) NOT NULL default '0', autorrdlist tinyint(1) NOT NULL DEFAULT '0', auto_email tinyint(1) NOT NULL DEFAULT '0', email_subject varchar(255) NOT NULL default '', email_body varchar(1000) NOT NULL default '', email_format varchar(255) NOT NULL default '', subhead tinyint(1) NOT NULL default '0', in_process tinyint(1) NOT NULL default '0', graph_permission tinyint(1) NOT NULL DEFAULT '1', frequency varchar(255) NOT NULL default '', autoarchive mediumint(8) UNSIGNED NOT NULL DEFAULT 0, template_name varchar(255) NOT NULL default '', data_template_alias varchar(10000) NOT NULL default '', owner varchar(255) NOT NULL default '', autoexport varchar(255) NOT NULL default '', autoexport_max_records smallint NOT NULL DEFAULT '0', autoexport_no_formatting tinyint(1) NOT NULL default '0', PRIMARY KEY (cache_id)) ENGINE=InnoDB

[Err] 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

[SQL] CREATE TABLE IF NOT EXISTS reportit_cache_measurands ( cache_id varchar(255) NOT NULL default '', id int(11) NOT NULL default '0', template_id int(11) NOT NULL default '0', description varchar(255) NOT NULL default '', abbreviation varchar(255) NOT NULL default '', calc_formula varchar(255) NOT NULL default '', unit varchar(255) NOT NULL default '', visible tinyint(1) NOT NULL default '1', spanned tinyint(1) NOT NULL default '0', rounding tinyint(1) NOT NULL default '0', cf int(11) NOT NULL default '1', data_type SMALLINT NOT NULL DEFAULT '1', data_precision SMALLINT NOT NULL DEFAULT '2', INDEX (cache_id), UNIQUE(cache_id, id)) ENGINE=InnoDB

[Err] 1709 - Index column size too large. The maximum column size is 767 bytes.

[SQL] CREATE TABLE IF NOT EXISTS reportit_cache_variables ( cache_id varchar(255) NOT NULL default '', id int(11) NOT NULL default '0', name varchar(255) NOT NULL default '', description varchar(255) NOT NULL default '', value float NOT NULL default '0', max_value float NOT NULL default '0', min_value float NOT NULL default '0', INDEX (cache_id), UNIQUE(cache_id, id)) ENGINE=InnoDB

[Err] 1709 - Index column size too large. The maximum column size is 767 bytes.

All other tables are created successfully.

browniebraun commented 6 years ago

fixed with https://github.com/Cacti/plugin_reportit/commit/5e89adf4d9b856eee229c7e30d73dac4973dda5f