You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2005/06/08 23:28:12 UTC
svn commit: r189642 - in
/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types:
BigIntegerDecimal.java BinaryDecimal.java CDCDataValueFactory.java
Author: djd
Date: Wed Jun 8 14:28:11 2005
New Revision: 189642
URL: http://svn.apache.org/viewcvs?rev=189642&view=rev
Log:
Fix BinaryDecimal to have a hashCode that matches the integer versions,
to ensure that hash joins work correctly.
Modified:
incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/BigIntegerDecimal.java
incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/BinaryDecimal.java
incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/CDCDataValueFactory.java
Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/BigIntegerDecimal.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/BigIntegerDecimal.java?rev=189642&r1=189641&r2=189642&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/BigIntegerDecimal.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/BigIntegerDecimal.java Wed Jun 8 14:28:11 2005
@@ -59,12 +59,14 @@
BigInteger bi = new BigInteger(data2c);
+ // If at any time we see that the value to be scaled down
+ // is within the range for a long, then we are guaranteed
+ // that the scaled down value is within the range for long.
boolean rangeOk = false;
if ((bi.compareTo(BigIntegerDecimal.MAXLONG_PLUS_ONE) < 0)
&& (bi.compareTo(BigIntegerDecimal.MINLONG_MINUS_ONE) > 0))
rangeOk = true;
-
for (int i = 0; i < sqlScale; i++)
{
bi = bi.divide(BigIntegerDecimal.TEN);
@@ -87,16 +89,13 @@
{
if (isNull())
return 0.0f;
- return Float.parseFloat(getString());
-
- // TODO - correct implementation
+ return NumberDataType.normalizeREAL(Float.parseFloat(getString()));
}
public double getDouble() throws StandardException
{
if (isNull())
return 0.0;
- return Double.parseDouble(getString());
- // TODO - correct implementation
+ return NumberDataType.normalizeDOUBLE(Double.parseDouble(getString()));
}
@@ -154,8 +153,6 @@
String exponent = theValue.substring(expOffset);
-
- // TODO Need to handle a + sign in the exponent
scale = -1 * Integer.parseInt(exponent);
theValue = theValue.substring(0, ePosition);
}
@@ -196,7 +193,6 @@
if (isNull())
return null;
- // TODO - correct impl
String unscaled = new BigInteger(data2c).toString();
if (sqlScale == 0)
Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/BinaryDecimal.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/BinaryDecimal.java?rev=189642&r1=189641&r2=189642&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/BinaryDecimal.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/BinaryDecimal.java Wed Jun 8 14:28:11 2005
@@ -695,7 +695,7 @@
return 0;
try {
- return (int) Double.doubleToLongBits(getDouble());
+ return (int) getLong();
} catch (StandardException se)
{
return 0;
Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/CDCDataValueFactory.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/CDCDataValueFactory.java?rev=189642&r1=189641&r2=189642&view=diff
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/CDCDataValueFactory.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/CDCDataValueFactory.java Wed Jun 8 14:28:11 2005
@@ -43,12 +43,6 @@
public CDCDataValueFactory() {
}
- public void boot(boolean create, Properties properties) throws StandardException {
- System.out.println("WARNING - Experimental J2ME/CDC/Foundation/JSR 169 Derby implementation");
- System.out.println("WARNING - NOT FOR USE IN PRODUCTION");
- super.boot(create, properties);
- }
-
/* (non-Javadoc)
* @see org.apache.derby.iapi.services.monitor.ModuleSupportable#canSupport(java.util.Properties)
*/