Adding new field error

9 years 6 months ago #126433 by ndee
Hi guys,

we have a strange issue.

When we add a single select Dropdown field (type select), and want to add another field after that we get for each field this error on saving:

[code:1]moscomprofilerFields::«»store failed: CBSQLupgrader::changeColumn (ADD) of Table #__comprofiler Column cb_bike02brand failed with SQL error: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs SQL=ALTER TABLE `jos_comprofiler`\n ADD `cb_bike02brand` varchar(255) DEFAULT NULL Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs SQL=ALTER TABLE `jos_comprofiler`\n ADD `cb_bike02brand` varchar(255) DEFAULT NULL[/code:1]

If we delete the select field we can add other field again without issues.

I tried to reproduce the error on the devbox (which has less data) but was not able to do so.

The field ids of the selectbox was 206 so there are quite some fields around.

Please let me know if you need more info.

UPDATE:
The Error rises now with every field, does not matter which type we choose.

Post edited by: ndee, at: 2010/03/10 16:25

###################
SPEED UP HELP, read first: Help us help you
###################
9 years 6 months ago #126656 by krileon
Known issue, please search; you've reached the maximum allowed combined column size in your database. In other words you've too many fields. You can change all your varchar(255) fields to varchar(125) or something of the sort to lower the KB usage of your columns in the _comprofiler database table.

We're reviewing a possible fix for CB 2.0 to lower KB usage of fields (columns) to allow for more fields. As is you're limited to approx. 100-150 fields maximum without database changes. This is actually a limitation of MYSQL and there is no workaround (other then making columns take less KB of course by changing their types).

Post edited by: krileon, at: 2010/03/12 19:03


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Templates - CBSubs - Hosting - Forge - Incubator - GroupJive
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM EST to 4:00 PM EST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.
9 years 6 months ago #126693 by ndee
Hi Kyle,

thanks for the info, I was not aware of that fact. I do not want to change the varchar value if possible. Do you know how I can adjust the database settings to support more fields?

UPDATE: Ok I read some info about that issue. Seems that I have to shrink sizes of fields. Poor MySQL, can't believe it.

Maybe you can get around that limitation by another db design, so that #__comprofiler does not contain all columns. Maybe you store them for each tab? so each tab has it's own table and the columns (fields) get assigned as you do in backend. Hardly anyone wants to have 100+ fields on one tab :).. but who knows :)

Post edited by: ndee, at: 2010/03/12 22:29

###################
SPEED UP HELP, read first: Help us help you
###################
Moderators: beatnantkrileon
Time to create page: 0.380 seconds
Facebook Twitter Google LinkedIn