magento-lts: Rebuild Tag aggregation data not working
Preconditions (*)
- 1.9.4.x
- …
Steps to reproduce (*)
- backend index management
- tags …
Actual result (*)
2022-12-27T22:20:03+00:00 ERR (3):
PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'COUNT(tr.customer_id) + MIN(IF(tp.base_popularity IS NOT NULL, tp.base_popularity, 0))' in 'field list' in /var/www/html/vendor/shardj/zf1-future/library/Zend/Db/Statement/Pdo.php:228
Stack trace:
#0 /var/www/html/vendor/shardj/zf1-future/library/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /var/www/html/lib/Varien/Db/Statement/Pdo/Mysql.php(104): Zend_Db_Statement_Pdo->_execute(Array)
#2 /var/www/html/vendor/shardj/zf1-future/library/Zend/Db/Statement.php(303): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#3 /var/www/html/vendor/shardj/zf1-future/library/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)
#4 /var/www/html/vendor/shardj/zf1-future/library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `ta...', Array)
#5 /var/www/html/lib/Varien/Db/Adapter/Pdo/Mysql.php(492): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `ta...', Array)
#6 /var/www/html/app/code/core/Mage/Tag/Model/Resource/Indexer/Summary.php(215): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `ta...')
#7 /var/www/html/app/code/core/Mage/Tag/Model/Resource/Indexer/Summary.php(125): Mage_Tag_Model_Resource_Indexer_Summary->aggregate()
#8 /var/www/html/app/code/core/Mage/Index/Model/Indexer/Abstract.php(145): Mage_Tag_Model_Resource_Indexer_Summary->reindexAll()
Related code:
Mage_Tag_Model_Resource_Indexer_Summary::aggregate()
->from(
['tr' => $this->getTable('tag/relation')],
[
'tr.tag_id',
'tr.store_id',
'customers' => 'COUNT(DISTINCT tr.customer_id)',
'products' => 'COUNT(DISTINCT tr.product_id)',
'popularity' => 'COUNT(tr.customer_id) + MIN('
. $writeAdapter->getCheckSql(
'tp.base_popularity IS NOT NULL',
'tp.base_popularity',
'0'
)
. ')',
'uses' => new Zend_Db_Expr(0), // deprecated since 1.4.0.1
'historical_uses' => new Zend_Db_Expr(0), // deprecated since 1.4.0.1
'base_popularity' => new Zend_Db_Expr(0) // deprecated since 1.4.0.1
]
)
Query:
INSERT INTO `tag_summary` (`tag_id`, `store_id`, `customers`, `products`, `popularity`, `uses`, `historical_uses`, `base_popularity`) SELECT `tr`.`tag_id`, `tr`.`store_id`, COUNT(DISTINCT tr.customer_id) AS `customers`, COUNT(DISTINCT tr.product_id) AS `products`, `COUNT(tr.customer_id) + MIN(IF(tp.base_popularity IS NOT NULL, tp`.`base_popularity, 0))` AS `popularity`, 0 AS `uses`, 0 AS `historical_uses`, 0 AS `base_popularity` FROM `tag_relation` AS `tr`
INNER JOIN `core_store` AS `cs` ON cs.store_id = tr.store_id
INNER JOIN `catalog_product_website` AS `pw` ON cs.website_id = pw.website_id AND tr.product_id = pw.product_id
INNER JOIN `catalog_product_entity` AS `e` ON tr.product_id = e.entity_id
LEFT JOIN `tag_properties` AS `tp` ON tp.tag_id = tr.tag_id AND tp.store_id = tr.store_id
INNER JOIN `catalog_product_entity_int` AS `tad_status` ON tad_status.entity_id = e.entity_id AND tad_status.attribute_id = 96 AND tad_status.store_id = 0
LEFT JOIN `catalog_product_entity_int` AS `tas_status` ON tas_status.entity_id = e.entity_id AND tas_status.attribute_id = 96 AND tas_status.store_id = cs.store_id
INNER JOIN `catalog_product_entity_int` AS `tad_visibility` ON tad_visibility.entity_id = e.entity_id AND tad_visibility.attribute_id = 102 AND tad_visibility.store_id = 0
LEFT JOIN `catalog_product_entity_int` AS `tas_visibility` ON tas_visibility.entity_id = e.entity_id AND tas_visibility.attribute_id = 102 AND tas_visibility.store_id = cs.store_id
INNER JOIN `cataloginventory_stock_status` AS `ciss` ON ciss.product_id = e.entity_id AND ciss.website_id = cs.website_id WHERE (tr.active = 1) AND (IF(IFNULL(tas_status.value_id, -1) > 0, tas_status.value, tad_status.value)=1) AND (IF(IFNULL(tas_visibility.value_id, -1) > 0, tas_visibility.value, tad_visibility.value)!=1) AND (ciss.stock_status = 1) GROUP BY `tr`.`tag_id`,
`tr`.`store_id` ON DUPLICATE KEY UPDATE `tag_id` = VALUES(`tag_id`), `store_id` = VALUES(`store_id`), `customers` = VALUES(`customers`), `products` = VALUES(`products`), `popularity` = VALUES(`popularity`), `uses` = VALUES(`uses`), `historical_uses` = VALUES(`historical_uses`), `base_popularity` = VALUES(`base_popularity`) in /var/www/html/vendor/shardj/zf1-future/library/Zend/Db/Statement/Pdo.php:235
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 20 (17 by maintainers)
I’ve no time today … its really easy to create patches … see https://github.com/symplify/vendor-patches
Note: Statement.php is already patched.