use of org.ojai.Value in project drill by apache.
the class JsonConditionBuilder method createJsonScanSpec.
private JsonScanSpec createJsonScanSpec(FunctionCall call, CompareFunctionsProcessor processor) {
String functionName = processor.getFunctionName();
SchemaPath field = processor.getPath();
Value fieldValue = processor.getValue();
QueryCondition cond = null;
switch(functionName) {
case "equal":
cond = MapRDB.newCondition();
setIsCondition(cond, field.getAsUnescapedPath(), Op.EQUAL, fieldValue);
cond.build();
break;
case "not_equal":
cond = MapRDB.newCondition();
setIsCondition(cond, field.getAsUnescapedPath(), Op.NOT_EQUAL, fieldValue);
cond.build();
break;
case "less_than":
cond = MapRDB.newCondition();
setIsCondition(cond, field.getAsUnescapedPath(), Op.LESS, fieldValue);
cond.build();
break;
case "less_than_or_equal_to":
cond = MapRDB.newCondition();
setIsCondition(cond, field.getAsUnescapedPath(), Op.LESS_OR_EQUAL, fieldValue);
cond.build();
break;
case "greater_than":
cond = MapRDB.newCondition();
setIsCondition(cond, field.getAsUnescapedPath(), Op.GREATER, fieldValue);
cond.build();
break;
case "greater_than_or_equal_to":
cond = MapRDB.newCondition();
setIsCondition(cond, field.getAsUnescapedPath(), Op.GREATER_OR_EQUAL, fieldValue);
cond.build();
break;
case "isnull":
cond = MapRDB.newCondition().notExists(field.getAsUnescapedPath()).build();
break;
case "isnotnull":
cond = MapRDB.newCondition().exists(field.getAsUnescapedPath()).build();
break;
case "istrue":
cond = MapRDB.newCondition().is(field.getAsUnescapedPath(), Op.EQUAL, true).build();
break;
case "isnotfalse":
cond = MapRDB.newCondition().is(field.getAsUnescapedPath(), Op.NOT_EQUAL, false).build();
break;
case "isfalse":
cond = MapRDB.newCondition().is(field.getAsUnescapedPath(), Op.EQUAL, false).build();
break;
case "isnottrue":
cond = MapRDB.newCondition().is(field.getAsUnescapedPath(), Op.NOT_EQUAL, true).build();
break;
case "like":
cond = MapRDB.newCondition().like(field.getAsUnescapedPath(), fieldValue.getString()).build();
break;
default:
}
if (cond != null) {
return new JsonScanSpec(groupScan.getTableName(), cond);
}
return null;
}
Aggregations