rewriteSubjects = $this->properties; if (! $query->getDb()->getAdapter() instanceof Pgsql) { // Only process properties if the adapter is PostgreSQL. $this->properties = []; } } public function rewriteCondition(Condition $condition, $relation = null) { /** * TODO(lippserd): Duplicate code because {@see RewriteFilterBehavior}s come after {@see PropertyBehavior}s. * {@see \ipl\Orm\Compat\FilterProcessor::requireAndResolveFilterColumns()} */ $column = $condition->metaData()->get('columnName'); if (isset($this->rewriteSubjects[$column])) { $value = $condition->getValue(); if (empty($this->properties) && is_resource($value)) { // Only for PostgreSQL. throw new UnexpectedValueException(sprintf('Unexpected resource for %s', $column)); } // ctype_xdigit expects strings. $value = (string) $value; /** * Although this code path is also affected by the duplicate behavior evaluation stated in {@see toDb()}, * no further adjustments are needed as ctype_xdigit returns false for binary and bytea hex strings. */ if (ctype_xdigit($value)) { if (empty($this->properties) && substr($value, 0, 2) !== '\\x') { // Only for PostgreSQL. $condition->setValue(sprintf('\\x%s', $value)); } else { $condition->setValue(hex2bin($value)); } } } } }