final ODocument result = new ODocument(database).setOrdered(true);
for (Entry<String, Object> projection : projections.entrySet()) {
if (projection.getValue() instanceof OSQLFilterItemField)
value = ((OSQLFilterItemField) projection.getValue()).getValue(result);
else if (projection.getValue() instanceof OSQLFunctionRuntime) {
final OSQLFunctionRuntime f = (OSQLFunctionRuntime) projection.getValue();
value = f.getResult();
} else
value = projection.getValue();
result.field(projection.getKey(), value);
}