From 89c66ccabe93f9e9e2e707e4c54cf40a9f5d9512 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Tue, 13 Mar 2018 14:09:53 +0100 Subject: [PATCH] PostgreSQL: Do not cast number searches to text --- adminer/drivers/pgsql.inc.php | 2 +- adminer/include/adminer.inc.php | 2 +- changes.txt | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index 01e2cb51..6953ebf6 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -216,7 +216,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() : '') : '') + . (!preg_match('~LIKE~', $val["op"]) ? '|date|time(stamp)?|' . number_type() : '') . '~', $field["type"]) ? $idf : "CAST($idf AS text)" diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php index c0fa5968..4d2f5b3a 100644 --- a/adminer/include/adminer.inc.php +++ b/adminer/include/adminer.inc.php @@ -560,7 +560,7 @@ class Adminer { // find anywhere $cols = array(); foreach ($fields as $name => $field) { - if ((is_numeric($val["val"]) || !preg_match('~' . number_type() . '|bit~', $field["type"])) + if ((preg_match('~^[-\d.' . (preg_match('~IN$~', $val["op"]) ? ',' : '') . ']+$~', $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), $val, $field) . $cond; diff --git a/changes.txt b/changes.txt index 3416bff4..443767fa 100644 --- a/changes.txt +++ b/changes.txt @@ -5,9 +5,9 @@ Decrease timeout for running slow queries from 5 seconds to 2 seconds 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: Fix editing data in views (bug #605, regression from 4.6.0) -PostgreSQL: Do not cast date/time searches to text PostgreSQL: Add SQL operator to search +PostgreSQL: Fix editing data in views (bug #605, regression from 4.6.0) +PostgreSQL: Do not cast date/time/number searches to text Adminer 4.6.2 (released 2018-02-20): Semi-transparent border on table actions