use of org.apache.carbondata.core.scan.expression.ExpressionResult in project carbondata by apache.
the class LessThanExpressionUnitTest method testEvaluateForLessThanExpressionWithIsNullReturnTrue.
@Test
public void testEvaluateForLessThanExpressionWithIsNullReturnTrue() throws FilterUnsupportedException, FilterIllegalMemberException {
ColumnExpression right = new ColumnExpression("id", DataType.SHORT);
right.setColIndex(0);
lessThanExpression = new LessThanExpression(right, right);
RowImpl value = new RowImpl();
Short[] row = { 15 };
Object[] objectRow = { row };
value.setValues(objectRow);
new MockUp<ExpressionResult>() {
@Mock
public boolean isNull() {
return true;
}
};
new MockUp<ExpressionResult>() {
@Mock
public Short getShort() {
return 15;
}
};
ExpressionResult result = lessThanExpression.evaluate(value);
assertFalse(result.getBoolean());
}
use of org.apache.carbondata.core.scan.expression.ExpressionResult in project carbondata by apache.
the class InExpressionUnitTest method testEvaluateForInExpressionWithDoubleDataType.
@Test
public void testEvaluateForInExpressionWithDoubleDataType() throws FilterUnsupportedException, FilterIllegalMemberException {
ColumnExpression left = new ColumnExpression("left_contact", DataType.DOUBLE);
left.setColIndex(0);
ColumnExpression right = new ColumnExpression("right_contact", DataType.DOUBLE);
right.setColIndex(1);
inExpression = new InExpression(left, right);
RowImpl value = new RowImpl();
Double row = 44521D;
Double row1 = 44521D;
Object[] objectRow = { row, row1 };
value.setValues(objectRow);
new MockUp<ExpressionResult>() {
@Mock
public Double getDouble() {
return 44521D;
}
};
ExpressionResult result = inExpression.evaluate(value);
assertTrue(result.getBoolean());
}
use of org.apache.carbondata.core.scan.expression.ExpressionResult in project carbondata by apache.
the class InExpressionUnitTest method testEvaluateForInExpressionWithDecimalDataType.
@Test
public void testEvaluateForInExpressionWithDecimalDataType() throws FilterUnsupportedException, FilterIllegalMemberException {
ColumnExpression left = new ColumnExpression("left_contact", DataType.DECIMAL);
left.setColIndex(0);
ColumnExpression right = new ColumnExpression("right_contact", DataType.DECIMAL);
right.setColIndex(1);
inExpression = new InExpression(left, right);
RowImpl value = new RowImpl();
Decimal row = Decimal.apply(123452154.0);
Decimal row1 = Decimal.apply(123452154.0);
Object[] objectRow = { row, row1 };
value.setValues(objectRow);
new MockUp<ExpressionResult>() {
@Mock
public BigDecimal getDecimal() {
return new BigDecimal(123452154.0);
}
};
ExpressionResult result = inExpression.evaluate(value);
assertTrue(result.getBoolean());
}
use of org.apache.carbondata.core.scan.expression.ExpressionResult in project carbondata by apache.
the class EqualToExpressionUnitTest method testEvaluateForEqualToExpressionWithStringDataType.
@Test
public void testEvaluateForEqualToExpressionWithStringDataType() throws FilterUnsupportedException, FilterIllegalMemberException {
ColumnExpression right = new ColumnExpression("name", DataType.STRING);
right.setColIndex(0);
equalToExpression = new EqualToExpression(right, right);
RowImpl value = new RowImpl();
String[] row = { "String1" };
Object[] objectRow = { row };
value.setValues(objectRow);
new MockUp<ExpressionResult>() {
@Mock
public String getString() {
return "String1";
}
};
ExpressionResult result = equalToExpression.evaluate(value);
assertTrue(result.getBoolean());
}
use of org.apache.carbondata.core.scan.expression.ExpressionResult in project carbondata by apache.
the class RowLevelRangeFilterResolverImpl method getNoDictionaryRangeValues.
private List<byte[]> getNoDictionaryRangeValues() {
List<ExpressionResult> listOfExpressionResults = new ArrayList<ExpressionResult>(20);
if (this.getFilterExpression() instanceof BinaryConditionalExpression) {
listOfExpressionResults = ((BinaryConditionalExpression) this.getFilterExpression()).getLiterals();
}
List<byte[]> filterValuesList = new ArrayList<byte[]>(20);
boolean invalidRowsPresent = false;
for (ExpressionResult result : listOfExpressionResults) {
try {
if (result.getString() == null) {
filterValuesList.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL.getBytes());
continue;
}
filterValuesList.add(DataTypeUtil.getBytesBasedOnDataTypeForNoDictionaryColumn(result.getString(), result.getDataType()));
} catch (FilterIllegalMemberException e) {
// Any invalid member while evaluation shall be ignored, system will log the
// error only once since all rows the evaluation happens so inorder to avoid
// too much log inforation only once the log will be printed.
FilterUtil.logError(e, invalidRowsPresent);
}
}
Comparator<byte[]> filterNoDictValueComaparator = new Comparator<byte[]>() {
@Override
public int compare(byte[] filterMember1, byte[] filterMember2) {
return ByteUtil.UnsafeComparer.INSTANCE.compareTo(filterMember1, filterMember2);
}
};
Collections.sort(filterValuesList, filterNoDictValueComaparator);
return filterValuesList;
}
Aggregations