diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index 5b4085ed..db962e02 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -217,7 +217,7 @@ if (isset($_GET["pgsql"])) { function convertSearch($idf, $val, $field) { return (preg_match('~char|text' . (!preg_match('~LIKE~', $val["op"]) ? '|date|time(stamp)?' . (is_numeric($val["val"]) ? '|' . number_type() : '') : '') - . '~', $field["type"]) + . '~', $field["type"]) || $val["op"] == "SQL" ? $idf : "CAST($idf AS text)" ); @@ -845,7 +845,7 @@ AND typelem = 0" $structured_types[$key] = array_keys($val); } $unsigned = array(); - $operators = array("=", "<", ">", "<=", ">=", "!=", "~", "!~", "LIKE", "LIKE %%", "ILIKE", "ILIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL"); // no "SQL" to avoid SQL injection + $operators = array("=", "<", ">", "<=", ">=", "!=", "~", "!~", "LIKE", "LIKE %%", "ILIKE", "ILIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL", "SQL"); $functions = array("char_length", "lower", "round", "to_hex", "to_timestamp", "upper"); $grouping = array("avg", "count", "count distinct", "max", "min", "sum"); $edit_functions = array( diff --git a/changes.txt b/changes.txt index ec4227fc..a603fc79 100644 --- a/changes.txt +++ b/changes.txt @@ -6,6 +6,7 @@ Fix displaying info about non-alphabetical objects (bug #599) PDO: Support binary fields download MySQL: Use CONVERT() only when searching for non-ASCII (bug #603) PostgreSQL: Do not cast date/time searches to text +PostgreSQL: Add SQL operator to search Adminer 4.6.2 (released 2018-02-20): Semi-transparent border on table actions