00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 $installer = $this;
00028
00029
00030
00031 $installer->run("
00032 CREATE TABLE `{$installer->getTable('catalogindex_eav_tmp')}` (
00033 `store_id` smallint(5) unsigned NOT NULL default '0',
00034 `entity_id` int(10) unsigned NOT NULL default '0',
00035 `attribute_id` smallint(5) unsigned NOT NULL default '0',
00036 `value` int(11) NOT NULL default '0'
00037 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
00038
00039 insert into `{$installer->getTable('catalogindex_eav_tmp')}`
00040 select distinct store_id, entity_id, attribute_id, value
00041 from `{$installer->getTable('catalogindex_eav')}`;
00042
00043 DROP TABLE `{$installer->getTable('catalogindex_eav')}`;
00044
00045 CREATE TABLE `{$installer->getTable('catalogindex_eav')}` (
00046 `store_id` smallint(5) unsigned NOT NULL default '0',
00047 `entity_id` int(10) unsigned NOT NULL default '0',
00048 `attribute_id` smallint(5) unsigned NOT NULL default '0',
00049 `value` int(11) NOT NULL default '0',
00050 PRIMARY KEY (`store_id`,`entity_id`,`attribute_id`,`value`),
00051 KEY `IDX_VALUE` (`value`),
00052 KEY `FK_CATALOGINDEX_EAV_ENTITY` (`entity_id`),
00053 KEY `FK_CATALOGINDEX_EAV_ATTRIBUTE` (`attribute_id`),
00054 KEY `FK_CATALOGINDEX_EAV_STORE` (`store_id`),
00055 CONSTRAINT `FK_CATALOGINDEX_EAV_ATTRIBUTE` FOREIGN KEY (`attribute_id`)
00056 REFERENCES `{$installer->getTable('eav_attribute')}` (`attribute_id`) ON DELETE CASCADE ON UPDATE CASCADE,
00057 CONSTRAINT `FK_CATALOGINDEX_EAV_ENTITY` FOREIGN KEY (`entity_id`)
00058 REFERENCES `{$installer->getTable('catalog_product_entity')}` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE,
00059 CONSTRAINT `FK_CATALOGINDEX_EAV_STORE` FOREIGN KEY (`store_id`)
00060 REFERENCES `{$installer->getTable('core_store')}` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE
00061 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
00062
00063 insert into `{$installer->getTable('catalogindex_eav')}`
00064 select store_id, entity_id, attribute_id, value
00065 from `{$installer->getTable('catalogindex_eav_tmp')}`;
00066
00067 DROP TABLE `{$installer->getTable('catalogindex_eav_tmp')}`;
00068
00069
00070
00071
00072
00073
00074 CREATE TABLE `{$installer->getTable('catalogindex_price_tmp')}` (
00075 `store_id` smallint(5) unsigned NOT NULL default '0',
00076 `entity_id` int(10) unsigned NOT NULL default '0',
00077 `attribute_id` smallint(5) unsigned NOT NULL default '0',
00078 `customer_group_id` smallint(3) unsigned NOT NULL default '0',
00079 `qty` decimal(12,4) unsigned NOT NULL default '0.0000',
00080 `value` decimal(12,4) NOT NULL default '0.0000'
00081 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
00082
00083 insert into `{$installer->getTable('catalogindex_price_tmp')}`
00084 select distinct store_id, entity_id, attribute_id, customer_group_id, qty, value
00085 from `{$installer->getTable('catalogindex_price')}`;
00086
00087 DROP TABLE `{$installer->getTable('catalogindex_price')}`;
00088
00089 CREATE TABLE `{$installer->getTable('catalogindex_price')}` (
00090 `store_id` smallint(5) unsigned NOT NULL default '0',
00091 `entity_id` int(10) unsigned NOT NULL default '0',
00092 `attribute_id` smallint(5) unsigned NOT NULL default '0',
00093 `customer_group_id` smallint(3) unsigned NOT NULL default '0',
00094 `qty` decimal(12,4) unsigned NOT NULL default '0.0000',
00095 `value` decimal(12,4) NOT NULL default '0.0000',
00096 KEY `IDX_VALUE` (`value`),
00097 KEY `IDX_QTY` (`qty`),
00098 KEY `FK_CATALOGINDEX_PRICE_ENTITY` (`entity_id`),
00099 KEY `FK_CATALOGINDEX_PRICE_ATTRIBUTE` (`attribute_id`),
00100 KEY `FK_CATALOGINDEX_PRICE_STORE` (`store_id`),
00101 KEY `FK_CATALOGINDEX_PRICE_CUSTOMER_GROUP` (`customer_group_id`),
00102 KEY `IDX_RANGE_VALUE` (`store_id`, `entity_id`,`attribute_id`,`customer_group_id`,`value`),
00103 CONSTRAINT `FK_CATALOGINDEX_PRICE_ATTRIBUTE` FOREIGN KEY (`attribute_id`)
00104 REFERENCES `{$installer->getTable('eav_attribute')}` (`attribute_id`) ON DELETE CASCADE ON UPDATE CASCADE,
00105 CONSTRAINT `FK_CATALOGINDEX_PRICE_ENTITY` FOREIGN KEY (`entity_id`)
00106 REFERENCES `{$installer->getTable('catalog_product_entity')}` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE,
00107 CONSTRAINT `FK_CATALOGINDEX_PRICE_STORE` FOREIGN KEY (`store_id`)
00108 REFERENCES `{$installer->getTable('core_store')}` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE
00109 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
00110
00111 insert into `{$installer->getTable('catalogindex_price')}`
00112 select store_id, entity_id, attribute_id, customer_group_id, qty, value
00113 from `{$installer->getTable('catalogindex_price_tmp')}`;
00114
00115 DROP TABLE `{$installer->getTable('catalogindex_price_tmp')}`;
00116 ");
00117