We don't have such a facility at the moment, but it sounds like a
reasonable feature request.
We could allow you to mark a function alias as having "free-form
parameters". Then it would be up to the function code to parse the
arguments.
Something like
CREATE ALIAS DATE_ADD FREEFORM FOR "H2Functions.dateAdd";
Where the method would have to be defined like this:
public static void dateAdd(String[] params) {}
Thomas, what do you think of my proposed syntax?
On Mon, Feb 6, 2012 at 17:55, Boris Granveaud <[email protected]> wrote:
> Hello,
>
> I need to be able to execute MySQL statements on H2 for my unit tests.
> And I'm blocked by the DATE_ADD(...) function.
>
> I tried to define my own function in Java like this:
>
> public class H2Functions {
> public static Date dateAdd(Date date, String expr) {
> ...
> }
> }
>
> CREATE ALIAS DATE_ADD FOR "H2Functions.dateAdd";
> SELECT DATE_ADD(now(), INTERVAL 1 DAY);
>
> Syntax error in SQL statement "SELECT DATE_ADD(NOW(), INTERVAL 1[*]
> DAY) "; expected "., (, [, ::, *, /, %, +, -, ||, ~, !~, NOT, LIKE,
> REGEXP, IS, IN, BETWEEN, AND, OR, ), ,"; SQL statement:
> SELECT DATE_ADD(now(), INTERVAL 1 DAY) [42001-164] 42001/42001
>
> I understand that INTERVAL 1 DAY is not a string, and so my function
> is not called.
>
> Is there a mean to have a SQL request with DATE_ADD which works on
> both H2 and MySQL?
>
> Thanks.
>
> --
> You received this message because you are subscribed to the Google Groups "H2
> Database" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/h2-database?hl=en.
>
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.