You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2012/08/24 00:23:56 UTC

svn commit: r1376740 - /incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/

Author: prestonc
Date: Thu Aug 23 22:23:55 2012
New Revision: 1376740

URL: http://svn.apache.org/viewvc?rev=1376740&view=rev
Log:
Moved the conversion Pointables out to the class instead of in each method.

Modified:
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AddOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/DivideOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/IntegerDivideOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/ModOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/MultiplyOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/SubtractOperation.java

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AddOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AddOperation.java?rev=1376740&r1=1376739&r2=1376740&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AddOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AddOperation.java Thu Aug 23 22:23:55 2012
@@ -22,7 +22,9 @@ import edu.uci.ics.hyracks.data.std.util
 public class AddOperation extends AbstractArithmeticOperation {
     protected final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
     protected final DataOutput dOutInner = abvsInner.getDataOutput();
-
+    private XSDecimalPointable decp1 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
+    private XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
+    
     @Override
     public void operateDateDate(XSDatePointable datep, XSDatePointable datep2, DynamicContext dCtx, DataOutput dOut)
             throws SystemException, IOException {
@@ -154,7 +156,6 @@ public class AddOperation extends Abstra
     public void operateDecimalInteger(XSDecimalPointable decp1, LongPointable longp2, DataOutput dOut)
             throws SystemException, IOException {
         abvsInner.reset();
-        XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
         decp2.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp2.setDecimal(longp2.longValue(), (byte) 0);
         operateDecimalDecimal(decp1, decp2, dOut);
@@ -432,7 +433,6 @@ public class AddOperation extends Abstra
 
     public long operateLongDecimal(long longValue, XSDecimalPointable decp2) throws SystemException, IOException {
         abvsInner.reset();
-        XSDecimalPointable decp1 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
         decp1.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp1.setDecimal(longValue, (byte) 0);
         // Prepare

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/DivideOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/DivideOperation.java?rev=1376740&r1=1376739&r2=1376740&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/DivideOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/DivideOperation.java Thu Aug 23 22:23:55 2012
@@ -21,7 +21,10 @@ import edu.uci.ics.hyracks.data.std.util
 
 public class DivideOperation extends AbstractArithmeticOperation {
     protected final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
-
+    private DoublePointable doublep = (DoublePointable) DoublePointable.FACTORY.createPointable();
+    private XSDecimalPointable decp1 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
+    private XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
+    
     @Override
     public void operateDateDate(XSDatePointable datep, XSDatePointable datep2, DynamicContext dCtx, DataOutput dOut)
             throws SystemException, IOException {
@@ -71,7 +74,6 @@ public class DivideOperation extends Abs
         value1 /= value2;
         // Save
         abvsInner.reset();
-        DoublePointable doublep = (DoublePointable) DoublePointable.FACTORY.createPointable();
         doublep.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), DoublePointable.TYPE_TRAITS.getFixedLength());
         doublep.setDouble(value1);
         CastToDecimalOperation castToDecmial = new CastToDecimalOperation();
@@ -110,7 +112,6 @@ public class DivideOperation extends Abs
         }
         // Convert
         abvsInner.reset();
-        XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
         decp2.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp2.setDecimal(longp2.longValue(), (byte) 0);
         operateDecimalDecimal(decp1, decp2, dOut);
@@ -218,7 +219,6 @@ public class DivideOperation extends Abs
         value /= longp2.longValue();
 
         abvsInner.reset();
-        DoublePointable doublep = (DoublePointable) DoublePointable.FACTORY.createPointable();
         doublep.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), DoublePointable.TYPE_TRAITS.getFixedLength());
         doublep.setDouble(value);
         CastToDecimalOperation castToDecmial = new CastToDecimalOperation();
@@ -313,7 +313,6 @@ public class DivideOperation extends Abs
             throw new SystemException(ErrorCode.FOAR0001);
         }
         abvsInner.reset();
-        XSDecimalPointable decp1 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
         decp1.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp1.setDecimal(longp1.longValue(), (byte) 0);
         operateDecimalDecimal(decp1, decp2, dOut);
@@ -354,7 +353,6 @@ public class DivideOperation extends Abs
         value /= longp2.doubleValue();
 
         abvsInner.reset();
