From 464811eae8a63ecf1f87224f117682d2dc8d7df8 Mon Sep 17 00:00:00 2001 From: Ryan Culpepper Date: Sat, 28 Dec 2013 00:06:44 -0500 Subject: [PATCH] fix negative DECIMAL w/ fraction on mysql --- pkgs/db-pkgs/db-lib/db/private/mysql/message.rkt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/db-pkgs/db-lib/db/private/mysql/message.rkt b/pkgs/db-pkgs/db-lib/db/private/mysql/message.rkt index b4663d0b85..ef8f273093 100644 --- a/pkgs/db-pkgs/db-lib/db/private/mysql/message.rkt +++ b/pkgs/db-pkgs/db-lib/db/private/mysql/message.rkt @@ -749,10 +749,11 @@ computed string on the server can be. See also: ;; big integer => (lambda (m) (string->number s))] - [(regexp-match #rx"^-?([0-9]*)\\.([0-9]*)$" s) + [(regexp-match #rx"^(-)?([0-9]*)\\.([0-9]*)$" s) => (lambda (m) - (+ (string->number (cadr m)) - (parse-exact-fraction (caddr m))))] + (* (if (cadr m) -1 1) + (+ (string->number (caddr m)) + (parse-exact-fraction (cadddr m)))))] [else (error/internal* 'parse-decimal "cannot parse as decimal" '("string" value) s)]))