return queries($prefix . implode(",\n", $values) . $suffix);
}
- function convertSearch($idf, $field) {
+ function convertSearch($idf, $val, $field) {
return (preg_match('~char|text|enum|set~', $field["type"]) && !preg_match("~^utf8~", $field["collation"])
? "CONVERT($idf USING " . charset($this->_conn) . ")"
: $idf
return true;
}
+ function convertSearch($idf, $val, $field) {
+ return (preg_match('~char|text' . (is_numeric($val["val"]) && !preg_match('~LIKE~', $val["op"]) ? '|' . number_type() : '') . '~', $field["type"])
+ ? $idf
+ : "CAST($idf AS text)"
+ );
+ }
+
function warnings() {
return $this->_conn->warnings();
}
$cond .= " " . $this->processInput($fields[$val["col"]], $val["val"]);
}
if ($val["col"] != "") {
- $return[] = $prefix . $driver->convertSearch(idf_escape($val["col"]), $fields[$val["col"]]) . $cond;
+ $return[] = $prefix . $driver->convertSearch(idf_escape($val["col"]), $val, $fields[$val["col"]]) . $cond;
} else {
// find anywhere
$cols = array();
if ((is_numeric($val["val"]) || !preg_match('~' . number_type() . '|bit~', $field["type"]))
&& (!preg_match("~[\x80-\xFF]~", $val["val"]) || preg_match('~char|text|enum|set~', $field["type"]))
) {
- $cols[] = $prefix . $driver->convertSearch(idf_escape($name), $field) . $cond;
+ $cols[] = $prefix . $driver->convertSearch(idf_escape($name), $val, $field) . $cond;
}
}
$return[] = ($cols ? "(" . implode(" OR ", $cols) . ")" : "1 = 0");
}
/** Convert column to be searchable
- * @param string escaped name
+ * @param string escaped column name
+ * @param array array("op" => , "val" => )
* @param array
* @return string
*/
- function convertSearch($idf, $field) {
+ function convertSearch($idf, $val, $field) {
return $idf;
}
Adminer 4.6.1-dev:
MySQL: Support non-utf8 charset in search in column
MySQL: Support geometry in MySQL 8 (bug #574)
+PostgreSQL: Cast to string when searching using LIKE (bug #325)
PostgreSQL: Don't treat interval type as number (bug #474)
PostgreSQL: Fix condition for selecting no rows