2012-09-12 22 views
0

LIB /瓦瑞恩/數據/收集/ db.php中有由所有的Magento類別繼承的方法getSelectCountSql()。在此方法中,Select對象被克隆,並準備專門用於獲取不加載集合的收集項目的COUNT值,而是使用輕量級Select選擇數據庫。getSelectCountSql()不進行復位組部分

準備工作是通過重置可能影響COUNT結果的選擇部分和部分來完成的。下面的代碼:

public function getSelectCountSql() 
{ 
    $this->_renderFilters(); 
    $countSelect = clone $this->getSelect(); 
    $countSelect->reset(Zend_Db_Select::ORDER); 
    $countSelect->reset(Zend_Db_Select::LIMIT_COUNT); 
    $countSelect->reset(Zend_Db_Select::LIMIT_OFFSET); 
    $countSelect->reset(Zend_Db_Select::COLUMNS); 
    ... 

我想知道,有沒有真正原因Magento的工程師不包括與其他部分一起$countSelect->reset(Zend_Db_Select::GROUP);

Magento似乎沒有解決這個問題,從修訂到修訂,我確信這是一個錯誤,所以也許我錯了?我很感激,如果有人可以解釋不包括背部的原因GROUP部分到復位部件列表。

PS這不是this question的重複,我知道如何添加修復程序,我只想得到一個解釋(如果存在)爲什麼Magento工程師從一開始就沒有做到這一點,並繼續忽略問題。

+1

有趣的問題。我個人不認爲這是越野車,我想這取決於你想要達到的目標。如果我要創建具有樣式和顏色屬性的項目集合,並且我想要獨特的顏色(因此按顏色分組),我希望集合的數量是唯一顏色的數量,而不是總數我的表中的項目。 –

+0

感謝您的迴應,@Cags - 這完全有道理,但這似乎更像是獨特的場景。更常見的情況是在entity_id字段上使用分組(或者調用增量的任何方法)以防止在連接多個表時出現重複條目​​。所以對我來說更重要的是爲了這個更經常的場景重置'group'以正確工作。但無論如何,你的觀點也很有說服力。 –

回答

0

這不是一個真正的錯誤,我錯了我的假設。

0

這已經在我的Magento CE 1.9.2.2中修復(儘管我不確定哪個版本首次包含它)。