Github user twalthr commented on the pull request:
https://github.com/apache/flink/pull/1747#issuecomment-190825143
"quite a bit of code at various places": Yes, you are right. I already
tried to simplify it as much as I can. The problem is that we have 3 APIs that
all have slightly different requirements. I chose `TRIM` because it is an
extreme example. Other functions (80%) are easier, because they don't need
their own code generator and ExpressionParser.
My current implementation has a proper separation of the different layers:
Expression API -> RexNodeTranslator -> CodeGen
3 layers + 3 APIs = up to 6 files to change for every function.
I don't know if it makes sense to mix the layers.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---