/**
  * Comparisons are done against the full string (including prefix/postfix)
  *
  * @param QueryBuilder $QB
  * @param string $tablealias
  * @param string $colname
  * @param string $comp
  * @param string|string[] $value
  * @param string $op
  */
 public function filter(QueryBuilder $QB, $tablealias, $colname, $comp, $value, $op)
 {
     /** @var QueryBuilderWhere $add Where additionional queries are added to */
     if (is_array($value)) {
         $add = $QB->filters()->where($op);
         // sub where group
         $op = 'OR';
     } else {
         $add = $QB->filters();
         // main where clause
     }
     foreach ((array) $value as $item) {
         $column = "{$tablealias}.{$colname}";
         if ($this->config['prefix']) {
             $pl = $QB->addValue($this->config['prefix']);
             $column = "{$pl} || {$column}";
         }
         if ($this->config['postfix']) {
             $pl = $QB->addValue($this->config['postfix']);
             $column = "{$column} || {$pl}";
         }
         $pl = $QB->addValue($item);
         $add->where($op, "{$column} {$comp} {$pl}");
     }
 }
 /**
  * Decimals need to be casted to proper type for comparison
  *
  * @param QueryBuilder $QB
  * @param string $tablealias
  * @param string $colname
  * @param string $comp
  * @param string|\string[] $value
  * @param string $op
  */
 public function filter(QueryBuilder $QB, $tablealias, $colname, $comp, $value, $op)
 {
     /** @var QueryBuilderWhere $add Where additionional queries are added to*/
     if (is_array($value)) {
         $add = $QB->filters()->where($op);
         // sub where group
         $op = 'OR';
     } else {
         $add = $QB->filters();
         // main where clause
     }
     foreach ((array) $value as $item) {
         $pl = $QB->addValue($item);
         $add->where($op, "CAST({$tablealias}.{$colname} AS DECIMAL) {$comp} CAST({$pl} AS DECIMAL)");
     }
 }
 /**
  * @param QueryBuilder $QB
  * @param string $tablealias
  * @param string $colname
  * @param string $comp
  * @param string|\string[] $value
  * @param string $op
  */
 public function filter(QueryBuilder $QB, $tablealias, $colname, $comp, $value, $op)
 {
     // when accessing the revision column we need to convert from Unix timestamp
     $col = "{$tablealias}.{$colname}";
     if ($colname == 'rev') {
         $col = "DATETIME({$col}, 'unixepoch', 'localtime')";
     }
     /** @var QueryBuilderWhere $add Where additionional queries are added to*/
     if (is_array($value)) {
         $add = $QB->filters()->where($op);
         // sub where group
         $op = 'OR';
     } else {
         $add = $QB->filters();
         // main where clause
     }
     foreach ((array) $value as $item) {
         $pl = $QB->addValue($item);
         $add->where($op, "{$col} {$comp} {$pl}");
     }
 }