Patch to correct 64-bit money type in 8.3devel

Started by Andrew Chernowalmost 19 years ago2 messagespatches
Jump to latest
#1Andrew Chernow
ac@esilo.com

Attached is a patch for the 8.3devel 64-bit money type. Bug reported
here: http://archives.postgresql.org/pgsql-bugs/2007-08/msg00137.php.

Run the test program included in the bug report to see the issue. Then
apply patch and run the test again.

Andrew Chernow

Index: src/backend/utils/adt/cash.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/utils/adt/cash.c,v
retrieving revision 1.71
diff -c -C6 -r1.71 cash.c
*** src/backend/utils/adt/cash.c        12 Jul 2007 23:51:10 -0000      1.71
--- src/backend/utils/adt/cash.c        20 Aug 2007 14:10:44 -0000
***************
*** 369,394 ****
    */
   Datum
   cash_recv(PG_FUNCTION_ARGS)
   {
         StringInfo      buf = (StringInfo) PG_GETARG_POINTER(0);

! PG_RETURN_CASH((Cash) pq_getmsgint(buf, sizeof(Cash)));
}

/*
* cash_send - converts cash to
binary format
*/
Datum
cash_send(PG_FUNCTION_ARGS)
{
Cash arg1 = PG_GETARG_CASH(0);
StringInfoData buf;

pq_begintypsend(&buf);
! pq_sendint(&buf, arg1, sizeof(Cash));
PG_RETURN_BYTEA_P(pq_endtypsend(&buf));
}

   /*
    * Comparison functions
    */
--- 369,394 ----
    */
   Datum
   cash_recv(PG_FUNCTION_ARGS)
   {
         StringInfo      buf = (StringInfo) PG_GETARG_POINTER(0);

! PG_RETURN_CASH((Cash) pq_getmsgint64(buf));
}

/*
* cash_send - converts cash to
binary format
*/
Datum
cash_send(PG_FUNCTION_ARGS)
{
Cash arg1 = PG_GETARG_CASH(0);
StringInfoData buf;

pq_begintypsend(&buf);
! pq_sendint64(&buf, arg1);
PG_RETURN_BYTEA_P(pq_endtypsend(&buf));
}

/*
* Comparison functions
*/

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Chernow (#1)
Re: Patch to correct 64-bit money type in 8.3devel

Andrew Chernow <ac@esilo.com> writes:

Attached is a patch for the 8.3devel 64-bit money type. Bug reported
here: http://archives.postgresql.org/pgsql-bugs/2007-08/msg00137.php.

This message seems to have been whacked around by your mailer --- you
might try sending the patch as an attachment next time. Fortunately
it's a small enough patch to apply by hand, and I've done that.
Thanks for the report and fix!

regards, tom lane