** Changed in: mahara
       Status: In Progress => Fix Committed

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask 
on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1238424

Title:
  ADODB mysqli doesn't support tables with reserved-word names in
  MetaIndexes()

Status in Mahara ePortfolio:
  Fix Committed

Bug description:
  We have a few tables and columns with reserved-word names. Perhaps the
  worst offender is "group". Normally this doesn't cause a problem
  because our machine-generated SQL statements escape the table name in
  double quotes. But, in the ADODB mysqli driver's MetaIndexes()
  function, which is ultimately used in Mahara's ddl.php add_index(),
  drop_index(), find_index_name(), and index_exists() functions, they
  don't add any escape marks. The result: errors during upgrade.

  [WAR] 9a (lib/errors.php:464) An exception was thrown of class 
ADODB_Exception. 
  [WAR] 9a (lib/errors.php:464) THIS IS BAD and should be changed to something 
extending MaharaException,
  [WAR] 9a (lib/errors.php:464) unless the exception is from a third party 
library.
  [WAR] 9a (lib/errors.php:464) Original trace follows
  [WAR] 9a (lib/adodb/adodb-exceptions.inc.php:78) mysqli error: [1064: You 
have an error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near 'group' at line 1] in 
adodb_throw(SHOW INDEXES FROM group, )
  [WAR] 9a (lib/adodb/adodb-exceptions.inc.php:78) 
  Call stack (most recent first):
    * adodb_throw("mysqli", "adodb_throw", 1064, "You have an error in your SQL 
syntax; check the ma...", "SHOW INDEXES FROM group", false, 
object(ADODB_mysqli)) at 
/home/aaronw/www/mahara/htdocs/lib/adodb/adodb.inc.php:257
    * ADODB_TransMonitor("mysqli", "EXECUTE", 1064, "You have an error in your 
SQL syntax; check the ma...", "SHOW INDEXES FROM group", false, 
object(ADODB_mysqli)) at 
/home/aaronw/www/mahara/htdocs/lib/adodb/adodb.inc.php:1074
    * ADOConnection->_Execute("SHOW INDEXES FROM group", false) at 
/home/aaronw/www/mahara/htdocs/lib/adodb/adodb.inc.php:1049
    * ADOConnection->Execute("SHOW INDEXES FROM group") at 
/home/aaronw/www/mahara/htdocs/lib/adodb/drivers/adodb-mysqli.inc.php:331
    * ADODB_mysqli->MetaIndexes("group") at 
/home/aaronw/www/mahara/htdocs/lib/ddl.php:479
    * find_index_name(object(XMLDBTable), object(XMLDBIndex)) at 
/home/aaronw/www/mahara/htdocs/lib/ddl.php:374
    * index_exists(object(XMLDBTable), object(XMLDBIndex)) at 
/home/aaronw/www/mahara/htdocs/lib/xmldb/classes/generators/XMLDBGenerator.class.php:714
    * XMLDBgenerator->getAddKeySQL(object(XMLDBTable), object(XMLDBKey)) at 
/home/aaronw/www/mahara/htdocs/lib/xmldb/classes/XMLDBTable.class.php:961
    * XMLDBTable->getAddKeySQL("mysqli", "", object(XMLDBKey), false) at 
/home/aaronw/www/mahara/htdocs/lib/ddl.php:1097
    * add_key(object(XMLDBTable), object(XMLDBKey)) at 
/home/aaronw/www/mahara/htdocs/lib/db/upgrade.php:2385
    * xmldb_core_upgrade("2011061015") at 
/home/aaronw/www/mahara/htdocs/lib/upgrade.php:311
    * upgrade_core(object(stdClass)) at 
/home/aaronw/www/mahara/htdocs/lib/mahara.php:265
    * upgrade_mahara(array(size 11)) at 
/home/aaronw/www/mahara/htdocs/admin/cli/upgrade.php:62

  A nonrecoverable error occurred. This probably means you have
  encountered a bug in the system

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1238424/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~mahara-contributors
Post to     : mahara-contributors@lists.launchpad.net
Unsubscribe : https://launchpad.net/~mahara-contributors
More help   : https://help.launchpad.net/ListHelp

Reply via email to