You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/06/03 23:29:46 UTC
svn commit: r1489186 - in
/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions:
gen/ templates/
Author: hashutosh
Date: Mon Jun 3 21:29:45 2013
New Revision: 1489186
URL: http://svn.apache.org/r1489186
Log:
HIVE-4649 : Unit test failure in TestColumnScalarOperationVectorExpressionEvaluation (Jitendra Nath Pandey via Ashutosh Chauhan)
Modified:
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColEqualDoubleScalar.java
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColGreaterDoubleScalar.java
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColGreaterEqualDoubleScalar.java
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColLessDoubleScalar.java
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColLessEqualDoubleScalar.java
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColNotEqualDoubleScalar.java
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColEqualDoubleScalar.java
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColGreaterDoubleScalar.java
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColGreaterEqualDoubleScalar.java
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColLessDoubleScalar.java
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColLessEqualDoubleScalar.java
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColNotEqualDoubleScalar.java
hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/templates/ColumnCompareScalar.txt
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColEqualDoubleScalar.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColEqualDoubleScalar.java?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColEqualDoubleScalar.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColEqualDoubleScalar.java Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class DoubleColEqualDoubleScalar
LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
double[] vector = inputColVector.vector;
long[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class DoubleColEqualDoubleScalar
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class DoubleColEqualDoubleScalar
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] == value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class DoubleColEqualDoubleScalar
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] == value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] == value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColGreaterDoubleScalar.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColGreaterDoubleScalar.java?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColGreaterDoubleScalar.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColGreaterDoubleScalar.java Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class DoubleColGreaterDoubleScala
LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
double[] vector = inputColVector.vector;
long[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class DoubleColGreaterDoubleScala
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class DoubleColGreaterDoubleScala
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] > value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class DoubleColGreaterDoubleScala
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] > value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] > value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColGreaterEqualDoubleScalar.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColGreaterEqualDoubleScalar.java?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColGreaterEqualDoubleScalar.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColGreaterEqualDoubleScalar.java Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class DoubleColGreaterEqualDouble
LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
double[] vector = inputColVector.vector;
long[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class DoubleColGreaterEqualDouble
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class DoubleColGreaterEqualDouble
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] >= value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class DoubleColGreaterEqualDouble
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] >= value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] >= value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColLessDoubleScalar.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColLessDoubleScalar.java?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColLessDoubleScalar.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColLessDoubleScalar.java Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class DoubleColLessDoubleScalar e
LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
double[] vector = inputColVector.vector;
long[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class DoubleColLessDoubleScalar e
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class DoubleColLessDoubleScalar e
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] < value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class DoubleColLessDoubleScalar e
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] < value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] < value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColLessEqualDoubleScalar.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColLessEqualDoubleScalar.java?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColLessEqualDoubleScalar.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColLessEqualDoubleScalar.java Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class DoubleColLessEqualDoubleSca
LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
double[] vector = inputColVector.vector;
long[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class DoubleColLessEqualDoubleSca
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class DoubleColLessEqualDoubleSca
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] <= value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class DoubleColLessEqualDoubleSca
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] <= value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] <= value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColNotEqualDoubleScalar.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColNotEqualDoubleScalar.java?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColNotEqualDoubleScalar.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/DoubleColNotEqualDoubleScalar.java Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class DoubleColNotEqualDoubleScal
LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
double[] vector = inputColVector.vector;
long[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class DoubleColNotEqualDoubleScal
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class DoubleColNotEqualDoubleScal
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] != value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class DoubleColNotEqualDoubleScal
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] != value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] != value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColEqualDoubleScalar.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColEqualDoubleScalar.java?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColEqualDoubleScalar.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColEqualDoubleScalar.java Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class LongColEqualDoubleScalar ex
LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
long[] vector = inputColVector.vector;
long[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class LongColEqualDoubleScalar ex
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class LongColEqualDoubleScalar ex
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] == value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class LongColEqualDoubleScalar ex
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] == value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] == value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColGreaterDoubleScalar.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColGreaterDoubleScalar.java?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColGreaterDoubleScalar.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColGreaterDoubleScalar.java Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class LongColGreaterDoubleScalar
LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
long[] vector = inputColVector.vector;
long[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class LongColGreaterDoubleScalar
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class LongColGreaterDoubleScalar
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] > value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class LongColGreaterDoubleScalar
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] > value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] > value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColGreaterEqualDoubleScalar.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColGreaterEqualDoubleScalar.java?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColGreaterEqualDoubleScalar.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColGreaterEqualDoubleScalar.java Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class LongColGreaterEqualDoubleSc
LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
long[] vector = inputColVector.vector;
long[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class LongColGreaterEqualDoubleSc
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class LongColGreaterEqualDoubleSc
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] >= value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class LongColGreaterEqualDoubleSc
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] >= value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] >= value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColLessDoubleScalar.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColLessDoubleScalar.java?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColLessDoubleScalar.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColLessDoubleScalar.java Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class LongColLessDoubleScalar ext
LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
long[] vector = inputColVector.vector;
long[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class LongColLessDoubleScalar ext
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class LongColLessDoubleScalar ext
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] < value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class LongColLessDoubleScalar ext
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] < value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] < value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColLessEqualDoubleScalar.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColLessEqualDoubleScalar.java?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColLessEqualDoubleScalar.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColLessEqualDoubleScalar.java Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class LongColLessEqualDoubleScala
LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
long[] vector = inputColVector.vector;
long[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class LongColLessEqualDoubleScala
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class LongColLessEqualDoubleScala
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] <= value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class LongColLessEqualDoubleScala
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] <= value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] <= value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColNotEqualDoubleScalar.java
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColNotEqualDoubleScalar.java?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColNotEqualDoubleScalar.java (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/gen/LongColNotEqualDoubleScalar.java Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class LongColNotEqualDoubleScalar
LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
long[] vector = inputColVector.vector;
long[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class LongColNotEqualDoubleScalar
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class LongColNotEqualDoubleScalar
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] != value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class LongColNotEqualDoubleScalar
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] != value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] != value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}
Modified: hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/templates/ColumnCompareScalar.txt
URL: http://svn.apache.org/viewvc/hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/templates/ColumnCompareScalar.txt?rev=1489186&r1=1489185&r2=1489186&view=diff
==============================================================================
--- hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/templates/ColumnCompareScalar.txt (original)
+++ hive/branches/vectorization/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/templates/ColumnCompareScalar.txt Mon Jun 3 21:29:45 2013
@@ -45,6 +45,7 @@ public class <ClassName> extends VectorE
<OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
int[] sel = batch.selected;
boolean[] nullPos = inputColVector.isNull;
+ boolean[] outNulls = outputColVector.isNull;
int n = batch.size;
<OperandType1>[] vector = inputColVector.vector;
<ReturnType>[] outputVector = outputColVector.vector;
@@ -54,6 +55,8 @@ public class <ClassName> extends VectorE
return;
}
+ outputColVector.isRepeating = false;
+ outputColVector.noNulls = inputColVector.noNulls;
if (inputColVector.noNulls) {
if (inputColVector.isRepeating) {
//All must be selected otherwise size would be zero
@@ -76,8 +79,9 @@ public class <ClassName> extends VectorE
//Repeating property will not change.
if (!nullPos[0]) {
outputVector[0] = vector[0] <OperatorSymbol> value ? 1 : 0;
+ outNulls[0] = false;
} else {
- outputVector[0] = 0;
+ outNulls[0] = true;
}
outputColVector.isRepeating = true;
} else if (batch.selectedInUse) {
@@ -85,18 +89,18 @@ public class <ClassName> extends VectorE
int i = sel[j];
if (!nullPos[i]) {
outputVector[i] = vector[i] <OperatorSymbol> value ? 1 : 0;
+ outNulls[i] = false;
} else {
- //compare with null is false
- outputVector[i] = 0;
+ //comparison with null is null
+ outNulls[i] = true;
}
}
} else {
+ System.arraycopy(nullPos, 0, outNulls, 0, n);
for(int i = 0; i != n; i++) {
if (!nullPos[i]) {
outputVector[i] = vector[i] <OperatorSymbol> value ? 1 : 0;
- } else {
- outputVector[i] = 0;
- }
+ }
}
}
}