5.3 beta - cannot update custom group of fields without backtrace
To reproduce:
- Create a custom group that is used for Activities and don't pick any activity types.
- Don't add any fields
- Edit the settings for the custom group and select an activity type for it to apply to
Result is a back trace (but the changes are saved).
This seems to be a regression from c746070e.
In particular - CRM_Core_BAO_SchemaHandler::changeUniqueToIndex
is called from line 207. is_multiple is false (I'm not entirely sure what that means) which causes CRM_Core_BAO_SchemaHandler::changeUniqueToIndex to pass $dropUnique as FALSE, which then tries to drop a foreign key that doesn't exist.
If $dropUnique is TRUE there is no backtrace.
Thanks to everyone for the amazing 5.3 work - our first bug after a week of roll outs! jamie
#0 /var/www/powerbase/sites/all/modules/civicrm/CRM/Core/Error.php(190): CRM_Core_Error::backtrace()
#1 /var/www/powerbase/sites/all/modules/civicrm/packages/PEAR.php(921): CRM_Core_Error::handle(Object(DB_Error))
#2 /var/www/powerbase/sites/all/modules/civicrm/packages/DB.php(985): PEAR_Error->__construct("DB Error: not found", -4, 16, (Array:2), " ALTER TABLE civicrm_value_proposal_info_8\nDROP INDEX `FK_civicrm_value_prop...")
#3 /var/www/powerbase/sites/all/modules/civicrm/packages/PEAR.php(575): DB_Error->__construct(-4, 16, (Array:2), " ALTER TABLE civicrm_value_proposal_info_8\nDROP INDEX `FK_civicrm_value_prop...")
#4 /var/www/powerbase/sites/all/modules/civicrm/packages/PEAR.php(223): PEAR->_raiseError(Object(DB_mysqli), NULL, -4, 16, (Array:2), " ALTER TABLE civicrm_value_proposal_info_8\nDROP INDEX `FK_civicrm_value_prop...", "DB_Error", TRUE)
#5 /var/www/powerbase/sites/all/modules/civicrm/packages/DB/common.php(1905): PEAR->__call("raiseError", (Array:7))
#6 /var/www/powerbase/sites/all/modules/civicrm/packages/DB/mysqli.php(933): DB_common->raiseError(-4, NULL, NULL, " ALTER TABLE civicrm_value_proposal_info_8\nDROP INDEX `FK_civicrm_value_prop...", "1091 ** Can't DROP 'FK_civicrm_value_proposal_info_8_entity_id'; check that c...")
#7 /var/www/powerbase/sites/all/modules/civicrm/packages/DB/mysqli.php(403): DB_mysqli->mysqliRaiseError()
#8 /var/www/powerbase/sites/all/modules/civicrm/packages/DB/common.php(1216): DB_mysqli->simpleQuery(" ALTER TABLE civicrm_value_proposal_info_8\nDROP INDEX `FK_civicrm_value_prop...")
#9 /var/www/powerbase/sites/all/modules/civicrm/packages/DB/DataObject.php(2443): DB_common->query(" ALTER TABLE civicrm_value_proposal_info_8\nDROP INDEX `FK_civicrm_value_prop...")
#10 /var/www/powerbase/sites/all/modules/civicrm/packages/DB/DataObject.php(1635): DB_DataObject->_query(" ALTER TABLE civicrm_value_proposal_info_8\nDROP INDEX `FK_civicrm_value_prop...")
#11 /var/www/powerbase/sites/all/modules/civicrm/CRM/Core/DAO.php(415): DB_DataObject->query(" ALTER TABLE civicrm_value_proposal_info_8\nDROP INDEX `FK_civicrm_value_prop...")
#12 /var/www/powerbase/sites/all/modules/civicrm/CRM/Core/DAO.php(1371): CRM_Core_DAO->query(" ALTER TABLE civicrm_value_proposal_info_8\nDROP INDEX `FK_civicrm_value_prop...", TRUE)
#13 /var/www/powerbase/sites/all/modules/civicrm/CRM/Core/BAO/SchemaHandler.php(411): CRM_Core_DAO::executeQuery(" ALTER TABLE civicrm_value_proposal_info_8\nDROP INDEX `FK_civicrm_value_prop...")
#14 /var/www/powerbase/sites/all/modules/civicrm/CRM/Core/BAO/CustomGroup.php(207): CRM_Core_BAO_SchemaHandler::changeUniqueToIndex("civicrm_value_proposal_info_8", "")
#15 /var/www/powerbase/sites/all/modules/civicrm/CRM/Custom/Form/Group.php(458): CRM_Core_BAO_CustomGroup::create((Array:16))
#16 /var/www/powerbase/sites/all/modules/civicrm/CRM/Core/Form.php(466): CRM_Custom_Form_Group->postProcess()
#17 /var/www/powerbase/sites/all/modules/civicrm/CRM/Core/StateMachine.php(160): CRM_Core_Form->mainProcess()
#18 /var/www/powerbase/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Next.php(61): CRM_Core_StateMachine->perform(Object(CRM_Custom_Form_Group), "next", "Next")
#19 /var/www/powerbase/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Custom_Form_Group), "next")
#20 /var/www/powerbase/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Custom_Form_Group), "next")
#21 /var/www/powerbase/sites/all/modules/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle("next")
#22 /var/www/powerbase/sites/all/modules/civicrm/CRM/Custom/Page/Group.php(172): CRM_Core_Controller->run()
#23 /var/www/powerbase/sites/all/modules/civicrm/CRM/Custom/Page/Group.php(139): CRM_Custom_Page_Group->edit("8", 2)
#24 /var/www/powerbase/sites/all/modules/civicrm/CRM/Core/Invoke.php(309): CRM_Custom_Page_Group->run((Array:4), NULL)
#25 /var/www/powerbase/sites/all/modules/civicrm/CRM/Core/Invoke.php(84): CRM_Core_Invoke::runItem((Array:16))
#26 /var/www/powerbase/sites/all/modules/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:4))
#27 /var/www/powerbase/sites/all/modules/civicrm/drupal/civicrm.module(445): CRM_Core_Invoke::invoke((Array:4))
#28 /var/www/powerbase/includes/menu.inc(527): civicrm_invoke("admin", "custom", "group")
#29 /var/www/powerbase/index.php(21): menu_execute_active_handler()
#30 {main}