Пример #1
0
 public static function adaptResult(Compatible\CDBResult $result, Compatible\OrderQuery $query, $taskIdName)
 {
     if (!($query->grouped() || $query->aggregated())) {
         $select = $query->allSelected() ? self::permissions() : array_intersect_key(self::permissions(), $query->getSelect());
         if ($select) {
             $query->setSelect(array_diff_key($query->getSelect(), $select));
             $query->addAlias('TASK_ID', $taskIdName);
             $query->addAliasSelect('TASK_ID');
             $result->addFetchAdapter(new self($select));
         }
     }
 }
Пример #2
0
 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);
     }
 }