I also propose the following additions/changes to oracle/db.props:

INTEGER = INT
BIGINT = INT
FLOAT = FLOAT
REAL = REAL
DOUBLE = REAL
NUMERIC = NUMBER
DECIMAL = DECIMAL


-- 
Gonzalo A. Diethelm
[EMAIL PROTECTED]


> -----Original Message-----
> From: Diethelm Guallar, Gonzalo 
> Sent: Monday, July 09, 2001 12:52 PM
> To: '[EMAIL PROTECTED]'
> Subject: RE: Patch to torque: decimals
> 
> 
> Ok, I have been reviewing Oracle docs, and simplified
> my proposed changes. Oracle documents the following:
> 
>         /*
>          * This is for Oracle, it may be valid for other DBs:
>          *
>          * NUMBER(p): fixed point (integer), precision p (p digits).
>          * NUMBER(p,s): floating point (real), precision p, scale s.
>          * NUMBER is the same as NUMBER(38,0) (and is 
> floating point!).
>          * INT seems to be the same as NUMBER, except with scale 0,
>          *     and is fixed point.
>          * FLOAT(x): it seems x is ignored, and is always (even with
>          *           FLOAT) taken to be 22. This is documented as a
>          *           floating point, precision 38. One would think
>          *           this is the same as NUMBER, but I'm not sure.
>          * REAL: same as FLOAT.
>          * DECIMAL: same as FLOAT.
>          */
> 
> Here's what I propose:
> 
> * Use either BigInteger or BigDecimal to begin with, until someone
>   provides the cutting values for int, long, float, double, etc.
>   (Who? [let me guess... me?], How?).
> 
> * Use this algorithm:
> 
>         else if (tn.indexOf ("INT") != -1)
>         {
>             torqueType = "INTEGER";
>             columnType = new java.math.BigInteger (0);
>         }
>         else if (tn.indexOf ("FLOAT") != -1 ||
>                  tn.indexOf ("REAL") != -1 ||
>                  tn.indexOf ("DECIMAL") != -1)
>         {
>             torqueType = "FLOAT";
>             columnType = new java.math.BigDecimal (0);
>         }
>         else if (tn.indexOf ("NUMBER") != -1)
>         {
>             // If there is no "(x,y)", or there is one with a ',' in
>             // it, we assume this is a floating point value.
>             // We use BigDecimal always, it would be nice to be able
>             // to use Float, Double or BigDecimal depending on the
>             // values of x and y.
>             if (size.length() <= 0 ||
>                 size.indexOf(",") != -1)
>             {
>                 torqueType = "FLOAT";
>                 columnType = new java.math.BigDecimal (0);
>             }
>             // There must be an "(x)" specification, we assume it is a
>             // fixed point value.
>             // We use BigInteger always, it would be nice to be able
>             // to use int, long or BigInteger depending on the values
>             // of x.
>             else
>             {
>                 torqueType = "INTEGER";
>                 columnType = new java.math.BigInteger (0);
>             }
>         }
> 
> Thoughts? I could commit this myself if there are no opposing
> views on the way to handle this.
> 
> 
> -- 
> Gonzalo A. Diethelm
> [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to