function __construct(OrderQuery $query, array $select) { $this->select = $query->getSelectNamesAssoc() + array_flip($select); if (!$query->aggregated()) { $query->addAliasSelect('TYPE'); $query->addAliasSelect('SETTINGS'); $query->addAliasSelect('MULTIPLE'); $query->registerRuntimeField('PROPERTY_ID', new Entity\ExpressionField('PROPERTY_ID', 'DISTINCT(%s)', 'ID')); $sel = $query->getSelect(); array_unshift($sel, 'PROPERTY_ID'); $query->setSelect($sel); } }