Hello all.
Subject's method contains next code:
$select->joinLeft( ['status_global_attr' => $statusAttribute->getBackendTable()], ' status_global_attr.attribute_id = ' . (int)$statusAttribute->getAttributeId() . ' AND status_global_attr.store_id = ' . Store::DEFAULT_STORE_ID, [] ); $select->joinLeft( ['status_attr' => $statusAttribute->getBackendTable()], ' status_attr.attribute_id = ' . (int)$statusAttribute->getAttributeId() . ' AND status_attr.store_id = ' . $storeId, [] );
This code generate SQL query like this:
SELECT `product_table`.*, `product_table`.`entity_id` FROM `catalog_product_entity` AS `product_table` LEFT JOIN `catalog_product_entity_int` AS `status_global_attr` ON status_global_attr.attribute_id = 97 AND status_global_attr.store_id = 0 LEFT JOIN `catalog_product_entity_int` AS `status_attr` ON status_attr.attribute_id = 97 AND status_attr.store_id = 2 WHERE (product_table.entity_id IN('1876784')) AND (IFNULL(status_attr.value, status_global_attr.value) = 2);
...
LEFT JOIN `catalog_product_entity_int` AS `status_global_attr` ON PRODUCT_TABLE.ENTITY_ID = STATUS_GLOBAL_ATTR.ENTITY_ID AND status_global_attr.attribute_id = 97 AND status_global_attr.store_id = 0
LEFT JOIN `catalog_product_entity_int` AS `status_attr` ON PRODUCT_TABLE.ENTITY_ID = STATUS_ATTR.ENTITY_ID AND status_attr.attribute_id = 97 AND status_attr.store_id = 2 WHERE (product_table.entity_id IN('1876784')) AND (IFNULL(status_attr.value, status_global_attr.value) = 2);
Is it bug? Or feature?
Did you even find a solution to this? I am having the same problem though the query is loading gigabytes of data and causing the php process to run out of memory, causing the save to fail.