diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumn.txt index e52fcc0..f7eaf4a 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -25,13 +25,13 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor; /** - * Generated from template ColumnArithmeticColumn.txt, which covers binary arithmetic + * Generated from template ColumnArithmeticColumn.txt, which covers binary arithmetic * expressions between columns. */ public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -60,27 +60,27 @@ public class extends VectorExpression { [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - - outputColVector.isRepeating = + + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. - */ - if (inputColVector1.isRepeating && inputColVector2.isRepeating) { + */ + if (inputColVector1.isRepeating && inputColVector2.isRepeating) { outputVector[0] = vector1[0] vector2[0]; } else if (inputColVector1.isRepeating) { final vector1Value = vector1[0]; @@ -118,9 +118,9 @@ public class extends VectorExpression { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. @@ -137,7 +137,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } @@ -157,7 +157,7 @@ public class extends VectorExpression { public void setOutputColumn(int outputColumn) { this.outputColumn = outputColumn; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt index e1df589..8a32ba6 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -75,7 +75,7 @@ public class extends VectorExpression { || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; if (inputColVector1.noNulls && inputColVector2.noNulls) { - + /* Initialize output vector NULL values to false. This is necessary * since the decimal operation may produce a NULL result even for * a non-null input vector value, and convert the output vector @@ -85,7 +85,7 @@ public class extends VectorExpression { inputColVector1.isRepeating && inputColVector2.isRepeating, batch.selectedInUse, sel, n); } - + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt index bcd10a2..3924d0e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -31,7 +31,7 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor; public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -60,21 +60,21 @@ public class extends VectorExpression { [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding @@ -116,7 +116,7 @@ public class extends VectorExpression { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors @@ -135,7 +135,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } @@ -155,7 +155,7 @@ public class extends VectorExpression { public void setOutputColumn(int outputColumn) { this.outputColumn = outputColumn; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt index 87335f1..2f714e4 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -63,7 +63,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -71,9 +71,9 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = vector[0] value; - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. - outputIsNull[0] = inputIsNull[0]; + outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { if (batch.selectedInUse) { for(int j = 0; j != n; j++) { @@ -99,7 +99,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -107,16 +107,16 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt index 0bb1532..679d078 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -66,14 +66,14 @@ public class extends VectorExpression { outputColVector.isRepeating = inputColVector.isRepeating; int n = batch.size; HiveDecimalWritable[] vector = inputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { - + /* Initialize output vector NULL values to false. This is necessary * since the decimal operation may produce a NULL result even for * a non-null input vector value, and convert the output vector @@ -87,7 +87,7 @@ public class extends VectorExpression { if (!inputColVector.noNulls) { outputIsNull[0] = inputIsNull[0]; } - + // The following may override a "false" null setting if an error or overflow occurs. DecimalUtil.Checked(0, vector[0], value, outputColVector); } else if (inputColVector.noNulls) { @@ -119,7 +119,7 @@ public class extends VectorExpression { } } } - + /* * Null data entries are not set to a special non-zero value because all null math operations * are checked, meaning that a zero-divide always results in a null result. diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt index 105eb92..718d092 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -64,7 +64,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -72,7 +72,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = (vector[0]) value; - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -100,7 +100,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -108,16 +108,16 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt index f2b4c81..49772cf 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -31,7 +31,7 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor; public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -60,27 +60,27 @@ public class extends VectorExpression { [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - - outputColVector.isRepeating = + + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ - if (inputColVector1.isRepeating && inputColVector2.isRepeating) { + if (inputColVector1.isRepeating && inputColVector2.isRepeating) { outputVector[0] = vector1[0] vector2[0] ? 1 : 0; } else if (inputColVector1.isRepeating) { if (batch.selectedInUse) { @@ -95,30 +95,30 @@ public class extends VectorExpression { } } else if (inputColVector2.isRepeating) { if (batch.selectedInUse) { - for(int j = 0; j != n; j++) { + for (int j = 0; j != n; j++) { int i = sel[j]; outputVector[i] = vector1[i] vector2[0] ? 1 : 0; } } else { - for(int i = 0; i != n; i++) { + for (int i = 0; i != n; i++) { outputVector[i] = vector1[i] vector2[0] ? 1 : 0; } } } else { if (batch.selectedInUse) { - for(int j = 0; j != n; j++) { + for (int j = 0; j != n; j++) { int i = sel[j]; outputVector[i] = vector1[i] vector2[i] ? 1 : 0; } } else { - for(int i = 0; i != n; i++) { + for (int i = 0; i != n; i++) { outputVector[i] = vector1[i] vector2[i] ? 1 : 0; } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. @@ -135,7 +135,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt index 2438ee4..b872521 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -61,7 +61,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -127,11 +127,11 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt index cf690db..0bc0431 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -35,7 +35,7 @@ public class extends VectorExpression { this.colNum = colNum; this.outputColumn = outputColumn; } - + public () { super(); } @@ -56,7 +56,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -103,12 +103,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt index b52b7c7..6565656 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -59,7 +59,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -105,12 +105,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt index f2ec645..f3bb7ef 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt index 1a360b8..6dcdc5b 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt index 9d692cb..a5ce34d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt index 753ea71..b496f74 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.txt index fdd453a..2458b1e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalColumnWithConvert.txt index cd7a1e7..2e57582 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -32,7 +32,7 @@ import org.apache.hadoop.hive.ql.util.DateTimeMath; public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -62,21 +62,21 @@ public class extends VectorExpression { [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding @@ -118,7 +118,7 @@ public class extends VectorExpression { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors @@ -137,7 +137,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } @@ -157,7 +157,7 @@ public class extends VectorExpression { public void setOutputColumn(int outputColumn) { this.outputColumn = outputColumn; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalScalarWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalScalarWithConvert.txt index abee249..af0d6cf 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalScalarWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalScalarWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -66,7 +66,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -74,7 +74,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = ((vector[0]), (int) value); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -102,7 +102,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -110,16 +110,16 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/DateTimeScalarArithmeticIntervalColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DateTimeScalarArithmeticIntervalColumnWithConvert.txt index 93a441a..68cc837 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DateTimeScalarArithmeticIntervalColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DateTimeScalarArithmeticIntervalColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -79,7 +79,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -87,7 +87,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = (value, (int) vector[0]); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -115,7 +115,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -123,12 +123,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt index 619015e..861d088 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -40,7 +40,7 @@ public class extends VectorExpression { this.colNum = colNum; this.outputColumn = outputColumn; } - + public () { super(); } @@ -112,7 +112,7 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return outputType; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt index e9aaaf2..81736f9 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -34,7 +34,7 @@ public class extends VectorExpression { private static final long serialVersionUID = 1L; private int colNum; - + // The comparison is of the form "column BETWEEN leftValue AND rightValue" private leftValue; private rightValue; @@ -65,14 +65,14 @@ public class extends VectorExpression { if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. // Repeating property will not change. if ((vector[0] < leftValue || vector[0] > rightValue)) { - + // Entire batch is filtered out. batch.size = 0; } @@ -99,12 +99,12 @@ public class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. // Repeating property will not change. if (!nullPos[0]) { if ((vector[0] < leftValue || vector[0] > rightValue)) { - + // Entire batch is filtered out. batch.size = 0; } @@ -149,7 +149,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } @@ -165,7 +165,7 @@ public class extends VectorExpression { public void setLeftValue( value) { this.leftValue = value; } - + public getRightValue() { return rightValue; } @@ -173,7 +173,7 @@ public class extends VectorExpression { public void setRightValue( value) { this.leftValue = value; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt index e25b9c2..8448463 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -59,12 +59,12 @@ public class extends VectorExpression { int n = batch.size; [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + // filter rows with NULL on left input int newSize; newSize = NullUtil.filterNulls(batch.cols[colNum1], batch.selectedInUse, sel, n); @@ -72,17 +72,17 @@ public class extends VectorExpression { n = batch.size = newSize; batch.selectedInUse = true; } - + // filter rows with NULL on right input newSize = NullUtil.filterNulls(batch.cols[colNum2], batch.selectedInUse, sel, n); if (newSize < n) { n = batch.size = newSize; batch.selectedInUse = true; } - + // All rows with nulls have been filtered out, so just do normal filter for non-null case if (n != 0 && inputColVector1.isRepeating && inputColVector2.isRepeating) { - + // All must be selected otherwise size would be zero // Repeating property will not change. if (!(vector1[0] vector2[0])) { @@ -164,7 +164,7 @@ public class extends VectorExpression { public int getOutputColumn() { return -1; } - + public int getColNum1() { return colNum1; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt index b0f6e5c..1e192f3 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -60,7 +60,7 @@ public class extends VectorExpression { if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { //All must be selected otherwise size would be zero @@ -140,7 +140,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterDTIColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterDTIColumnCompareScalar.txt index 55193ac..2ae9a18 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterDTIColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterDTIColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterDTIScalarCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterDTIScalarCompareColumn.txt index f9fb12e..263ad03 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterDTIScalarCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterDTIScalarCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt index d68edfa..2655d8e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt @@ -124,7 +124,7 @@ public class extends VectorExpression { } } } - + // Change the selected vector batch.size = newSize; } else { diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt index b7544c7..5ca62be 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -45,11 +45,11 @@ public class extends VectorExpression { @Override public void evaluate(VectorizedRowBatch batch) { - + if (childExpressions != null) { super.evaluateChildren(batch); } - + inputColVector = () batch.cols[colNum]; int[] sel = batch.selected; boolean[] nullPos = inputColVector.isNull; @@ -60,7 +60,7 @@ public class extends VectorExpression { if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { //All must be selected otherwise size would be zero @@ -140,7 +140,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareTimestampColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareTimestampColumn.txt index e0e5022..a3c8802 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareTimestampColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareTimestampColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt index e8049da..49d0f80 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -57,16 +57,16 @@ public class extends VectorExpression { byte[][] vector = inputColVector.vector; int[] length = inputColVector.length; int[] start = inputColVector.start; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if ((StringExpr.compare(vector[0], start[0], length[0], left, 0, left.length) < 0 || StringExpr.compare(right, 0, right.length, vector[0], start[0], length[0]) < 0)) { @@ -99,7 +99,7 @@ public class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!nullPos[0]) { if ((StringExpr.compare(vector[0], start[0], length[0], left, 0, left.length) < 0 @@ -122,7 +122,7 @@ public class extends VectorExpression { } } } - + //Change the selected vector batch.size = newSize; } else { @@ -152,7 +152,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } @@ -168,7 +168,7 @@ public class extends VectorExpression { public void setLeft(byte[] value) { this.left = value; } - + public byte[] getRight() { return right; } @@ -176,7 +176,7 @@ public class extends VectorExpression { public void setRight(byte[] value) { this.right = value; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) @@ -192,5 +192,5 @@ public class extends VectorExpression { VectorExpressionDescriptor.InputExpressionType.SCALAR, VectorExpressionDescriptor.InputExpressionType.SCALAR).build(); } - + } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt index a72b882..941f7bb 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -62,23 +62,23 @@ public class extends VectorExpression { int[] start2 = inputColVector2.start; int[] length1 = inputColVector1.length; int[] length2 = inputColVector2.length; - + // return immediately if batch is empty if (n == 0) { return; } - + // handle case where neither input has nulls if (inputColVector1.noNulls && inputColVector2.noNulls) { if (inputColVector1.isRepeating && inputColVector2.isRepeating) { - + /* Either all must remain selected or all will be eliminated. * Repeating property will not change. */ if (!((vector1[0], start1[0], length1[0], vector2[0], start2[0], length2[0]))) { batch.size = 0; - } + } } else if (inputColVector1.isRepeating) { if (batch.selectedInUse) { int newSize = 0; @@ -150,7 +150,7 @@ public class extends VectorExpression { batch.selectedInUse = true; } } - + // handle case where only input 2 has nulls } else if (inputColVector1.noNulls) { if (inputColVector1.isRepeating && inputColVector2.isRepeating) { @@ -160,7 +160,7 @@ public class extends VectorExpression { batch.size = 0; } } else if (inputColVector1.isRepeating) { - + // no need to check for nulls in input 1 if (batch.selectedInUse) { int newSize = 0; @@ -191,7 +191,7 @@ public class extends VectorExpression { } } else if (inputColVector2.isRepeating) { if (nullPos2[0]) { - + // no values will qualify because every comparison will be with NULL batch.size = 0; return; @@ -246,9 +246,9 @@ public class extends VectorExpression { batch.size = newSize; batch.selectedInUse = true; } - } + } } - + // handle case where only input 1 has nulls } else if (inputColVector2.noNulls) { if (inputColVector1.isRepeating && inputColVector2.isRepeating) { @@ -260,7 +260,7 @@ public class extends VectorExpression { } } else if (inputColVector1.isRepeating) { if (nullPos1[0]) { - + // if repeating value is null then every comparison will fail so nothing qualifies batch.size = 0; return; @@ -343,9 +343,9 @@ public class extends VectorExpression { batch.size = newSize; batch.selectedInUse = true; } - } + } } - + // handle case where both inputs have nulls } else { if (inputColVector1.isRepeating && inputColVector2.isRepeating) { @@ -445,7 +445,7 @@ public class extends VectorExpression { batch.size = newSize; batch.selectedInUse = true; } - } + } } } } @@ -459,7 +459,7 @@ public class extends VectorExpression { public int getOutputColumn() { return -1; } - + public int getColNum1() { return colNum1; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt index 8b1c366..4033594 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -46,16 +46,16 @@ public abstract class extends VectorExpression { byte[][] vector = inputColVector.vector; int[] length = inputColVector.length; int[] start = inputColVector.start; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!((vector[0], start[0], length[0], value, 0, value.length))) { @@ -85,7 +85,7 @@ public abstract class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!nullPos[0]) { if (!((vector[0], start[0], length[0], value, 0, value.length))) { @@ -106,7 +106,7 @@ public abstract class extends VectorExpression { } } } - + //Change the selected vector batch.size = newSize; } else { @@ -135,7 +135,7 @@ public abstract class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringScalar.txt index 7ab9f66..2a42448 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt index aa229c8..9d3a8c0 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt index 930069c..bd32bec 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -50,16 +50,16 @@ public abstract class extends VectorExpression { byte[][] vector = inputColVector.vector; int[] length = inputColVector.length; int[] start = inputColVector.start; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!((value, 0, value.length, vector[0], start[0], length[0]))) { @@ -89,7 +89,7 @@ public abstract class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!nullPos[0]) { if (!((value, 0, value.length, vector[0], start[0], length[0]))) { @@ -110,7 +110,7 @@ public abstract class extends VectorExpression { } } } - + //Change the selected vector batch.size = newSize; } else { @@ -139,7 +139,7 @@ public abstract class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.txt index bb638a4..05409a3 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareScalar.txt index 0c37b4d..7225e2d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt index d13fecf..02be053 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt index a37db3d..e80ebe2 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt index 94a174d..840523a 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.common.type.; @@ -59,16 +59,16 @@ public class extends VectorExpression { byte[][] vector = inputColVector.vector; int[] length = inputColVector.length; int[] start = inputColVector.start; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if ((StringExpr.compare(vector[0], start[0], length[0], left, 0, left.length) < 0 || StringExpr.compare(right, 0, right.length, vector[0], start[0], length[0]) < 0)) { @@ -101,7 +101,7 @@ public class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!nullPos[0]) { if ((StringExpr.compare(vector[0], start[0], length[0], left, 0, left.length) < 0 @@ -124,7 +124,7 @@ public class extends VectorExpression { } } } - + //Change the selected vector batch.size = newSize; } else { @@ -154,7 +154,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } @@ -170,7 +170,7 @@ public class extends VectorExpression { public void setLeft(byte[] value) { this.left = value; } - + public byte[] getRight() { return right; } @@ -178,7 +178,7 @@ public class extends VectorExpression { public void setRight(byte[] value) { this.right = value; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) @@ -194,5 +194,5 @@ public class extends VectorExpression { VectorExpressionDescriptor.InputExpressionType.SCALAR, VectorExpressionDescriptor.InputExpressionType.SCALAR).build(); } - + } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringScalarCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringScalarCompareStringGroupColumn.txt index c4745d3..598c2ec 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringScalarCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringScalarCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeColumnWithConvert.txt index c182557..239972d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -32,7 +32,7 @@ import org.apache.hadoop.hive.ql.util.DateTimeMath; public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -64,21 +64,21 @@ public class extends VectorExpression { [] outputVector = outputColVector.vector; // arg1 is interval type, arg2 is datetime type - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding @@ -120,7 +120,7 @@ public class extends VectorExpression { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors @@ -139,7 +139,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } @@ -159,7 +159,7 @@ public class extends VectorExpression { public void setOutputColumn(int outputColumn) { this.outputColumn = outputColumn; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeScalarWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeScalarWithConvert.txt index 8fa3563..c756a67 100644 --- ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeScalarWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeScalarWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -66,7 +66,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -76,7 +76,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = (value, (int) vector[0]); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -104,7 +104,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -112,16 +112,16 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/IntervalScalarArithmeticDateTimeColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/IntervalScalarArithmeticDateTimeColumnWithConvert.txt index 0464a5e..70a801c 100644 --- ql/src/gen/vectorization/ExpressionTemplates/IntervalScalarArithmeticDateTimeColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/IntervalScalarArithmeticDateTimeColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -79,7 +79,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -89,7 +89,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = ((vector[0]), (int) value); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -117,7 +117,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -125,12 +125,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt index 4fcbdc0..e877c3e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -75,7 +75,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -83,7 +83,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = value vector[0]; - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -111,7 +111,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -119,12 +119,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt index ea55bec..06470b0 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -66,14 +66,14 @@ public class extends VectorExpression { outputColVector.isRepeating = inputColVector.isRepeating; int n = batch.size; HiveDecimalWritable[] vector = inputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { - + /* Initialize output vector NULL values to false. This is necessary * since the decimal operation may produce a NULL result even for * a non-null input vector value, and convert the output vector @@ -87,7 +87,7 @@ public class extends VectorExpression { if (!inputColVector.noNulls) { outputIsNull[0] = inputIsNull[0]; } - + // The following may override a "false" null setting if an error or overflow occurs. DecimalUtil.Checked(0, value, vector[0], outputColVector); } else if (inputColVector.noNulls) { @@ -119,7 +119,7 @@ public class extends VectorExpression { } } } - + NullUtil.setNullDataEntriesDecimal(outputColVector, batch.selectedInUse, sel, n); } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt index 91887c8..72cae2e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -77,7 +77,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -85,7 +85,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = value (vector[0]); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -113,7 +113,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -121,12 +121,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt index e6e59f5..90fb415 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -61,7 +61,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -127,11 +127,11 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareTimestampColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareTimestampColumn.txt index 7867610..e8f1c6b 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareTimestampColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareTimestampColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt index e881037..6c00676 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -70,12 +70,12 @@ public class extends VectorExpression { int[] length2 = inputColVector2.length; long[] outVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.noNulls = true; outputColVector.isRepeating = false; // handle case where neither input has nulls @@ -152,7 +152,7 @@ public class extends VectorExpression { } } } - + // handle case where only input 2 has nulls } else if (inputColVector1.noNulls) { outputColVector.noNulls = false; @@ -168,7 +168,7 @@ public class extends VectorExpression { } } } else if (inputColVector1.isRepeating) { - + // no need to check for nulls in input 1 if (batch.selectedInUse) { for(int j = 0; j != n; j++) { @@ -251,9 +251,9 @@ public class extends VectorExpression { } } } - } + } } - + // handle case where only input 1 has nulls } else if (inputColVector2.noNulls) { outputColVector.noNulls = false; @@ -350,9 +350,9 @@ public class extends VectorExpression { } } } - } + } } - + // handle case where both inputs have nulls } else { outputColVector.noNulls = false; @@ -457,7 +457,7 @@ public class extends VectorExpression { } } } - } + } } } } @@ -471,7 +471,7 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + public int getColNum1() { return colNum1; } diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt index 92bf27a..27fe34f 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -51,13 +51,13 @@ public abstract class extends VectorExpression { int[] length = inputColVector.length; int[] start = inputColVector.start; long[] outVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.isRepeating = false; if (inputColVector.noNulls) { outputColVector.noNulls = true; @@ -134,7 +134,7 @@ public abstract class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringScalar.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringScalar.txt index 9b11c5e..8c341e4 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt index 8a92f54..0a7c5e7 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt index 238dc93..2d8a0c9 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -57,7 +57,7 @@ public abstract class extends VectorExpression { if (n == 0) { return; } - + outputColVector.isRepeating = false; if (inputColVector.noNulls) { outputColVector.noNulls = true; @@ -134,7 +134,7 @@ public abstract class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.txt index 5b5e02e..dfd1090 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareScalar.txt index da33281..4b6c0b8 100644 --- ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt index 46534b4..ce0f79b 100644 --- ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt index 9468a66..cd5d2db 100644 --- ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt index 57a0e5d..a9a3b6d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java index 57dc92b..3fc337a 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java index 1f7697e..7d97e5d 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java index 187f12b..8001bce 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java index 5ad745c..4c2c876 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "VarChar"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java index aab3e70..3e7ac01 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java @@ -45,8 +45,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java index 267b0b1..f879907 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java @@ -45,8 +45,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "VarChar"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java index 27674c4..b7e4c9c 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java index 7c3dca2..73d930f 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "VarChar"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java index 7c06ff5..1fed9bd 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java @@ -42,8 +42,8 @@ protected void func(BytesColumnVector outV, byte[][] vector, int[] start, int[] public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java index 376ce92..298b819 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java @@ -42,8 +42,8 @@ protected void func(BytesColumnVector outV, byte[][] vector, int[] start, int[] public String getOutputType() { return "VarChar"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java index dc5139d..a31efb8 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java @@ -62,7 +62,7 @@ private int subtract(int[] all, int allSize, // UNDONE: Copied from VectorMapJoinOuterGenerateResultOperator. Preconditions.checkState((all != remove) && (remove != difference) && (difference != all)); - + // Comment out these checks when we are happy.. if (!verifyMonotonicallyIncreasing(all, allSize)) { throw new RuntimeException("all is not in sort order and unique"); @@ -169,18 +169,18 @@ public void evaluate(VectorizedRowBatch batch) { final int childrenCount = this.childExpressions.length; int childIndex = 1; while (true) { - + boolean isLastChild = (childIndex + 1 >= childrenCount); - + // When we have yet another child beyond the current one... save unselected. if (!isLastChild) { System.arraycopy(batch.selected, 0, unselectedCopy, 0, unselectedSize); } - + VectorExpression childExpr = this.childExpressions[childIndex]; - + childExpr.evaluate(batch); - + // Merge the result of last evaluate to previous evaluate. newSize += batch.size; for (int i = 0; i < batch.size; i++) { diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColRegExpStringScalar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColRegExpStringScalar.java index 577f2ca..ea81bba 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColRegExpStringScalar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColRegExpStringScalar.java @@ -123,7 +123,7 @@ public boolean check(byte[] byteS, int start, int len) { return false; } break; - + // For other registered patterns, find exact matches. case '-': case ' ': @@ -133,7 +133,7 @@ public boolean check(byte[] byteS, int start, int len) { return false; } break; - + // For unregistered patterns, fail. default: return false; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java index a18bb55..411f1b7 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java @@ -42,7 +42,7 @@ public FuncRoundWithNumDigitsDecimalToDecimal(int colNum, int scalarValue, int o this.decimalPlaces = scalarValue; this.outputType = "decimal"; } - + public FuncRoundWithNumDigitsDecimalToDecimal() { super(); } @@ -114,7 +114,7 @@ public void evaluate(VectorizedRowBatch batch) { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return outputType; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java index 00485a2..93ff7a2 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java @@ -1,3 +1,21 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.apache.hadoop.hive.ql.exec.vector.expressions; import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java index 9b9f15e..72392c9 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java @@ -67,12 +67,12 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ @@ -113,9 +113,9 @@ public void evaluate(VectorizedRowBatch batch) { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java index 94c5bed..274a400 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java @@ -67,10 +67,10 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding @@ -113,7 +113,7 @@ public void evaluate(VectorizedRowBatch batch) { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java index dda941e..b68064d 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java @@ -67,12 +67,12 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ @@ -113,9 +113,9 @@ public void evaluate(VectorizedRowBatch batch) { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java index aacdfe6..6f7ccc6 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java @@ -67,12 +67,12 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ @@ -113,7 +113,7 @@ public void evaluate(VectorizedRowBatch batch) { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java index 179e493..b88dad1 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java @@ -67,12 +67,12 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ @@ -113,9 +113,9 @@ public void evaluate(VectorizedRowBatch batch) { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java index 67bf567..262e2b5 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java @@ -159,7 +159,7 @@ public static int writeLongToUTF8(byte[] result, long i) { return current; } - + // Convert all NaN values in vector v to NULL. Should only be used if n > 0. public static void NaNToNull(DoubleColumnVector v, int[] sel, boolean selectedInUse, int n) { NaNToNull(v, sel, selectedInUse, n, false); diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java index bbf8862..52e6da6 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java @@ -680,7 +680,7 @@ private static VectorExpressionWriter genVectorExpressionWritableChar( return new VectorExpressionWriterBytes() { private Object obj; private Text text; - + public VectorExpressionWriter init(SettableHiveCharObjectInspector objInspector) throws HiveException { super.init(objInspector); @@ -688,7 +688,7 @@ public VectorExpressionWriter init(SettableHiveCharObjectInspector objInspector) this.obj = initValue(null); return this; } - + @Override public Object writeValue(byte[] value, int start, int length) throws HiveException { text.set(value, start, length); @@ -706,7 +706,7 @@ public Object setValue(Object field, byte[] value, int start, int length) ((SettableHiveCharObjectInspector) this.objectInspector).set(field, text.toString()); return field; } - + @Override public Object initValue(Object ignored) { return ((SettableHiveCharObjectInspector) this.objectInspector) diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java index 9cc0621..1e5c086 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java @@ -158,11 +158,11 @@ private void initPartialResultInspector() { // the output type of the vectorized partial aggregate must match the // expected type for the row-mode aggregation // For decimal, the type is "same number of integer digits and 4 more decimal digits" - + DecimalTypeInfo dtiSum = GenericUDAFAverage.deriveSumFieldTypeInfo(inputPrecision, inputScale); this.sumScale = (short) dtiSum.scale(); this.sumPrecision = (short) dtiSum.precision(); - + List foi = new ArrayList(); foi.add(PrimitiveObjectInspectorFactory.writableLongObjectInspector); foi.add(PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(dtiSum)); diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java index 7dabbd8..ba793ca 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java @@ -162,7 +162,7 @@ private void iterateNoNullsSelectionWithAggregationSelection( long[] values, int[] selection, int batchSize) { - + for (int i=0; i < batchSize; ++i) { Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, @@ -193,7 +193,7 @@ private void iterateHasNullsRepeatingSelectionWithAggregationSelection( int batchSize, int[] selection, boolean[] isNull) { - + for (int i=0; i < batchSize; ++i) { if (!isNull[selection[i]]) { Aggregation myagg = getCurrentAggregationBuffer( @@ -203,7 +203,7 @@ private void iterateHasNullsRepeatingSelectionWithAggregationSelection( myagg.value += value; } } - + } private void iterateHasNullsRepeatingWithAggregationSelection( @@ -280,7 +280,7 @@ public void aggregateInput(AggregationBuffer agg, VectorizedRowBatch batch) Aggregation myagg = (Aggregation)agg; long[] vector = inputVector.vector; - + if (inputVector.isRepeating) { if (inputVector.noNulls) { myagg.value += vector[0]*batchSize; @@ -301,7 +301,7 @@ else if (inputVector.noNulls){ iterateSelectionHasNulls(myagg, vector, batchSize, inputVector.isNull, batch.selected); } } - + private void iterateSelectionHasNulls( Aggregation myagg, long[] vector, @@ -333,7 +333,7 @@ private void iterateNoSelectionHasNulls( long[] vector, int batchSize, boolean[] isNull) { - + for(int i=0;i extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -60,27 +60,27 @@ public class extends VectorExpression { [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - - outputColVector.isRepeating = + + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. - */ - if (inputColVector1.isRepeating && inputColVector2.isRepeating) { + */ + if (inputColVector1.isRepeating && inputColVector2.isRepeating) { outputVector[0] = vector1[0] vector2[0]; } else if (inputColVector1.isRepeating) { final vector1Value = vector1[0]; @@ -118,9 +118,9 @@ public class extends VectorExpression { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. @@ -137,7 +137,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } @@ -157,7 +157,7 @@ public class extends VectorExpression { public void setOutputColumn(int outputColumn) { this.outputColumn = outputColumn; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt index e1df589..8a32ba6 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -75,7 +75,7 @@ public class extends VectorExpression { || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; if (inputColVector1.noNulls && inputColVector2.noNulls) { - + /* Initialize output vector NULL values to false. This is necessary * since the decimal operation may produce a NULL result even for * a non-null input vector value, and convert the output vector @@ -85,7 +85,7 @@ public class extends VectorExpression { inputColVector1.isRepeating && inputColVector2.isRepeating, batch.selectedInUse, sel, n); } - + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt index bcd10a2..3924d0e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -31,7 +31,7 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor; public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -60,21 +60,21 @@ public class extends VectorExpression { [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding @@ -116,7 +116,7 @@ public class extends VectorExpression { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors @@ -135,7 +135,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } @@ -155,7 +155,7 @@ public class extends VectorExpression { public void setOutputColumn(int outputColumn) { this.outputColumn = outputColumn; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt index 87335f1..2f714e4 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -63,7 +63,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -71,9 +71,9 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = vector[0] value; - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. - outputIsNull[0] = inputIsNull[0]; + outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { if (batch.selectedInUse) { for(int j = 0; j != n; j++) { @@ -99,7 +99,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -107,16 +107,16 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt index 0bb1532..679d078 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -66,14 +66,14 @@ public class extends VectorExpression { outputColVector.isRepeating = inputColVector.isRepeating; int n = batch.size; HiveDecimalWritable[] vector = inputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { - + /* Initialize output vector NULL values to false. This is necessary * since the decimal operation may produce a NULL result even for * a non-null input vector value, and convert the output vector @@ -87,7 +87,7 @@ public class extends VectorExpression { if (!inputColVector.noNulls) { outputIsNull[0] = inputIsNull[0]; } - + // The following may override a "false" null setting if an error or overflow occurs. DecimalUtil.Checked(0, vector[0], value, outputColVector); } else if (inputColVector.noNulls) { @@ -119,7 +119,7 @@ public class extends VectorExpression { } } } - + /* * Null data entries are not set to a special non-zero value because all null math operations * are checked, meaning that a zero-divide always results in a null result. diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt index 105eb92..718d092 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -64,7 +64,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -72,7 +72,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = (vector[0]) value; - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -100,7 +100,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -108,16 +108,16 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt index f2b4c81..0d60507d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -31,7 +31,7 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor; public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -60,27 +60,27 @@ public class extends VectorExpression { [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - - outputColVector.isRepeating = + + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ - if (inputColVector1.isRepeating && inputColVector2.isRepeating) { + if (inputColVector1.isRepeating && inputColVector2.isRepeating) { outputVector[0] = vector1[0] vector2[0] ? 1 : 0; } else if (inputColVector1.isRepeating) { if (batch.selectedInUse) { @@ -116,9 +116,9 @@ public class extends VectorExpression { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. @@ -135,7 +135,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt index 2438ee4..b872521 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -61,7 +61,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -127,11 +127,11 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt index cf690db..0bc0431 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -35,7 +35,7 @@ public class extends VectorExpression { this.colNum = colNum; this.outputColumn = outputColumn; } - + public () { super(); } @@ -56,7 +56,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -103,12 +103,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt index b52b7c7..6565656 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -59,7 +59,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -105,12 +105,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt index f2ec645..f3bb7ef 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt index 1a360b8..6dcdc5b 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt index 9d692cb..a5ce34d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt index 753ea71..b496f74 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.txt index fdd453a..2458b1e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalColumnWithConvert.txt index cd7a1e7..2e57582 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -32,7 +32,7 @@ import org.apache.hadoop.hive.ql.util.DateTimeMath; public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -62,21 +62,21 @@ public class extends VectorExpression { [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding @@ -118,7 +118,7 @@ public class extends VectorExpression { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors @@ -137,7 +137,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } @@ -157,7 +157,7 @@ public class extends VectorExpression { public void setOutputColumn(int outputColumn) { this.outputColumn = outputColumn; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalScalarWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalScalarWithConvert.txt index abee249..af0d6cf 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalScalarWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalScalarWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -66,7 +66,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -74,7 +74,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = ((vector[0]), (int) value); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -102,7 +102,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -110,16 +110,16 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/DateTimeScalarArithmeticIntervalColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DateTimeScalarArithmeticIntervalColumnWithConvert.txt index 93a441a..68cc837 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DateTimeScalarArithmeticIntervalColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DateTimeScalarArithmeticIntervalColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -79,7 +79,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -87,7 +87,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = (value, (int) vector[0]); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -115,7 +115,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -123,12 +123,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt index 619015e..861d088 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -40,7 +40,7 @@ public class extends VectorExpression { this.colNum = colNum; this.outputColumn = outputColumn; } - + public () { super(); } @@ -112,7 +112,7 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return outputType; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt index e9aaaf2..81736f9 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -34,7 +34,7 @@ public class extends VectorExpression { private static final long serialVersionUID = 1L; private int colNum; - + // The comparison is of the form "column BETWEEN leftValue AND rightValue" private leftValue; private rightValue; @@ -65,14 +65,14 @@ public class extends VectorExpression { if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. // Repeating property will not change. if ((vector[0] < leftValue || vector[0] > rightValue)) { - + // Entire batch is filtered out. batch.size = 0; } @@ -99,12 +99,12 @@ public class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. // Repeating property will not change. if (!nullPos[0]) { if ((vector[0] < leftValue || vector[0] > rightValue)) { - + // Entire batch is filtered out. batch.size = 0; } @@ -149,7 +149,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } @@ -165,7 +165,7 @@ public class extends VectorExpression { public void setLeftValue( value) { this.leftValue = value; } - + public getRightValue() { return rightValue; } @@ -173,7 +173,7 @@ public class extends VectorExpression { public void setRightValue( value) { this.leftValue = value; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt index e25b9c2..8448463 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -59,12 +59,12 @@ public class extends VectorExpression { int n = batch.size; [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + // filter rows with NULL on left input int newSize; newSize = NullUtil.filterNulls(batch.cols[colNum1], batch.selectedInUse, sel, n); @@ -72,17 +72,17 @@ public class extends VectorExpression { n = batch.size = newSize; batch.selectedInUse = true; } - + // filter rows with NULL on right input newSize = NullUtil.filterNulls(batch.cols[colNum2], batch.selectedInUse, sel, n); if (newSize < n) { n = batch.size = newSize; batch.selectedInUse = true; } - + // All rows with nulls have been filtered out, so just do normal filter for non-null case if (n != 0 && inputColVector1.isRepeating && inputColVector2.isRepeating) { - + // All must be selected otherwise size would be zero // Repeating property will not change. if (!(vector1[0] vector2[0])) { @@ -164,7 +164,7 @@ public class extends VectorExpression { public int getOutputColumn() { return -1; } - + public int getColNum1() { return colNum1; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt index b0f6e5c..1e192f3 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -60,7 +60,7 @@ public class extends VectorExpression { if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { //All must be selected otherwise size would be zero @@ -140,7 +140,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterDTIColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterDTIColumnCompareScalar.txt index 55193ac..2ae9a18 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterDTIColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterDTIColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterDTIScalarCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterDTIScalarCompareColumn.txt index f9fb12e..263ad03 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterDTIScalarCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterDTIScalarCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt index d68edfa..2655d8e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt @@ -124,7 +124,7 @@ public class extends VectorExpression { } } } - + // Change the selected vector batch.size = newSize; } else { diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt index b7544c7..5ca62be 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -45,11 +45,11 @@ public class extends VectorExpression { @Override public void evaluate(VectorizedRowBatch batch) { - + if (childExpressions != null) { super.evaluateChildren(batch); } - + inputColVector = () batch.cols[colNum]; int[] sel = batch.selected; boolean[] nullPos = inputColVector.isNull; @@ -60,7 +60,7 @@ public class extends VectorExpression { if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { //All must be selected otherwise size would be zero @@ -140,7 +140,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareTimestampColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareTimestampColumn.txt index e0e5022..a3c8802 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareTimestampColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareTimestampColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt index e8049da..49d0f80 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -57,16 +57,16 @@ public class extends VectorExpression { byte[][] vector = inputColVector.vector; int[] length = inputColVector.length; int[] start = inputColVector.start; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if ((StringExpr.compare(vector[0], start[0], length[0], left, 0, left.length) < 0 || StringExpr.compare(right, 0, right.length, vector[0], start[0], length[0]) < 0)) { @@ -99,7 +99,7 @@ public class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!nullPos[0]) { if ((StringExpr.compare(vector[0], start[0], length[0], left, 0, left.length) < 0 @@ -122,7 +122,7 @@ public class extends VectorExpression { } } } - + //Change the selected vector batch.size = newSize; } else { @@ -152,7 +152,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } @@ -168,7 +168,7 @@ public class extends VectorExpression { public void setLeft(byte[] value) { this.left = value; } - + public byte[] getRight() { return right; } @@ -176,7 +176,7 @@ public class extends VectorExpression { public void setRight(byte[] value) { this.right = value; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) @@ -192,5 +192,5 @@ public class extends VectorExpression { VectorExpressionDescriptor.InputExpressionType.SCALAR, VectorExpressionDescriptor.InputExpressionType.SCALAR).build(); } - + } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt index a72b882..941f7bb 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -62,23 +62,23 @@ public class extends VectorExpression { int[] start2 = inputColVector2.start; int[] length1 = inputColVector1.length; int[] length2 = inputColVector2.length; - + // return immediately if batch is empty if (n == 0) { return; } - + // handle case where neither input has nulls if (inputColVector1.noNulls && inputColVector2.noNulls) { if (inputColVector1.isRepeating && inputColVector2.isRepeating) { - + /* Either all must remain selected or all will be eliminated. * Repeating property will not change. */ if (!((vector1[0], start1[0], length1[0], vector2[0], start2[0], length2[0]))) { batch.size = 0; - } + } } else if (inputColVector1.isRepeating) { if (batch.selectedInUse) { int newSize = 0; @@ -150,7 +150,7 @@ public class extends VectorExpression { batch.selectedInUse = true; } } - + // handle case where only input 2 has nulls } else if (inputColVector1.noNulls) { if (inputColVector1.isRepeating && inputColVector2.isRepeating) { @@ -160,7 +160,7 @@ public class extends VectorExpression { batch.size = 0; } } else if (inputColVector1.isRepeating) { - + // no need to check for nulls in input 1 if (batch.selectedInUse) { int newSize = 0; @@ -191,7 +191,7 @@ public class extends VectorExpression { } } else if (inputColVector2.isRepeating) { if (nullPos2[0]) { - + // no values will qualify because every comparison will be with NULL batch.size = 0; return; @@ -246,9 +246,9 @@ public class extends VectorExpression { batch.size = newSize; batch.selectedInUse = true; } - } + } } - + // handle case where only input 1 has nulls } else if (inputColVector2.noNulls) { if (inputColVector1.isRepeating && inputColVector2.isRepeating) { @@ -260,7 +260,7 @@ public class extends VectorExpression { } } else if (inputColVector1.isRepeating) { if (nullPos1[0]) { - + // if repeating value is null then every comparison will fail so nothing qualifies batch.size = 0; return; @@ -343,9 +343,9 @@ public class extends VectorExpression { batch.size = newSize; batch.selectedInUse = true; } - } + } } - + // handle case where both inputs have nulls } else { if (inputColVector1.isRepeating && inputColVector2.isRepeating) { @@ -445,7 +445,7 @@ public class extends VectorExpression { batch.size = newSize; batch.selectedInUse = true; } - } + } } } } @@ -459,7 +459,7 @@ public class extends VectorExpression { public int getOutputColumn() { return -1; } - + public int getColNum1() { return colNum1; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt index 8b1c366..4033594 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -46,16 +46,16 @@ public abstract class extends VectorExpression { byte[][] vector = inputColVector.vector; int[] length = inputColVector.length; int[] start = inputColVector.start; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!((vector[0], start[0], length[0], value, 0, value.length))) { @@ -85,7 +85,7 @@ public abstract class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!nullPos[0]) { if (!((vector[0], start[0], length[0], value, 0, value.length))) { @@ -106,7 +106,7 @@ public abstract class extends VectorExpression { } } } - + //Change the selected vector batch.size = newSize; } else { @@ -135,7 +135,7 @@ public abstract class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringScalar.txt index 7ab9f66..2a42448 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt index aa229c8..9d3a8c0 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt index 930069c..bd32bec 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -50,16 +50,16 @@ public abstract class extends VectorExpression { byte[][] vector = inputColVector.vector; int[] length = inputColVector.length; int[] start = inputColVector.start; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!((value, 0, value.length, vector[0], start[0], length[0]))) { @@ -89,7 +89,7 @@ public abstract class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!nullPos[0]) { if (!((value, 0, value.length, vector[0], start[0], length[0]))) { @@ -110,7 +110,7 @@ public abstract class extends VectorExpression { } } } - + //Change the selected vector batch.size = newSize; } else { @@ -139,7 +139,7 @@ public abstract class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.txt index bb638a4..05409a3 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareScalar.txt index 0c37b4d..7225e2d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt index d13fecf..02be053 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt index a37db3d..e80ebe2 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt index 94a174d..840523a 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.common.type.; @@ -59,16 +59,16 @@ public class extends VectorExpression { byte[][] vector = inputColVector.vector; int[] length = inputColVector.length; int[] start = inputColVector.start; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if ((StringExpr.compare(vector[0], start[0], length[0], left, 0, left.length) < 0 || StringExpr.compare(right, 0, right.length, vector[0], start[0], length[0]) < 0)) { @@ -101,7 +101,7 @@ public class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!nullPos[0]) { if ((StringExpr.compare(vector[0], start[0], length[0], left, 0, left.length) < 0 @@ -124,7 +124,7 @@ public class extends VectorExpression { } } } - + //Change the selected vector batch.size = newSize; } else { @@ -154,7 +154,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } @@ -170,7 +170,7 @@ public class extends VectorExpression { public void setLeft(byte[] value) { this.left = value; } - + public byte[] getRight() { return right; } @@ -178,7 +178,7 @@ public class extends VectorExpression { public void setRight(byte[] value) { this.right = value; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) @@ -194,5 +194,5 @@ public class extends VectorExpression { VectorExpressionDescriptor.InputExpressionType.SCALAR, VectorExpressionDescriptor.InputExpressionType.SCALAR).build(); } - + } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringScalarCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringScalarCompareStringGroupColumn.txt index c4745d3..598c2ec 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringScalarCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringScalarCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeColumnWithConvert.txt index c182557..239972d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -32,7 +32,7 @@ import org.apache.hadoop.hive.ql.util.DateTimeMath; public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -64,21 +64,21 @@ public class extends VectorExpression { [] outputVector = outputColVector.vector; // arg1 is interval type, arg2 is datetime type - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding @@ -120,7 +120,7 @@ public class extends VectorExpression { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors @@ -139,7 +139,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } @@ -159,7 +159,7 @@ public class extends VectorExpression { public void setOutputColumn(int outputColumn) { this.outputColumn = outputColumn; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeScalarWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeScalarWithConvert.txt index 8fa3563..c756a67 100644 --- ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeScalarWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeScalarWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -66,7 +66,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -76,7 +76,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = (value, (int) vector[0]); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -104,7 +104,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -112,16 +112,16 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/IntervalScalarArithmeticDateTimeColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/IntervalScalarArithmeticDateTimeColumnWithConvert.txt index 0464a5e..70a801c 100644 --- ql/src/gen/vectorization/ExpressionTemplates/IntervalScalarArithmeticDateTimeColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/IntervalScalarArithmeticDateTimeColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -79,7 +79,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -89,7 +89,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = ((vector[0]), (int) value); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -117,7 +117,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -125,12 +125,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt index 4fcbdc0..e877c3e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -75,7 +75,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -83,7 +83,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = value vector[0]; - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -111,7 +111,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -119,12 +119,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt index ea55bec..06470b0 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -66,14 +66,14 @@ public class extends VectorExpression { outputColVector.isRepeating = inputColVector.isRepeating; int n = batch.size; HiveDecimalWritable[] vector = inputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { - + /* Initialize output vector NULL values to false. This is necessary * since the decimal operation may produce a NULL result even for * a non-null input vector value, and convert the output vector @@ -87,7 +87,7 @@ public class extends VectorExpression { if (!inputColVector.noNulls) { outputIsNull[0] = inputIsNull[0]; } - + // The following may override a "false" null setting if an error or overflow occurs. DecimalUtil.Checked(0, value, vector[0], outputColVector); } else if (inputColVector.noNulls) { @@ -119,7 +119,7 @@ public class extends VectorExpression { } } } - + NullUtil.setNullDataEntriesDecimal(outputColVector, batch.selectedInUse, sel, n); } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt index 91887c8..72cae2e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -77,7 +77,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -85,7 +85,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = value (vector[0]); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -113,7 +113,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -121,12 +121,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt index e6e59f5..90fb415 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -61,7 +61,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -127,11 +127,11 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareTimestampColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareTimestampColumn.txt index 7867610..e8f1c6b 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareTimestampColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareTimestampColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt index e881037..6c00676 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -70,12 +70,12 @@ public class extends VectorExpression { int[] length2 = inputColVector2.length; long[] outVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.noNulls = true; outputColVector.isRepeating = false; // handle case where neither input has nulls @@ -152,7 +152,7 @@ public class extends VectorExpression { } } } - + // handle case where only input 2 has nulls } else if (inputColVector1.noNulls) { outputColVector.noNulls = false; @@ -168,7 +168,7 @@ public class extends VectorExpression { } } } else if (inputColVector1.isRepeating) { - + // no need to check for nulls in input 1 if (batch.selectedInUse) { for(int j = 0; j != n; j++) { @@ -251,9 +251,9 @@ public class extends VectorExpression { } } } - } + } } - + // handle case where only input 1 has nulls } else if (inputColVector2.noNulls) { outputColVector.noNulls = false; @@ -350,9 +350,9 @@ public class extends VectorExpression { } } } - } + } } - + // handle case where both inputs have nulls } else { outputColVector.noNulls = false; @@ -457,7 +457,7 @@ public class extends VectorExpression { } } } - } + } } } } @@ -471,7 +471,7 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + public int getColNum1() { return colNum1; } diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt index 92bf27a..27fe34f 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -51,13 +51,13 @@ public abstract class extends VectorExpression { int[] length = inputColVector.length; int[] start = inputColVector.start; long[] outVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.isRepeating = false; if (inputColVector.noNulls) { outputColVector.noNulls = true; @@ -134,7 +134,7 @@ public abstract class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringScalar.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringScalar.txt index 9b11c5e..8c341e4 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt index 8a92f54..0a7c5e7 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt index 238dc93..2d8a0c9 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -57,7 +57,7 @@ public abstract class extends VectorExpression { if (n == 0) { return; } - + outputColVector.isRepeating = false; if (inputColVector.noNulls) { outputColVector.noNulls = true; @@ -134,7 +134,7 @@ public abstract class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.txt index 5b5e02e..dfd1090 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareScalar.txt index da33281..4b6c0b8 100644 --- ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt index 46534b4..ce0f79b 100644 --- ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt index 9468a66..cd5d2db 100644 --- ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt index 57a0e5d..a9a3b6d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java index 57dc92b..3fc337a 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java index 1f7697e..7d97e5d 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java index 187f12b..8001bce 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java index 5ad745c..4c2c876 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "VarChar"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java index aab3e70..3e7ac01 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java @@ -45,8 +45,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java index 267b0b1..f879907 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java @@ -45,8 +45,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "VarChar"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java index 27674c4..b7e4c9c 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java index 7c3dca2..73d930f 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "VarChar"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java index 7c06ff5..1fed9bd 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java @@ -42,8 +42,8 @@ protected void func(BytesColumnVector outV, byte[][] vector, int[] start, int[] public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java index 376ce92..298b819 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java @@ -42,8 +42,8 @@ protected void func(BytesColumnVector outV, byte[][] vector, int[] start, int[] public String getOutputType() { return "VarChar"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java index dc5139d..a31efb8 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java @@ -62,7 +62,7 @@ private int subtract(int[] all, int allSize, // UNDONE: Copied from VectorMapJoinOuterGenerateResultOperator. Preconditions.checkState((all != remove) && (remove != difference) && (difference != all)); - + // Comment out these checks when we are happy.. if (!verifyMonotonicallyIncreasing(all, allSize)) { throw new RuntimeException("all is not in sort order and unique"); @@ -169,18 +169,18 @@ public void evaluate(VectorizedRowBatch batch) { final int childrenCount = this.childExpressions.length; int childIndex = 1; while (true) { - + boolean isLastChild = (childIndex + 1 >= childrenCount); - + // When we have yet another child beyond the current one... save unselected. if (!isLastChild) { System.arraycopy(batch.selected, 0, unselectedCopy, 0, unselectedSize); } - + VectorExpression childExpr = this.childExpressions[childIndex]; - + childExpr.evaluate(batch); - + // Merge the result of last evaluate to previous evaluate. newSize += batch.size; for (int i = 0; i < batch.size; i++) { diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColRegExpStringScalar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColRegExpStringScalar.java index 577f2ca..ea81bba 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColRegExpStringScalar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColRegExpStringScalar.java @@ -123,7 +123,7 @@ public boolean check(byte[] byteS, int start, int len) { return false; } break; - + // For other registered patterns, find exact matches. case '-': case ' ': @@ -133,7 +133,7 @@ public boolean check(byte[] byteS, int start, int len) { return false; } break; - + // For unregistered patterns, fail. default: return false; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java index a18bb55..411f1b7 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java @@ -42,7 +42,7 @@ public FuncRoundWithNumDigitsDecimalToDecimal(int colNum, int scalarValue, int o this.decimalPlaces = scalarValue; this.outputType = "decimal"; } - + public FuncRoundWithNumDigitsDecimalToDecimal() { super(); } @@ -114,7 +114,7 @@ public void evaluate(VectorizedRowBatch batch) { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return outputType; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java index 00485a2..93ff7a2 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java @@ -1,3 +1,21 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.apache.hadoop.hive.ql.exec.vector.expressions; import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java index 9b9f15e..72392c9 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java @@ -67,12 +67,12 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ @@ -113,9 +113,9 @@ public void evaluate(VectorizedRowBatch batch) { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java index 94c5bed..274a400 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java @@ -67,10 +67,10 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding @@ -113,7 +113,7 @@ public void evaluate(VectorizedRowBatch batch) { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java index dda941e..b68064d 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java @@ -67,12 +67,12 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ @@ -113,9 +113,9 @@ public void evaluate(VectorizedRowBatch batch) { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java index aacdfe6..6f7ccc6 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java @@ -67,12 +67,12 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ @@ -113,7 +113,7 @@ public void evaluate(VectorizedRowBatch batch) { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java index 179e493..b88dad1 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java @@ -67,12 +67,12 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ @@ -113,9 +113,9 @@ public void evaluate(VectorizedRowBatch batch) { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java index 67bf567..262e2b5 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java @@ -159,7 +159,7 @@ public static int writeLongToUTF8(byte[] result, long i) { return current; } - + // Convert all NaN values in vector v to NULL. Should only be used if n > 0. public static void NaNToNull(DoubleColumnVector v, int[] sel, boolean selectedInUse, int n) { NaNToNull(v, sel, selectedInUse, n, false); diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java index bbf8862..52e6da6 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java @@ -680,7 +680,7 @@ private static VectorExpressionWriter genVectorExpressionWritableChar( return new VectorExpressionWriterBytes() { private Object obj; private Text text; - + public VectorExpressionWriter init(SettableHiveCharObjectInspector objInspector) throws HiveException { super.init(objInspector); @@ -688,7 +688,7 @@ public VectorExpressionWriter init(SettableHiveCharObjectInspector objInspector) this.obj = initValue(null); return this; } - + @Override public Object writeValue(byte[] value, int start, int length) throws HiveException { text.set(value, start, length); @@ -706,7 +706,7 @@ public Object setValue(Object field, byte[] value, int start, int length) ((SettableHiveCharObjectInspector) this.objectInspector).set(field, text.toString()); return field; } - + @Override public Object initValue(Object ignored) { return ((SettableHiveCharObjectInspector) this.objectInspector) diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java index 9cc0621..1e5c086 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java @@ -158,11 +158,11 @@ private void initPartialResultInspector() { // the output type of the vectorized partial aggregate must match the // expected type for the row-mode aggregation // For decimal, the type is "same number of integer digits and 4 more decimal digits" - + DecimalTypeInfo dtiSum = GenericUDAFAverage.deriveSumFieldTypeInfo(inputPrecision, inputScale); this.sumScale = (short) dtiSum.scale(); this.sumPrecision = (short) dtiSum.precision(); - + List foi = new ArrayList(); foi.add(PrimitiveObjectInspectorFactory.writableLongObjectInspector); foi.add(PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(dtiSum)); diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java index 7dabbd8..ba793ca 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java @@ -162,7 +162,7 @@ private void iterateNoNullsSelectionWithAggregationSelection( long[] values, int[] selection, int batchSize) { - + for (int i=0; i < batchSize; ++i) { Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, @@ -193,7 +193,7 @@ private void iterateHasNullsRepeatingSelectionWithAggregationSelection( int batchSize, int[] selection, boolean[] isNull) { - + for (int i=0; i < batchSize; ++i) { if (!isNull[selection[i]]) { Aggregation myagg = getCurrentAggregationBuffer( @@ -203,7 +203,7 @@ private void iterateHasNullsRepeatingSelectionWithAggregationSelection( myagg.value += value; } } - + } private void iterateHasNullsRepeatingWithAggregationSelection( @@ -280,7 +280,7 @@ public void aggregateInput(AggregationBuffer agg, VectorizedRowBatch batch) Aggregation myagg = (Aggregation)agg; long[] vector = inputVector.vector; - + if (inputVector.isRepeating) { if (inputVector.noNulls) { myagg.value += vector[0]*batchSize; @@ -301,7 +301,7 @@ else if (inputVector.noNulls){ iterateSelectionHasNulls(myagg, vector, batchSize, inputVector.isNull, batch.selected); } } - + private void iterateSelectionHasNulls( Aggregation myagg, long[] vector, @@ -333,7 +333,7 @@ private void iterateNoSelectionHasNulls( long[] vector, int batchSize, boolean[] isNull) { - + for(int i=0;i extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -60,27 +60,27 @@ public class extends VectorExpression { [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - - outputColVector.isRepeating = + + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. - */ - if (inputColVector1.isRepeating && inputColVector2.isRepeating) { + */ + if (inputColVector1.isRepeating && inputColVector2.isRepeating) { outputVector[0] = vector1[0] vector2[0]; } else if (inputColVector1.isRepeating) { final vector1Value = vector1[0]; @@ -118,9 +118,9 @@ public class extends VectorExpression { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. @@ -137,7 +137,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } @@ -157,7 +157,7 @@ public class extends VectorExpression { public void setOutputColumn(int outputColumn) { this.outputColumn = outputColumn; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt index e1df589..8a32ba6 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -75,7 +75,7 @@ public class extends VectorExpression { || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; if (inputColVector1.noNulls && inputColVector2.noNulls) { - + /* Initialize output vector NULL values to false. This is necessary * since the decimal operation may produce a NULL result even for * a non-null input vector value, and convert the output vector @@ -85,7 +85,7 @@ public class extends VectorExpression { inputColVector1.isRepeating && inputColVector2.isRepeating, batch.selectedInUse, sel, n); } - + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt index bcd10a2..3924d0e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -31,7 +31,7 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor; public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -60,21 +60,21 @@ public class extends VectorExpression { [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding @@ -116,7 +116,7 @@ public class extends VectorExpression { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors @@ -135,7 +135,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } @@ -155,7 +155,7 @@ public class extends VectorExpression { public void setOutputColumn(int outputColumn) { this.outputColumn = outputColumn; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt index 87335f1..2f714e4 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -63,7 +63,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -71,9 +71,9 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = vector[0] value; - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. - outputIsNull[0] = inputIsNull[0]; + outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { if (batch.selectedInUse) { for(int j = 0; j != n; j++) { @@ -99,7 +99,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -107,16 +107,16 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt index 0bb1532..679d078 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -66,14 +66,14 @@ public class extends VectorExpression { outputColVector.isRepeating = inputColVector.isRepeating; int n = batch.size; HiveDecimalWritable[] vector = inputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { - + /* Initialize output vector NULL values to false. This is necessary * since the decimal operation may produce a NULL result even for * a non-null input vector value, and convert the output vector @@ -87,7 +87,7 @@ public class extends VectorExpression { if (!inputColVector.noNulls) { outputIsNull[0] = inputIsNull[0]; } - + // The following may override a "false" null setting if an error or overflow occurs. DecimalUtil.Checked(0, vector[0], value, outputColVector); } else if (inputColVector.noNulls) { @@ -119,7 +119,7 @@ public class extends VectorExpression { } } } - + /* * Null data entries are not set to a special non-zero value because all null math operations * are checked, meaning that a zero-divide always results in a null result. diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt index 105eb92..718d092 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -64,7 +64,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -72,7 +72,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = (vector[0]) value; - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -100,7 +100,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -108,16 +108,16 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt index f2b4c81..0d60507d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -31,7 +31,7 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor; public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -60,27 +60,27 @@ public class extends VectorExpression { [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - - outputColVector.isRepeating = + + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ - if (inputColVector1.isRepeating && inputColVector2.isRepeating) { + if (inputColVector1.isRepeating && inputColVector2.isRepeating) { outputVector[0] = vector1[0] vector2[0] ? 1 : 0; } else if (inputColVector1.isRepeating) { if (batch.selectedInUse) { @@ -116,9 +116,9 @@ public class extends VectorExpression { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. @@ -135,7 +135,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt index 2438ee4..b872521 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -61,7 +61,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -127,11 +127,11 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt index cf690db..0bc0431 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -35,7 +35,7 @@ public class extends VectorExpression { this.colNum = colNum; this.outputColumn = outputColumn; } - + public () { super(); } @@ -56,7 +56,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -103,12 +103,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt index b52b7c7..6565656 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -59,7 +59,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -105,12 +105,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt index f2ec645..f3bb7ef 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt index 1a360b8..6dcdc5b 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt index 9d692cb..a5ce34d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt index 753ea71..b496f74 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.txt index fdd453a..2458b1e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalColumnWithConvert.txt index cd7a1e7..2e57582 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -32,7 +32,7 @@ import org.apache.hadoop.hive.ql.util.DateTimeMath; public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -62,21 +62,21 @@ public class extends VectorExpression { [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding @@ -118,7 +118,7 @@ public class extends VectorExpression { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors @@ -137,7 +137,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } @@ -157,7 +157,7 @@ public class extends VectorExpression { public void setOutputColumn(int outputColumn) { this.outputColumn = outputColumn; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalScalarWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalScalarWithConvert.txt index abee249..af0d6cf 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalScalarWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DateTimeColumnArithmeticIntervalScalarWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -66,7 +66,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -74,7 +74,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = ((vector[0]), (int) value); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -102,7 +102,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -110,16 +110,16 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/DateTimeScalarArithmeticIntervalColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/DateTimeScalarArithmeticIntervalColumnWithConvert.txt index 93a441a..68cc837 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DateTimeScalarArithmeticIntervalColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DateTimeScalarArithmeticIntervalColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -79,7 +79,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -87,7 +87,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = (value, (int) vector[0]); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -115,7 +115,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -123,12 +123,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt index 619015e..861d088 100644 --- ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt +++ ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -40,7 +40,7 @@ public class extends VectorExpression { this.colNum = colNum; this.outputColumn = outputColumn; } - + public () { super(); } @@ -112,7 +112,7 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return outputType; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt index e9aaaf2..81736f9 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -34,7 +34,7 @@ public class extends VectorExpression { private static final long serialVersionUID = 1L; private int colNum; - + // The comparison is of the form "column BETWEEN leftValue AND rightValue" private leftValue; private rightValue; @@ -65,14 +65,14 @@ public class extends VectorExpression { if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. // Repeating property will not change. if ((vector[0] < leftValue || vector[0] > rightValue)) { - + // Entire batch is filtered out. batch.size = 0; } @@ -99,12 +99,12 @@ public class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. // Repeating property will not change. if (!nullPos[0]) { if ((vector[0] < leftValue || vector[0] > rightValue)) { - + // Entire batch is filtered out. batch.size = 0; } @@ -149,7 +149,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } @@ -165,7 +165,7 @@ public class extends VectorExpression { public void setLeftValue( value) { this.leftValue = value; } - + public getRightValue() { return rightValue; } @@ -173,7 +173,7 @@ public class extends VectorExpression { public void setRightValue( value) { this.leftValue = value; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt index e25b9c2..8448463 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -59,12 +59,12 @@ public class extends VectorExpression { int n = batch.size; [] vector1 = inputColVector1.vector; [] vector2 = inputColVector2.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + // filter rows with NULL on left input int newSize; newSize = NullUtil.filterNulls(batch.cols[colNum1], batch.selectedInUse, sel, n); @@ -72,17 +72,17 @@ public class extends VectorExpression { n = batch.size = newSize; batch.selectedInUse = true; } - + // filter rows with NULL on right input newSize = NullUtil.filterNulls(batch.cols[colNum2], batch.selectedInUse, sel, n); if (newSize < n) { n = batch.size = newSize; batch.selectedInUse = true; } - + // All rows with nulls have been filtered out, so just do normal filter for non-null case if (n != 0 && inputColVector1.isRepeating && inputColVector2.isRepeating) { - + // All must be selected otherwise size would be zero // Repeating property will not change. if (!(vector1[0] vector2[0])) { @@ -164,7 +164,7 @@ public class extends VectorExpression { public int getOutputColumn() { return -1; } - + public int getColNum1() { return colNum1; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt index b0f6e5c..1e192f3 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -60,7 +60,7 @@ public class extends VectorExpression { if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { //All must be selected otherwise size would be zero @@ -140,7 +140,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterDTIColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterDTIColumnCompareScalar.txt index 55193ac..2ae9a18 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterDTIColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterDTIColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterDTIScalarCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterDTIScalarCompareColumn.txt index f9fb12e..263ad03 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterDTIScalarCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterDTIScalarCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt index d68edfa..2655d8e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt @@ -124,7 +124,7 @@ public class extends VectorExpression { } } } - + // Change the selected vector batch.size = newSize; } else { diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt index b7544c7..5ca62be 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -45,11 +45,11 @@ public class extends VectorExpression { @Override public void evaluate(VectorizedRowBatch batch) { - + if (childExpressions != null) { super.evaluateChildren(batch); } - + inputColVector = () batch.cols[colNum]; int[] sel = batch.selected; boolean[] nullPos = inputColVector.isNull; @@ -60,7 +60,7 @@ public class extends VectorExpression { if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { //All must be selected otherwise size would be zero @@ -140,7 +140,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareTimestampColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareTimestampColumn.txt index e0e5022..a3c8802 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareTimestampColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareTimestampColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt index e8049da..49d0f80 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -57,16 +57,16 @@ public class extends VectorExpression { byte[][] vector = inputColVector.vector; int[] length = inputColVector.length; int[] start = inputColVector.start; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if ((StringExpr.compare(vector[0], start[0], length[0], left, 0, left.length) < 0 || StringExpr.compare(right, 0, right.length, vector[0], start[0], length[0]) < 0)) { @@ -99,7 +99,7 @@ public class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!nullPos[0]) { if ((StringExpr.compare(vector[0], start[0], length[0], left, 0, left.length) < 0 @@ -122,7 +122,7 @@ public class extends VectorExpression { } } } - + //Change the selected vector batch.size = newSize; } else { @@ -152,7 +152,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } @@ -168,7 +168,7 @@ public class extends VectorExpression { public void setLeft(byte[] value) { this.left = value; } - + public byte[] getRight() { return right; } @@ -176,7 +176,7 @@ public class extends VectorExpression { public void setRight(byte[] value) { this.right = value; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) @@ -192,5 +192,5 @@ public class extends VectorExpression { VectorExpressionDescriptor.InputExpressionType.SCALAR, VectorExpressionDescriptor.InputExpressionType.SCALAR).build(); } - + } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt index a72b882..941f7bb 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -62,23 +62,23 @@ public class extends VectorExpression { int[] start2 = inputColVector2.start; int[] length1 = inputColVector1.length; int[] length2 = inputColVector2.length; - + // return immediately if batch is empty if (n == 0) { return; } - + // handle case where neither input has nulls if (inputColVector1.noNulls && inputColVector2.noNulls) { if (inputColVector1.isRepeating && inputColVector2.isRepeating) { - + /* Either all must remain selected or all will be eliminated. * Repeating property will not change. */ if (!((vector1[0], start1[0], length1[0], vector2[0], start2[0], length2[0]))) { batch.size = 0; - } + } } else if (inputColVector1.isRepeating) { if (batch.selectedInUse) { int newSize = 0; @@ -150,7 +150,7 @@ public class extends VectorExpression { batch.selectedInUse = true; } } - + // handle case where only input 2 has nulls } else if (inputColVector1.noNulls) { if (inputColVector1.isRepeating && inputColVector2.isRepeating) { @@ -160,7 +160,7 @@ public class extends VectorExpression { batch.size = 0; } } else if (inputColVector1.isRepeating) { - + // no need to check for nulls in input 1 if (batch.selectedInUse) { int newSize = 0; @@ -191,7 +191,7 @@ public class extends VectorExpression { } } else if (inputColVector2.isRepeating) { if (nullPos2[0]) { - + // no values will qualify because every comparison will be with NULL batch.size = 0; return; @@ -246,9 +246,9 @@ public class extends VectorExpression { batch.size = newSize; batch.selectedInUse = true; } - } + } } - + // handle case where only input 1 has nulls } else if (inputColVector2.noNulls) { if (inputColVector1.isRepeating && inputColVector2.isRepeating) { @@ -260,7 +260,7 @@ public class extends VectorExpression { } } else if (inputColVector1.isRepeating) { if (nullPos1[0]) { - + // if repeating value is null then every comparison will fail so nothing qualifies batch.size = 0; return; @@ -343,9 +343,9 @@ public class extends VectorExpression { batch.size = newSize; batch.selectedInUse = true; } - } + } } - + // handle case where both inputs have nulls } else { if (inputColVector1.isRepeating && inputColVector2.isRepeating) { @@ -445,7 +445,7 @@ public class extends VectorExpression { batch.size = newSize; batch.selectedInUse = true; } - } + } } } } @@ -459,7 +459,7 @@ public class extends VectorExpression { public int getOutputColumn() { return -1; } - + public int getColNum1() { return colNum1; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt index 8b1c366..4033594 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -46,16 +46,16 @@ public abstract class extends VectorExpression { byte[][] vector = inputColVector.vector; int[] length = inputColVector.length; int[] start = inputColVector.start; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!((vector[0], start[0], length[0], value, 0, value.length))) { @@ -85,7 +85,7 @@ public abstract class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!nullPos[0]) { if (!((vector[0], start[0], length[0], value, 0, value.length))) { @@ -106,7 +106,7 @@ public abstract class extends VectorExpression { } } } - + //Change the selected vector batch.size = newSize; } else { @@ -135,7 +135,7 @@ public abstract class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringScalar.txt index 7ab9f66..2a42448 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt index aa229c8..9d3a8c0 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt index 930069c..bd32bec 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -50,16 +50,16 @@ public abstract class extends VectorExpression { byte[][] vector = inputColVector.vector; int[] length = inputColVector.length; int[] start = inputColVector.start; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!((value, 0, value.length, vector[0], start[0], length[0]))) { @@ -89,7 +89,7 @@ public abstract class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!nullPos[0]) { if (!((value, 0, value.length, vector[0], start[0], length[0]))) { @@ -110,7 +110,7 @@ public abstract class extends VectorExpression { } } } - + //Change the selected vector batch.size = newSize; } else { @@ -139,7 +139,7 @@ public abstract class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.txt index bb638a4..05409a3 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareScalar.txt index 0c37b4d..7225e2d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt index d13fecf..02be053 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt index a37db3d..e80ebe2 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt index 94a174d..840523a 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.common.type.; @@ -59,16 +59,16 @@ public class extends VectorExpression { byte[][] vector = inputColVector.vector; int[] length = inputColVector.length; int[] start = inputColVector.start; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if ((StringExpr.compare(vector[0], start[0], length[0], left, 0, left.length) < 0 || StringExpr.compare(right, 0, right.length, vector[0], start[0], length[0]) < 0)) { @@ -101,7 +101,7 @@ public class extends VectorExpression { } } else { if (inputColVector.isRepeating) { - + // All must be selected otherwise size would be zero. Repeating property will not change. if (!nullPos[0]) { if ((StringExpr.compare(vector[0], start[0], length[0], left, 0, left.length) < 0 @@ -124,7 +124,7 @@ public class extends VectorExpression { } } } - + //Change the selected vector batch.size = newSize; } else { @@ -154,7 +154,7 @@ public class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } @@ -170,7 +170,7 @@ public class extends VectorExpression { public void setLeft(byte[] value) { this.left = value; } - + public byte[] getRight() { return right; } @@ -178,7 +178,7 @@ public class extends VectorExpression { public void setRight(byte[] value) { this.right = value; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) @@ -194,5 +194,5 @@ public class extends VectorExpression { VectorExpressionDescriptor.InputExpressionType.SCALAR, VectorExpressionDescriptor.InputExpressionType.SCALAR).build(); } - + } diff --git ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringScalarCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringScalarCompareStringGroupColumn.txt index c4745d3..598c2ec 100644 --- ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringScalarCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringScalarCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeColumnWithConvert.txt index c182557..239972d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -32,7 +32,7 @@ import org.apache.hadoop.hive.ql.util.DateTimeMath; public class extends VectorExpression { private static final long serialVersionUID = 1L; - + private int colNum1; private int colNum2; private int outputColumn; @@ -64,21 +64,21 @@ public class extends VectorExpression { [] outputVector = outputColVector.vector; // arg1 is interval type, arg2 is datetime type - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.isRepeating = inputColVector1.isRepeating && inputColVector2.isRepeating || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - - // Handle nulls first + + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding @@ -120,7 +120,7 @@ public class extends VectorExpression { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors @@ -139,7 +139,7 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum1() { return colNum1; } @@ -159,7 +159,7 @@ public class extends VectorExpression { public void setOutputColumn(int outputColumn) { this.outputColumn = outputColumn; } - + @Override public VectorExpressionDescriptor.Descriptor getDescriptor() { return (new VectorExpressionDescriptor.Builder()) diff --git ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeScalarWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeScalarWithConvert.txt index 8fa3563..c756a67 100644 --- ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeScalarWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/IntervalColumnArithmeticDateTimeScalarWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -66,7 +66,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -76,7 +76,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = (value, (int) vector[0]); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -104,7 +104,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -112,16 +112,16 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/IntervalScalarArithmeticDateTimeColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/IntervalScalarArithmeticDateTimeColumnWithConvert.txt index 0464a5e..70a801c 100644 --- ql/src/gen/vectorization/ExpressionTemplates/IntervalScalarArithmeticDateTimeColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/IntervalScalarArithmeticDateTimeColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -79,7 +79,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -89,7 +89,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = ((vector[0]), (int) value); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -117,7 +117,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -125,12 +125,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt index 4fcbdc0..e877c3e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -75,7 +75,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -83,7 +83,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = value vector[0]; - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -111,7 +111,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -119,12 +119,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt index ea55bec..06470b0 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -66,14 +66,14 @@ public class extends VectorExpression { outputColVector.isRepeating = inputColVector.isRepeating; int n = batch.size; HiveDecimalWritable[] vector = inputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + if (inputColVector.noNulls) { - + /* Initialize output vector NULL values to false. This is necessary * since the decimal operation may produce a NULL result even for * a non-null input vector value, and convert the output vector @@ -87,7 +87,7 @@ public class extends VectorExpression { if (!inputColVector.noNulls) { outputIsNull[0] = inputIsNull[0]; } - + // The following may override a "false" null setting if an error or overflow occurs. DecimalUtil.Checked(0, value, vector[0], outputColVector); } else if (inputColVector.noNulls) { @@ -119,7 +119,7 @@ public class extends VectorExpression { } } } - + NullUtil.setNullDataEntriesDecimal(outputColVector, batch.selectedInUse, sel, n); } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt index 91887c8..72cae2e 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -77,7 +77,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -85,7 +85,7 @@ public class extends VectorExpression { if (inputColVector.isRepeating) { outputVector[0] = value (vector[0]); - + // Even if there are no nulls, we always copy over entry 0. Simplifies code. outputIsNull[0] = inputIsNull[0]; } else if (inputColVector.noNulls) { @@ -113,7 +113,7 @@ public class extends VectorExpression { System.arraycopy(inputIsNull, 0, outputIsNull, 0, n); } } - + NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n); } @@ -121,12 +121,12 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt index e6e59f5..90fb415 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -61,7 +61,7 @@ public class extends VectorExpression { int n = batch.size; [] vector = inputColVector.vector; [] outputVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; @@ -127,11 +127,11 @@ public class extends VectorExpression { public String getOutputType() { return ""; } - + public int getColNum() { return colNum; } - + public void setColNum(int colNum) { this.colNum = colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareTimestampColumn.txt ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareTimestampColumn.txt index 7867610..e8f1c6b 100644 --- ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareTimestampColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareTimestampColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt index e881037..6c00676 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -70,12 +70,12 @@ public class extends VectorExpression { int[] length2 = inputColVector2.length; long[] outVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.noNulls = true; outputColVector.isRepeating = false; // handle case where neither input has nulls @@ -152,7 +152,7 @@ public class extends VectorExpression { } } } - + // handle case where only input 2 has nulls } else if (inputColVector1.noNulls) { outputColVector.noNulls = false; @@ -168,7 +168,7 @@ public class extends VectorExpression { } } } else if (inputColVector1.isRepeating) { - + // no need to check for nulls in input 1 if (batch.selectedInUse) { for(int j = 0; j != n; j++) { @@ -251,9 +251,9 @@ public class extends VectorExpression { } } } - } + } } - + // handle case where only input 1 has nulls } else if (inputColVector2.noNulls) { outputColVector.noNulls = false; @@ -350,9 +350,9 @@ public class extends VectorExpression { } } } - } + } } - + // handle case where both inputs have nulls } else { outputColVector.noNulls = false; @@ -457,7 +457,7 @@ public class extends VectorExpression { } } } - } + } } } } @@ -471,7 +471,7 @@ public class extends VectorExpression { public int getOutputColumn() { return outputColumn; } - + public int getColNum1() { return colNum1; } diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt index 92bf27a..27fe34f 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -51,13 +51,13 @@ public abstract class extends VectorExpression { int[] length = inputColVector.length; int[] start = inputColVector.start; long[] outVector = outputColVector.vector; - + // return immediately if batch is empty if (n == 0) { return; } - + outputColVector.isRepeating = false; if (inputColVector.noNulls) { outputColVector.noNulls = true; @@ -134,7 +134,7 @@ public abstract class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringScalar.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringScalar.txt index 9b11c5e..8c341e4 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt index 8a92f54..0a7c5e7 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt index 238dc93..2d8a0c9 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression; @@ -57,7 +57,7 @@ public abstract class extends VectorExpression { if (n == 0) { return; } - + outputColVector.isRepeating = false; if (inputColVector.noNulls) { outputColVector.noNulls = true; @@ -134,7 +134,7 @@ public abstract class extends VectorExpression { public String getOutputType() { return "boolean"; } - + public int getColNum() { return colNum; } diff --git ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.txt index 5b5e02e..dfd1090 100644 --- ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareScalar.txt ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareScalar.txt index da33281..4b6c0b8 100644 --- ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt index 46534b4..ce0f79b 100644 --- ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt +++ ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils; diff --git ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt index 9468a66..cd5d2db 100644 --- ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.udf.UDFToString; diff --git ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt index 57a0e5d..a9a3b6d 100644 --- ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt +++ ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.apache.hadoop.hive.ql.exec.vector.expressions.gen; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java index 57dc92b..3fc337a 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java index 1f7697e..7d97e5d 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java index 187f12b..8001bce 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java index 5ad745c..4c2c876 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "VarChar"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java index aab3e70..3e7ac01 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java @@ -45,8 +45,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java index 267b0b1..f879907 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java @@ -45,8 +45,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "VarChar"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java index 27674c4..b7e4c9c 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java index 7c3dca2..73d930f 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java @@ -41,8 +41,8 @@ protected void assign(BytesColumnVector outV, int i, byte[] bytes, int length) { public String getOutputType() { return "VarChar"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java index 7c06ff5..1fed9bd 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java @@ -42,8 +42,8 @@ protected void func(BytesColumnVector outV, byte[][] vector, int[] start, int[] public String getOutputType() { return "Char"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java index 376ce92..298b819 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java @@ -42,8 +42,8 @@ protected void func(BytesColumnVector outV, byte[][] vector, int[] start, int[] public String getOutputType() { return "VarChar"; } - - @Override + + @Override public int getMaxLength() { return maxLength; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java index dc5139d..a31efb8 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java @@ -62,7 +62,7 @@ private int subtract(int[] all, int allSize, // UNDONE: Copied from VectorMapJoinOuterGenerateResultOperator. Preconditions.checkState((all != remove) && (remove != difference) && (difference != all)); - + // Comment out these checks when we are happy.. if (!verifyMonotonicallyIncreasing(all, allSize)) { throw new RuntimeException("all is not in sort order and unique"); @@ -169,18 +169,18 @@ public void evaluate(VectorizedRowBatch batch) { final int childrenCount = this.childExpressions.length; int childIndex = 1; while (true) { - + boolean isLastChild = (childIndex + 1 >= childrenCount); - + // When we have yet another child beyond the current one... save unselected. if (!isLastChild) { System.arraycopy(batch.selected, 0, unselectedCopy, 0, unselectedSize); } - + VectorExpression childExpr = this.childExpressions[childIndex]; - + childExpr.evaluate(batch); - + // Merge the result of last evaluate to previous evaluate. newSize += batch.size; for (int i = 0; i < batch.size; i++) { diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColRegExpStringScalar.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColRegExpStringScalar.java index 577f2ca..ea81bba 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColRegExpStringScalar.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColRegExpStringScalar.java @@ -123,7 +123,7 @@ public boolean check(byte[] byteS, int start, int len) { return false; } break; - + // For other registered patterns, find exact matches. case '-': case ' ': @@ -133,7 +133,7 @@ public boolean check(byte[] byteS, int start, int len) { return false; } break; - + // For unregistered patterns, fail. default: return false; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java index a18bb55..411f1b7 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java @@ -42,7 +42,7 @@ public FuncRoundWithNumDigitsDecimalToDecimal(int colNum, int scalarValue, int o this.decimalPlaces = scalarValue; this.outputType = "decimal"; } - + public FuncRoundWithNumDigitsDecimalToDecimal() { super(); } @@ -114,7 +114,7 @@ public void evaluate(VectorizedRowBatch batch) { public int getOutputColumn() { return outputColumn; } - + @Override public String getOutputType() { return outputType; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java index 00485a2..93ff7a2 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java @@ -1,3 +1,21 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.apache.hadoop.hive.ql.exec.vector.expressions; import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java index 9b9f15e..72392c9 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java @@ -67,12 +67,12 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ @@ -113,9 +113,9 @@ public void evaluate(VectorizedRowBatch batch) { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java index 94c5bed..274a400 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java @@ -67,10 +67,10 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding @@ -113,7 +113,7 @@ public void evaluate(VectorizedRowBatch batch) { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java index dda941e..b68064d 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java @@ -67,12 +67,12 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ @@ -113,9 +113,9 @@ public void evaluate(VectorizedRowBatch batch) { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java index aacdfe6..6f7ccc6 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java @@ -67,12 +67,12 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ @@ -113,7 +113,7 @@ public void evaluate(VectorizedRowBatch batch) { } } } - + /* For the case when the output can have null values, follow * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java index 179e493..b88dad1 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java @@ -67,12 +67,12 @@ public void evaluate(VectorizedRowBatch batch) { || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0] || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0]; - // Handle nulls first + // Handle nulls first NullUtil.propagateNullsColCol( inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse); - + /* Disregard nulls for processing. In other words, - * the arithmetic operation is performed even if one or + * the arithmetic operation is performed even if one or * more inputs are null. This is to improve speed by avoiding * conditional checks in the inner loop. */ @@ -113,9 +113,9 @@ public void evaluate(VectorizedRowBatch batch) { } } } - - /* For the case when the output can have null values, follow - * the convention that the data values must be 1 for long and + + /* For the case when the output can have null values, follow + * the convention that the data values must be 1 for long and * NaN for double. This is to prevent possible later zero-divide errors * in complex arithmetic expressions like col2 / (col1 - 1) * in the case when some col1 entries are null. diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java index 67bf567..262e2b5 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java @@ -159,7 +159,7 @@ public static int writeLongToUTF8(byte[] result, long i) { return current; } - + // Convert all NaN values in vector v to NULL. Should only be used if n > 0. public static void NaNToNull(DoubleColumnVector v, int[] sel, boolean selectedInUse, int n) { NaNToNull(v, sel, selectedInUse, n, false); diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java index bbf8862..52e6da6 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java @@ -680,7 +680,7 @@ private static VectorExpressionWriter genVectorExpressionWritableChar( return new VectorExpressionWriterBytes() { private Object obj; private Text text; - + public VectorExpressionWriter init(SettableHiveCharObjectInspector objInspector) throws HiveException { super.init(objInspector); @@ -688,7 +688,7 @@ public VectorExpressionWriter init(SettableHiveCharObjectInspector objInspector) this.obj = initValue(null); return this; } - + @Override public Object writeValue(byte[] value, int start, int length) throws HiveException { text.set(value, start, length); @@ -706,7 +706,7 @@ public Object setValue(Object field, byte[] value, int start, int length) ((SettableHiveCharObjectInspector) this.objectInspector).set(field, text.toString()); return field; } - + @Override public Object initValue(Object ignored) { return ((SettableHiveCharObjectInspector) this.objectInspector) diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java index 9cc0621..1e5c086 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java @@ -158,11 +158,11 @@ private void initPartialResultInspector() { // the output type of the vectorized partial aggregate must match the // expected type for the row-mode aggregation // For decimal, the type is "same number of integer digits and 4 more decimal digits" - + DecimalTypeInfo dtiSum = GenericUDAFAverage.deriveSumFieldTypeInfo(inputPrecision, inputScale); this.sumScale = (short) dtiSum.scale(); this.sumPrecision = (short) dtiSum.precision(); - + List foi = new ArrayList(); foi.add(PrimitiveObjectInspectorFactory.writableLongObjectInspector); foi.add(PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(dtiSum)); diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java index 7dabbd8..ba793ca 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java @@ -162,7 +162,7 @@ private void iterateNoNullsSelectionWithAggregationSelection( long[] values, int[] selection, int batchSize) { - + for (int i=0; i < batchSize; ++i) { Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, @@ -193,7 +193,7 @@ private void iterateHasNullsRepeatingSelectionWithAggregationSelection( int batchSize, int[] selection, boolean[] isNull) { - + for (int i=0; i < batchSize; ++i) { if (!isNull[selection[i]]) { Aggregation myagg = getCurrentAggregationBuffer( @@ -203,7 +203,7 @@ private void iterateHasNullsRepeatingSelectionWithAggregationSelection( myagg.value += value; } } - + } private void iterateHasNullsRepeatingWithAggregationSelection( @@ -280,7 +280,7 @@ public void aggregateInput(AggregationBuffer agg, VectorizedRowBatch batch) Aggregation myagg = (Aggregation)agg; long[] vector = inputVector.vector; - + if (inputVector.isRepeating) { if (inputVector.noNulls) { myagg.value += vector[0]*batchSize; @@ -301,7 +301,7 @@ else if (inputVector.noNulls){ iterateSelectionHasNulls(myagg, vector, batchSize, inputVector.isNull, batch.selected); } } - + private void iterateSelectionHasNulls( Aggregation myagg, long[] vector, @@ -333,7 +333,7 @@ private void iterateNoSelectionHasNulls( long[] vector, int batchSize, boolean[] isNull) { - + for(int i=0;i