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