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 } );      } | 
