magento-full-page-cache-crawler icon indicating copy to clipboard operation
magento-full-page-cache-crawler copied to clipboard

Column not found: 1054 Unknown column '1' in 'where clause'

Open ProxiBlue opened this issue 8 years ago • 2 comments

Hi,

M1.9.2.4 Installed without any noted errors, but i get this every day: Curious as to why you need to do the AND (1 = 1) in your SQL?

Next exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column '1' in 'where clause', query was: SELECT main_table.* FROM maverick_crawler_entity AS main_table WHERE (scheduled = 1) AND (1 = 1)' in /var/www/deployments/release-306/lib/Zend/Db/Statement/Pdo.php:235 Stack trace: #0 /var/www/deployments/release-306/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array) #1 /var/www/deployments/release-306/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array) #2 /var/www/deployments/release-306/lib/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array) #3 /var/www/deployments/release-306/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT main_ta...', Array) #4 /var/www/deployments/release-306/lib/Varien/Db/Adapter/Pdo/Mysql.php(504): Zend_Db_Adapter_Pdo_Abstract->query('SELECT main_ta...', Array) #5 /var/www/deployments/release-306/lib/Zend/Db/Adapter/Abstract.php(737): Varien_Db_Adapter_Pdo_Mysql->query('SELECT main_ta...', Array) #6 /var/www/deployments/release-306/lib/Varien/Data/Collection/Db.php(740): Zend_Db_Adapter_Abstract->fetchAll('SELECT main_ta...', Array) #7 /var/www/deployments/release-306/app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php(521): Varien_Data_Collection_Db->_fetchAll('SELECT `main_ta...', Array) #8 /var/www/deployments/release-306/lib/Varien/Data/Collection/Db.php(572): Mage_Core_Model_Resource_Db_Collection_Abstract->getData() #9 /var/www/deployments/release-306/lib/Varien/Data/Collection.php(752): Varien_Data_Collection_Db->load() #10 /var/www/deployments/release-306/app/code/local/Maverick/Crawler/Model/Cron.php(52): Varien_Data_Collection->count() #11 [internal function]: Maverick_Crawler_Model_Cron->crawl(Object(Aoe_Scheduler_Model_Schedule)) #12 /var/www/deployments/release-306/app/code/community/Aoe/Scheduler/Model/Schedule.php(193): call_user_func_array(Array, Array) #13 /var/www/deployments/release-306/app/code/community/Aoe/Scheduler/Model/Schedule.php(579): Aoe_Scheduler_Model_Schedule->runNow(true) #14 /var/www/deployments/release-306/app/code/community/Aoe/Scheduler/Model/Observer.php(39): Aoe_Scheduler_Model_Schedule->process() #15 /var/www/deployments/release-306/app/code/core/Mage/Core/Model/App.php(1358): Aoe_Scheduler_Model_Observer->dispatch(Object(Varien_Event_Observer)) #16 /var/www/deployments/release-306/app/code/core/Mage/Core/Model/App.php(1337): Mage_Core_Model_App->_callObserverMethod(Object(Aoe_Scheduler_Model_Observer), 'dispatch', Object(Varien_Event_Observer)) #17 /var/www/deployments/release-306/app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('default', Array) #18 /var/www/deployments/release-306/shell/scheduler.php(374): Mage::dispatchEvent('default', Array) #19 /var/www/deployments/release-306/shell/scheduler.php(37): Aoe_Scheduler_Shell_Scheduler->cronAction() #20 /var/www/deployments/release-306/shell/scheduler.php(400): Aoe_Scheduler_Shell_Scheduler->run() #21 {main}

ProxiBlue avatar Dec 07 '16 01:12 ProxiBlue

Hi ProxiBlue, I wrote this module 3 years ago and since then it didn't change a lot, I'll have to update it (once I'll have time) The problem you describe here comes from a typo : If you look at Maverick_Crawler_Model_Cron::crawl( ) (line 48) : $crawlers = Mage::getResourceModel('maverick_crawler/crawler_collection') ->addFieldToFilter('scheduled', array('eq' => self::CRAWLER_SCHEDULED)) ->filterByStatus(Maverick_Crawler_Model_Crawler::STATUS_ENABLED);

The problem is this function filterByStatus( ) defined in Maverick_Crawler_Model_Resource_Crawler_Collection

public function filterByStatus($status) { $this->addFieldToFilter($status, array('eq' => $status)); return $this; }

The condition in the filter should be $this->addFieldToFilter('status', array('eq' => $status)); ('status' instead of $status) ....

I'll try to update the code soon. Thanks for the information.

maverick193 avatar Dec 08 '16 07:12 maverick193

https://github.com/maverick193/magento-full-page-cache-crawler/pull/6

ProxiBlue avatar Dec 20 '16 01:12 ProxiBlue