-        DoublePointable doublep = (DoublePointable) DoublePointable.FACTORY.createPointable();
         doublep.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), DoublePointable.TYPE_TRAITS.getFixedLength());
         doublep.setDouble(value);
         CastToDecimalOperation castToDecmial = new CastToDecimalOperation();
@@ -439,7 +437,6 @@ public class DivideOperation extends Abs
         value /= intp2.intValue();
 
         abvsInner.reset();
-        DoublePointable doublep = (DoublePointable) DoublePointable.FACTORY.createPointable();
         doublep.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), DoublePointable.TYPE_TRAITS.getFixedLength());
         doublep.setDouble(value);
         CastToDecimalOperation castToDecmial = new CastToDecimalOperation();

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/IntegerDivideOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/IntegerDivideOperation.java?rev=1376740&r1=1376739&r2=1376740&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/IntegerDivideOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/IntegerDivideOperation.java Thu Aug 23 22:23:55 2012
@@ -20,6 +20,8 @@ import edu.uci.ics.hyracks.data.std.util
 
 public class IntegerDivideOperation extends AbstractArithmeticOperation {
     protected final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private XSDecimalPointable decp1 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
+    private XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
 
     @Override
     public void operateDateDate(XSDatePointable datep, XSDatePointable datep2, DynamicContext dCtx, DataOutput dOut)
@@ -129,7 +131,6 @@ public class IntegerDivideOperation exte
     public void operateDecimalInteger(XSDecimalPointable decp1, LongPointable longp2, DataOutput dOut)
             throws SystemException, IOException {
         abvsInner.reset();
-        XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
         decp2.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp2.setDecimal(longp2.longValue(), (byte) 0);
         operateDecimalDecimal(decp1, decp2, dOut);
@@ -327,7 +328,6 @@ public class IntegerDivideOperation exte
     public void operateIntegerDecimal(LongPointable longp1, XSDecimalPointable decp2, DataOutput dOut)
             throws SystemException, IOException {
         abvsInner.reset();
-        XSDecimalPointable decp1 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
         decp1.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp1.setDecimal(longp1.longValue(), (byte) 0);
         operateDecimalDecimal(decp1, decp2, dOut);

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/ModOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/ModOperation.java?rev=1376740&r1=1376739&r2=1376740&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/ModOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/ModOperation.java Thu Aug 23 22:23:55 2012
@@ -20,6 +20,8 @@ import edu.uci.ics.hyracks.data.std.util
 
 public class ModOperation extends AbstractArithmeticOperation {
     protected final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+    private XSDecimalPointable decp1 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
+    private XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
 
     @Override
     public void operateDateDate(XSDatePointable datep, XSDatePointable datep2, DynamicContext dCtx, DataOutput dOut)
@@ -118,7 +120,6 @@ public class ModOperation extends Abstra
     public void operateDecimalInteger(XSDecimalPointable decp1, LongPointable longp2, DataOutput dOut)
             throws SystemException, IOException {
         abvsInner.reset();
-        XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
         decp2.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp2.setDecimal(longp2.longValue(), (byte) 0);
         operateDecimalDecimal(decp1, decp2, dOut);
@@ -278,7 +279,6 @@ public class ModOperation extends Abstra
     public void operateIntegerDecimal(LongPointable longp1, XSDecimalPointable decp2, DataOutput dOut)
             throws SystemException, IOException {
         abvsInner.reset();
-        XSDecimalPointable decp1 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
         decp1.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp1.setDecimal(longp1.longValue(), (byte) 0);
         operateDecimalDecimal(decp1, decp2, dOut);

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/MultiplyOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/MultiplyOperation.java?rev=1376740&r1=1376739&r2=1376740&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/MultiplyOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/MultiplyOperation.java Thu Aug 23 22:23:55 2012
@@ -20,7 +20,9 @@ import edu.uci.ics.hyracks.data.std.util
 
 public class MultiplyOperation extends AbstractArithmeticOperation {
     protected final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
-
+    private XSDecimalPointable decp1 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
+    private XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
+    
     @Override
     public void operateDateDate(XSDatePointable datep, XSDatePointable datep2, DynamicContext dCtx, DataOutput dOut)
             throws SystemException, IOException {
@@ -104,7 +106,6 @@ public class MultiplyOperation extends A
     public void operateDecimalInteger(XSDecimalPointable decp1, LongPointable longp2, DataOutput dOut)
             throws SystemException, IOException {
         abvsInner.reset();
-        XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
         decp2.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp2.setDecimal(longp2.getLong(), (byte) 0);
         operateDecimalDecimal(decp1, decp2, dOut);
@@ -369,7 +370,6 @@ public class MultiplyOperation extends A
 
     public long operateLongDecimal(long longValue, XSDecimalPointable decp2) throws SystemException, IOException {
         abvsInner.reset();
-        XSDecimalPointable decp1 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
         decp1.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp1.setDecimal(longValue, (byte) 0);
         // Prepare

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/SubtractOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/SubtractOperation.java?rev=1376740&r1=1376739&r2=1376740&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/SubtractOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/SubtractOperation.java Thu Aug 23 22:23:55 2012
@@ -24,6 +24,8 @@ public class SubtractOperation extends A
     protected final DataOutput dOutInner1 = abvsInner1.getDataOutput();
     protected final ArrayBackedValueStorage abvsInner2 = new ArrayBackedValueStorage();
     protected final DataOutput dOutInner2 = abvsInner2.getDataOutput();
+    private XSDecimalPointable decp1 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
+    private XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
 
     public void operateDateDate(XSDatePointable datep1, XSDatePointable datep2, DynamicContext dCtx, DataOutput dOut)
             throws SystemException, IOException {
@@ -64,12 +66,12 @@ public class SubtractOperation extends A
         DateTime.getTimezoneDateTime(datetimep1, dCtx, dOutInner1);
         byte[] bytes1 = abvsInner1.getByteArray();
         int startOffset1 = abvsInner1.getStartOffset() + 1;
-        
+
         abvsInner2.reset();
         DateTime.getTimezoneDateTime(datetimep2, dCtx, dOutInner2);
         byte[] bytes2 = abvsInner2.getByteArray();
         int startOffset2 = abvsInner2.getStartOffset() + 1;
-        
+
         long dayTime1 = XSDateTimePointable.getDayTime(bytes1, startOffset1);
         long dayTime2 = XSDateTimePointable.getDayTime(bytes2, startOffset2);
         long yearMonth = XSDateTimePointable.getYearMonth(bytes1, startOffset1)
@@ -206,7 +208,6 @@ public class SubtractOperation extends A
     public void operateDecimalInteger(XSDecimalPointable decp1, LongPointable longp2, DataOutput dOut)
             throws SystemException, IOException {
         abvsInner1.reset();
-        XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
         decp2.set(abvsInner1.getByteArray(), abvsInner1.getStartOffset(),
                 XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp2.setDecimal(longp2.longValue(), (byte) 0);
@@ -540,14 +541,13 @@ public class SubtractOperation extends A
 
     public long operateIntDecimal(long longValue, XSDecimalPointable decp2) throws SystemException, IOException {
         abvsInner1.reset();
-        XSDecimalPointable decp1 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
         decp1.set(abvsInner1.getByteArray(), abvsInner1.getStartOffset(),
                 XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp1.setDecimal(longValue, (byte) 0);
         // Prepare
-        long value1 = decp1.getDecimalValue();
+        long value1 = longValue;
         long value2 = decp2.getDecimalValue();
-        byte place1 = decp1.getDecimalPlace();
+        byte place1 = 0;
         byte place2 = decp2.getDecimalPlace();
         byte count1 = decp1.getDigitCount();
         byte count2 = decp2.getDigitCount();
@@ -573,9 +573,8 @@ public class SubtractOperation extends A
     }
 
     public long operateDecimalInt(XSDecimalPointable decp1, long longValue) throws SystemException, IOException {
-        abvsInner1.reset();
-        XSDecimalPointable decp2 = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
-        decp2.set(abvsInner1.getByteArray(), abvsInner1.getStartOffset(),
+        abvsInner2.reset();
+        decp2.set(abvsInner2.getByteArray(), abvsInner2.getStartOffset(),
                 XSDecimalPointable.TYPE_TRAITS.getFixedLength());
         decp2.setDecimal(longValue, (byte) 0);
         // Prepare