X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FImport%2FDataSource%2FSQL.php;h=d552d45103d9dc7a66d049729ad0ee2a8550a441;hb=655da1f919af8318da84d80422841599c332024d;hp=cfd3c6f727ba93619080c1298745d410768d50eb;hpb=20a7f6d634240ae02d2c9ef3e7263edd4f2fa461;p=civicrm-core.git diff --git a/CRM/Import/DataSource/SQL.php b/CRM/Import/DataSource/SQL.php index cfd3c6f727..d552d45103 100644 --- a/CRM/Import/DataSource/SQL.php +++ b/CRM/Import/DataSource/SQL.php @@ -84,15 +84,23 @@ class CRM_Import_DataSource_SQL extends CRM_Import_DataSource { $tableName = $table->getName(); $table->createWithQuery($this->getSubmittedValue('sqlQuery')); - // Get the names of the fields to be imported. Any fields starting with an - // underscore are considered to be internal to the import process) + // Get the names of the fields to be imported. $columnsResult = CRM_Core_DAO::executeQuery( - 'SHOW FIELDS FROM ' . $tableName . " - WHERE Field NOT LIKE '\_%'"); + 'SHOW FIELDS FROM ' . $tableName); $columnNames = []; while ($columnsResult->fetch()) { - $columnNames[] = $columnsResult->Field; + if (strpos($columnsResult->Field, ' ') !== FALSE) { + // Remove spaces as the Database object does this + // $keys = str_replace(array(".", " "), "_", array_keys($array)); + // https://lab.civicrm.org/dev/core/-/issues/1337 + $usableColumnName = str_replace(' ', '_', $columnsResult->Field); + CRM_Core_DAO::executeQuery('ALTER TABLE ' . $tableName . ' CHANGE `' . $columnsResult->Field . '` ' . $usableColumnName . ' ' . $columnsResult->Type); + $columnNames[] = $usableColumnName; + } + else { + $columnNames[] = $columnsResult->Field; + } } $this->addTrackingFieldsToTable($tableName);