You are misusing JdbcFunction. You should only be using it if there is a translation using the jdbc escape syntax and then you don't need to catch it in JdbcStatementBuilderComponent, because there is already a rule that translates JdbcFunction correctly. If there is no escape syntax, use FunctionSymbol instead and provide a catch case as you did.