-// ALTER TABLE wrapper function
-function SQL_ALTER_TABLE ($sql, $F, $L) {
- // Abort if link is down
- if (!SQL_IS_LINK_UP()) return false;
-
- // This is the default result...
- $result = false;
-
- // Determine index/fulltext/unique word
- $noIndex = (
- (
- strpos($sql, 'INDEX') === false
- ) && (
- strpos($sql, 'FULLTEXT') === false
- ) && (
- strpos($sql, 'UNIQUE') === false
- )
- );
-
- // Extract table name
- $tableArray = explode(" ", $sql);
- $tableName = str_replace('`', '', $tableArray[2]);
-
- // Shall we add/drop?
- if (((strpos($sql, 'ADD') !== false) || (strpos($sql, 'DROP') !== false)) && ($noIndex === true)) {
- // And column name as well
- $columnName = str_replace('`', '', $tableArray[4]);
-
- // Get column information
- $result = SQL_QUERY_ESC("SHOW COLUMNS FROM `%s` LIKE '%s'",
- array($tableName, $columnName), __FILE__, __LINE__);
-
- // Do we have no entry on ADD or an entry on DROP?
- // 123 4 4 3 3 4 4 32 23 4 4 3 3 4 4 321
- if (((SQL_NUMROWS($result) == 0) && (strpos($sql, 'ADD') !== false)) || ((SQL_NUMROWS($result) == 1) && (strpos($sql, 'DROP') !== false))) {
- // Do the query
- //* DEBUG: */ outputHtml(__LINE__.':'.$sql."<br />");
- $result = SQL_QUERY($sql, $F, $L, false);
- } // END - if
- } elseif ((getConfig('_TABLE_TYPE') == 'InnoDB') && (strpos($sql, 'FULLTEXT') !== false)) {
- // Skip this query silently
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Skipped FULLTEXT: sql=%s,file=%s,line=%s", $sql, $F, $L));
- } elseif ($noIndex === false) {
- // And column name as well
- $columnName = str_replace('`', '', $tableArray[4]);
-
- // Is this "UNIQUE" or so? FULLTEXT has been handled the elseif() block above
- if (in_array(strtoupper($columnName), array('INDEX', 'UNIQUE', 'KEY', 'FULLTEXT'))) {
- // Init loop
- $begin = 1; $columnName = ',';
- while (strpos($columnName, ',') !== false) {
- // Use last
- $columnName = str_replace('`', '', $tableArray[count($tableArray) - $begin]);
- //* DEBUG: */ outputHtml(__LINE__.':'.$columnName."----------------".$begin."<br />");
-
- // Remove brackes
- $columnName = str_replace('(', '', str_replace(')', '', $columnName));
- //* DEBUG: */ outputHtml(__LINE__.':'.$columnName."----------------".$begin."<br />");
-
- // Continue
- $begin++;
- } // END while
- } // END - if