diff options
author | jeff <jeff> | 2008-04-14 13:42:25 +0000 |
---|---|---|
committer | jeff <jeff> | 2008-04-14 13:42:25 +0000 |
commit | 356db8bf3c2d707f4987ca3e5f14b3b4662775ff (patch) | |
tree | 51736eec9b9a35a0705df4c10666fa9aa972dab5 | |
parent | 22c8f145d0915981e479d2e31ed5e845cd699c9f (diff) |
Improve record searching
-rw-r--r-- | FS/FS/Record.pm | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm index db940034d..d010f860b 100644 --- a/FS/FS/Record.pm +++ b/FS/FS/Record.pm @@ -298,6 +298,14 @@ sub qsearch { && dbdef->table($table)->column($field)->type =~ /(int|(big)?serial)/i ) { $sth->bind_param($bind++, $record->{$field}, { TYPE => SQL_INTEGER } ); + }elsif ( $record->{$field} =~ /^[+-]?\d+(\.\d+)?$/ + && dbdef->table($table)->column($field)->type =~ /(numeric)/i + ) { + $sth->bind_param($bind++, $record->{$field}, { TYPE => SQL_FLOAT } ); + }elsif ( $record->{$field} =~ /[-+]?\d*\.?\d+([eE][-+]?\d+)?/ + && dbdef->table($table)->column($field)->type =~ /(float4)/i + ) { + $sth->bind_param($bind++, $record->{$field}, { TYPE => SQL_FLOAT } ); } else { $sth->bind_param($bind++, $record->{$field}, { TYPE => SQL_VARCHAR } ); } |