Exemplo n.º 1
0
 /**
  * Move data from temporary flat table into regular flat table.
  *
  * @return Enterprise_Catalog_Model_Index_Action_Product_Refresh_Changelog
  */
 protected function _moveDataToFlatTable()
 {
     $flatTable = $this->_productHelper->getFlatTableName($this->_storeId);
     if (!$this->_connection->isTableExists($flatTable)) {
         parent::_moveDataToFlatTable();
     } else {
         $describe = $this->_connection->describeTable($this->_productHelper->getFlatTableName($this->_storeId));
         $columns = $this->_productHelper->getFlatColumns();
         $columns = array_keys(array_intersect_key($describe, $columns));
         $select = $this->_connection->select();
         $select->from(array('tf' => $this->_getTemporaryTableName($this->_productHelper->getFlatTableName($this->_storeId))), $columns);
         $sql = $select->insertFromSelect($flatTable, $columns);
         $this->_connection->query($sql);
         //drop "temporary" table after reindex
         $this->_connection->dropTable($this->_getTemporaryTableName($this->_productHelper->getFlatTableName($this->_storeId)));
     }
     return $this;
 }