protected function processSearchQuery(dmDoctrineQuery $query, $search)
 {
     $searchParts = explode(' ', $search);
     $rootAlias = $query->getRootAlias();
     $translationAlias = $rootAlias . 'Translation';
     $table = $this->getDmModule()->getTable();
     $query->withI18n($this->getUser()->getCulture(), $this->getDmModule()->getModel());
     foreach ($searchParts as $searchPart) {
         $ors = array();
         $params = array();
         foreach ($table->getAllColumns() as $columnName => $column) {
             $alias = $table->isI18nColumn($columnName) ? $translationAlias : $rootAlias;
             switch ($column['type']) {
                 case 'blob':
                 case 'clob':
                 case 'string':
                 case 'enum':
                 case 'date':
                     $ors[] = $alias . '.' . $columnName . ' LIKE ?';
                     $params[] = '%' . $searchPart . '%';
                     break;
                 case 'integer':
                 case 'float':
                 case 'decimal':
                     if (is_numeric($searchPart)) {
                         $ors[] = $alias . '.' . $columnName . ' = ?';
                         $params[] = $searchPart;
                     }
                     break;
                 case 'boolean':
                 case 'time':
                 case 'timestamp':
                 case 'date':
                 default:
             }
         }
         if (count($ors)) {
             $query->addWhere(implode(' OR ', $ors), $params);
         }
     }
 }