We store Cash/money as int of size 4, so make it an int rather than a long.
authorBruce Momjian
Fri, 22 Aug 1997 07:13:01 +0000 (07:13 +0000)
committerBruce Momjian
Fri, 22 Aug 1997 07:13:01 +0000 (07:13 +0000)
src/backend/parser/parser.c
src/backend/utils/adt/cash.c
src/include/utils/cash.h

index 44e8ef910063b62f17723e8ebc75e6e1e7146dea..ab4276055cdf1f6070c376c1da267e53a83ce379 100644 (file)
@@ -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 */
index 3bc01c748f209fac1767c628440e1d0ee251bcf8..1cadb742e62bf280118f5684877a51c6584ca0a7 100644 (file)
@@ -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 *
index 0461a5c251385918beec5f7036b2ecc6d4cc1b8c..9307654315aa62c9663a8c1e480f2835a70701b8 100644 (file)
@@ -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);