/** * Analyzes fields and adds the extracted information to the field type, auto increment and primary key info caches. * * @param array $parsedExtSQL The output produced by \TYPO3\CMS\Install\Service\SqlSchemaMigrationService->getFieldDefinitions_fileContent() * @return void */ protected function analyzeFields($parsedExtSQL) { foreach ($parsedExtSQL as $table => $tdef) { // check if table is mapped if (isset($this->mapping[$table])) { $table = $this->mapping[$table]['mapTableName']; } if (is_array($tdef['fields'])) { foreach ($tdef['fields'] as $field => $fdefString) { $fdef = $this->SQLparser->parseFieldDef($fdefString); $fieldType = isset($fdef['fieldType']) ? $fdef['fieldType'] : ''; $this->cache_fieldType[$table][$field]['type'] = $fieldType; $this->cache_fieldType[$table][$field]['metaType'] = $this->dbmsSpecifics->getMetaFieldType($fieldType); $this->cache_fieldType[$table][$field]['notnull'] = isset($fdef['featureIndex']['NOTNULL']) && !$this->SQLparser->checkEmptyDefaultValue($fdef['featureIndex']) ? 1 : 0; if (isset($fdef['featureIndex']['DEFAULT'])) { $default = $fdef['featureIndex']['DEFAULT']['value'][0]; if (isset($fdef['featureIndex']['DEFAULT']['value'][1])) { $default = $fdef['featureIndex']['DEFAULT']['value'][1] . $default . $fdef['featureIndex']['DEFAULT']['value'][1]; } $this->cache_fieldType[$table][$field]['default'] = $default; } if (isset($fdef['featureIndex']['AUTO_INCREMENT'])) { $this->cache_autoIncFields[$table] = $field; } if (isset($tdef['keys']['PRIMARY'])) { $this->cache_primaryKeys[$table] = substr($tdef['keys']['PRIMARY'], 13, -1); } } } } }