summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjeff <jeff>2008-04-14 13:42:25 +0000
committerjeff <jeff>2008-04-14 13:42:25 +0000
commit356db8bf3c2d707f4987ca3e5f14b3b4662775ff (patch)
tree51736eec9b9a35a0705df4c10666fa9aa972dab5
parent22c8f145d0915981e479d2e31ed5e845cd699c9f (diff)
Improve record searching
-rw-r--r--FS/FS/Record.pm8
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 } );
}