Fixes + asserts
[mailer.git] / inc / extensions-functions.php
index b7b57b30f150d7aa943965b34dcf19bc1b5f76f9..caf01774d27168f6bc077ae68acb7e40fc0b6da7 100644 (file)
@@ -490,7 +490,7 @@ function doExtensionSqls ($ext_id, $load_mode) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SQLs::count=' . countSqls());
 
        // Are there entries?
-       if (isSqlsValid()) {
+       if (ifSqlsRegistered()) {
                // Run SQL commands...
                runFilterChain('run_sqls');
        } // END - if
@@ -677,7 +677,7 @@ function getExtensionVersion ($ext_name, $force = FALSE) {
 
                // Count cache hits
                incrementStatsEntry('cache_hits');
-       } elseif ((!isCacheInstanceValid()) || (isset($GLOBALS['cache_array']['extension'])) || (!isHtmlOutputMode())) {
+       } elseif ((!isValidCacheInstance()) || (isset($GLOBALS['cache_array']['extension'])) || (!isHtmlOutputMode())) {
                // Load from database
                $result = sqlQueryEscaped("SELECT * FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1",
                        array($ext_name), __FUNCTION__, __LINE__);
@@ -1920,7 +1920,7 @@ function addDropTableSql ($tableName) {
 // Adds a RENAME TABLE stament if 'from' table exist and 'to' table not
 function addRenameTableSql ($fromTable, $toTable) {
        // Make sure both are not the same
-       assert($fromTable != $toTable);
+       assert($fromTable != $toTable, 'fromTable must be different to toTable (' . $fromTable . ')');
 
        // Is renaming required?
        if ((ifSqlTableExists($fromTable)) && (!ifSqlTableExists($toTable))) {
@@ -2059,8 +2059,15 @@ function addSponsorMenuSql ($action, $what, $title, $active, $sort) {
 
 // Add ALTER TABLE `foo` ADD sql if not found
 function addExtensionAddTableColumnSql ($tableName, $columnName, $columnSql) {
+       // Assert on all
+       assert((!empty($tableName)) && (!empty($columnName)) && (!empty($columnSql)), 'tableName=' . $tableName . ',columnName=' . $columnName . ',columnSql=' . $columnSql);
+       assert($columnName != $columnSql . ',columnName=' . $columnName . ' must be non-equal to columnSql');
+
        // Is the column there?
        if (!ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $columnName, isInstaller())) {
+               // Debug message
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',columnName=' . $columnName . ',columnSql=' . $columnSql);
+
                // Then add it
                addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` ADD `' . $columnName . '` ' . $columnSql);
        } elseif (isDebugModeEnabled()) {
@@ -2071,8 +2078,15 @@ function addExtensionAddTableColumnSql ($tableName, $columnName, $columnSql) {
 
 // Add ALTER TABLE `foo` ADD INDEX sql if not found
 function addExtensionAddTableIndexSql ($tableName, $indexName, $columnSql) {
+       // Assert on all
+       assert((!empty($tableName)) && (!empty($indexName)) && (!empty($columnSql)), 'tableName=' . $tableName . ',indexName=' . $indexName . ',columnSql=' . $columnSql);
+       assert(($indexName != $columnSql), 'indexName=' . $indexName  . ' must be unequal to columnSql');
+
        // Is the column there?
        if (!ifSqlTableIndexExist('{?_MYSQL_PREFIX?}_' . $tableName, $indexName, isInstaller())) {
+               // Debug message
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',indexName=' . $indexName . ',columnSql=' . $columnSql);
+
                // Then add it
                addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` ADD INDEX `' . $indexName . '` ' . $columnSql);
        } elseif (isDebugModeEnabled()) {
@@ -2083,8 +2097,15 @@ function addExtensionAddTableIndexSql ($tableName, $indexName, $columnSql) {
 
 // Add ALTER TABLE `foo` ADD UNIQUE INDEX sql if not found
 function addExtensionAddTableUniqueSql ($tableName, $indexName, $columnSql) {
+       // Assert on all
+       assert((!empty($tableName)) && (!empty($indexName)) && (!empty($columnSql)), 'tableName=' . $tableName . ',indexName=' . $indexName . ',columnSql=' . $columnSql);
+       assert($indexName != $columnSql, 'indexName=' . $indexName  . ' must be unequal to columnSql');
+
        // Is the column there?
        if (!ifSqlTableIndexExist('{?_MYSQL_PREFIX?}_' . $tableName, $indexName, isInstaller())) {
+               // Debug message
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',indexName=' . $indexName . ',columnSql=' . $columnSql);
+
                // Then add it
                addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` ADD UNIQUE INDEX `' . $indexName . '` ' . $columnSql);
        } elseif (isDebugModeEnabled()) {
@@ -2095,8 +2116,15 @@ function addExtensionAddTableUniqueSql ($tableName, $indexName, $columnSql) {
 
 // Add ALTER TABLE `foo` ADD FULLTEXT sql if not found
 function addExtensionAddTableFulltextSql ($tableName, $indexName, $columnSql) {
+       // Assert on all
+       assert((!empty($tableName)) && (!empty($indexName)) && (!empty($columnSql)), 'tableName=' . $tableName . ',indexName=' . $indexName . ',columnSql=' . $columnSql);
+       assert($indexName != $columnSql, 'indexName=' . $indexName  . ' must be unequal to columnSql');
+
        // Is the column there and MyISAM engine? (InnoDB doesn't support FULLTEXT)
        if ((getTableType() == 'MyISAM') && (!ifSqlTableIndexExist('{?_MYSQL_PREFIX?}_' . $tableName, $indexName, isInstaller()))) {
+               // Debug message
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',indexName=' . $indexName . ',columnSql=' . $columnSql);
+
                // Then add it
                addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` ADD FULLTEXT `' . $indexName . '` ' . $columnSql);
        } elseif (isDebugModeEnabled()) {
@@ -2107,8 +2135,15 @@ function addExtensionAddTableFulltextSql ($tableName, $indexName, $columnSql) {
 
 // Add ALTER TABLE `foo` CHANGE sql if not found
 function addExtensionChangeTableColumnSql ($tableName, $fromColumnName, $toColumnName, $columnSql) {
+       // Assert on all
+       assert((!empty($tableName)) && (!empty($fromColumnName)) && (!empty($toColumnName)) && (!empty($columnSql)), 'tableName=' . $tableName . ',fromColumnName=' . $fromColumnName . ',toColumnName=' . $toColumnName . ',columnSql=' . $columnSql . ' must not be empty.');
+       assert(($fromColumnName != $columnSql) && ($toColumnName != $columnSql), 'tableName=' . $tableName . ',fromColumnName=' . $fromColumnName . ',toColumnName=' . $toColumnName . ',columnSql=' . $columnSql . ' must not be equal.');
+
        // Is the column there?
        if ((ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $fromColumnName)) && (($fromColumnName == $toColumnName) || (!ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $toColumnName, isInstaller())))) {
+               // Debug message
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',fromColumnName=' . $fromColumnName . ',toColumnName=' . $toColumnName . ',columnSql=' . $columnSql);
+
                // Then add it
                addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` CHANGE `' . $fromColumnName . '` `' . $toColumnName . '` ' . $columnSql);
        } elseif (isDebugModeEnabled()) {
@@ -2119,8 +2154,14 @@ function addExtensionChangeTableColumnSql ($tableName, $fromColumnName, $toColum
 
 // Add ALTER TABLE `foo` DROP sql if not found
 function addExtensionDropTableColumnSql ($tableName, $columnName) {
+       // Assert on all
+       assert((!empty($tableName)) && (!empty($columnName)), 'tableName=' . $tableName . ',columnName=' . $columnName . ' must not be empty.');
+
        // Is the column there?
        if (ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $columnName, isInstaller())) {
+               // Debug message
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',columnName=' . $columnName);
+
                // Then add it
                addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` DROP `' . $columnName . '`');
        } elseif (isDebugModeEnabled()) {
@@ -2131,8 +2172,14 @@ function addExtensionDropTableColumnSql ($tableName, $columnName) {
 
 // Add ALTER TABLE `foo` DROP INDEX sql if not found
 function addExtensionDropTableIndexSql ($tableName, $indexName) {
+       // Assert on all
+       assert((!empty($tableName)) && (!empty($indexName)) . ',tableName=' . $tableName . ',indexName=' . $indexName . ' must not be empty.');
+
        // Is the column there?
        if (ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $indexName, isInstaller())) {
+               // Debug message
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',indexName=' . $indexName);
+
                // Then add it
                addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` DROP INDEX `' . $indexName . '`');
        } elseif (isDebugModeEnabled()) {
@@ -2164,6 +2211,10 @@ function addConfigChangeSql ($oldColumnName, $newColumnName, $columnSql) {
  * extension registration queue.
  */
 function registerExtensionPointsData ($subject, $columnName, $lockedMode, $paymentMethod) {
+       // Assert on all
+       assert((!empty($subject)) && (!empty($columnName)) && (!empty($lockedMode)) && (!empty($paymentMethod)), ',subject=' . $subject . ',columnName=' . $columnName . ',lockedMode=' . $lockedMode . ',paymentMethod=' . $paymentMethod . ' must not be empty.');
+       assert((in_array($lockedMode, array('LOCKED', 'UNLOCKED'))) && (in_array($paymentMethod, array('DIRECT', 'REFERRAL'))), ',subject=' . $subject . ',columnName=' . $columnName . ',lockedMode=' . $lockedMode . ',paymentMethod=' . $paymentMethod . ' must be valid.');
+
        // Is the suffix '_ref' not set?
        if (!ifSubjectHasReferralSuffix($subject)) {
                // Register this first