amrishlal commented on pull request #7678:
URL: https://github.com/apache/pinot/pull/7678#issuecomment-962528789
The column names in the resultset look good now, but I think there is more
here than meets the eye. During runtime `AsTransformFunction` is being
constantly called by `DistinctOperator`. This appears to be redundant since
`AsTransformFunction` is simply passing the underlying resultset and has no use
during runtime. I think this can be fixed by making the following modification
to `BrokerRequestToQueryContextConverter.java`:
```
case "DISTINCT":
// Handle alias
operands = thriftExpression.getFunctionCall().getOperands();
for (Expression operand : operands) {
if (operand.isSetFunctionCall() &&
operand.getFunctionCall().getOperator().equalsIgnoreCase("AS")) {
List<Expression> asOperands =
operand.getFunctionCall().getOperands();
aliasList.add(asOperands.get(1).getIdentifier().getName());
// Now that alias has been set, we don't need AS function,
so replace AS function with its first
// operand.
Expression mainOperand = asOperands.get(0);
operand.setType(mainOperand.getType());
operand.unsetFunctionCall();
switch (mainOperand.getType()) {
case LITERAL:
operand.setLiteral(mainOperand.getLiteral());
break;
case FUNCTION:
operand.setFunctionCall(mainOperand.getFunctionCall());
break;
case IDENTIFIER:
operand.setIdentifier(mainOperand.getIdentifier());
break;
}
} else {
aliasList.add(null);
}
}
break;
```
However, this fix still appears a bit "hacky" since AsTransformFunction is
used only during compile time and then discarded. One way to fix this might be
to modify `org.apache.pinot.common.request.Function` to contain a list of
output aliases (?) Since DISTINCT is a Function that outputs an entire row (and
there are probably other functions like this), it makes sense for `Function` to
have a list of aliases for the row output as well (?) and this will avoid the
use of `AsTransformFunction` and all we would need to do is to fetch the list
of aliases from the Function and set it (?)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]