From 021778eed3e6485b35ec74bbbf61a31724e87f23 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 22 Aug 1997 07:13:01 +0000 Subject: [PATCH] We store Cash/money as int of size 4, so make it an int rather than a long. --- src/backend/parser/parser.c | 8 ++++---- src/backend/utils/adt/cash.c | 8 ++++---- src/include/utils/cash.h | 5 +++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/backend/parser/parser.c b/src/backend/parser/parser.c index 44e8ef9100..ab4276055c 100644 --- a/src/backend/parser/parser.c +++ b/src/backend/parser/parser.c @@ -6,7 +6,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parser.c,v 1.21 1997/08/22 00:02:08 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parser.c,v 1.22 1997/08/22 07:12:45 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -196,7 +196,7 @@ parser_typecast(Value *expr, TypeName *typename, int typlen) case T_Integer: const_string = (char *) palloc(256); string_palloced = true; - sprintf(const_string, "%ld", expr->val.ival); + sprintf(const_string, "%d", expr->val.ival); break; default: elog(WARN, @@ -242,7 +242,7 @@ parser_typecast(Value *expr, TypeName *typename, int typlen) case CASHOID: /* money */ const_string = (char *) palloc(256); string_palloced = true; - sprintf(const_string,"%ld", + sprintf(const_string,"%d", (int) ((Const*)expr)->constvalue); break; @@ -360,7 +360,7 @@ parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen) case CASHOID: /* money */ const_string = (char *) palloc(256); string_palloced = true; - sprintf(const_string,"%ld", + sprintf(const_string,"%d", (long) ((Const*)expr)->constvalue); break; case TEXTOID: /* text */ diff --git a/src/backend/utils/adt/cash.c b/src/backend/utils/adt/cash.c index 3bc01c748f..1cadb742e6 100644 --- a/src/backend/utils/adt/cash.c +++ b/src/backend/utils/adt/cash.c @@ -3,13 +3,13 @@ * Written by D'Arcy J.M. Cain * * Functions to allow input and output of money normally but store - * and handle it as longs + * and handle it as int4s * * A slightly modified version of this file and a discussion of the * workings can be found in the book "Software Solutions in C" by * Dale Schumacher, Academic Press, ISBN: 0-12-632360-7. * - * $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.8 1997/08/21 23:56:37 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.9 1997/08/22 07:12:52 momjian Exp $ */ #include @@ -97,7 +97,7 @@ cash_in(const char *str) while (isspace(*s) || *s == csymbol) s++; for (; ; s++) { - /* we look for digits as long as we have less */ + /* we look for digits as int4 as we have less */ /* than the required number of decimal places */ if (isdigit(*s) && dec < fpoint) { value = (value * 10) + *s - '0'; @@ -421,7 +421,7 @@ cashsmaller(Cash *c1, Cash *c2) /* cash_words_out() - * This converts a long as well but to a representation using words + * This converts a int4 as well but to a representation using words * Obviously way North American centric - sorry */ const char * diff --git a/src/include/utils/cash.h b/src/include/utils/cash.h index 0461a5c251..9307654315 100644 --- a/src/include/utils/cash.h +++ b/src/include/utils/cash.h @@ -3,13 +3,14 @@ * Written by D'Arcy J.M. Cain * * Functions to allow input and output of money normally but store - * and handle it as long integers. + * and handle it as int4. */ #ifndef CASH_H #define CASH_H -typedef long int Cash; +/* if we store this as 4 bytes, we better make it int, not long, bjm */ +typedef signed int Cash; extern const char *cash_out(Cash *value); extern Cash *cash_in(const char *str); -- 2.40.0