If you implement Substring as a `JdbcFunction` there is probably no need for these special cases. What I mean earlier was: Use `JdbcFunction` when corresponding jdbc escape syntax exists and do NOT manually write a case for it in JdbcStatementBuilderComponent. Then the jdbc driver will do the driver specific translation for you. For cases where no jdbc escape syntax exists use `FunctionSymbol` instead. Do you see what I mean?  @szeiger WDYT?