Which is the HQL limitation ?

On Mon, Mar 12, 2012 at 6:05 AM, Oskar Berggren <[email protected]>wrote:

> 2012/3/12 Richard Brown <[email protected]>:
> > This seems like a limitation of Firebird, rather than NH or Linq.
>  Shouldn't
> > we just ignore this test on Firebird?
>
> Firebird supports two-argument substring, so it seems a shame if the
> linq provider obstructs this by insisting on creating a third
> argument. So in a way I think this is LINQ trying to work around an
> HQL limitation.
>
>
> Concerning making HQL always support the two-argument form, things
> seem to look rather good. For the dialects which does not already
> support this:
>
> MSSQL (all versions, it seems): Always requires three arguments, but
> the third argument can be larger than the length of the remainder of
> the string, i.e. Int32.MaxValue.
>
> MySql: Actually supports ANSI substring(), so the dialect should just
> be corrected.
>
> DB2: I suspect the current dialect's substring doesn't work at all
> because DB2 requires a weird fourth argument, which I think the
> dialect can insert as a constant. Other than that it should use ANSI
> substring, which supports optional length.
>
> Ingres: “Ingres 2006 SQL reference guide”: Supports substring(str from
> loc [for len])
>
> SybaseASE15Dialect: This seems to be the only question mark. The third
> argument is not optional, and there is no statement what happens if
> the length is "oversized". This can be worked around by having the
> dialect construct a third argument from len(first_argument) - start.
>
>
> In summary: all dialects can be made to support two-argument substring
> with little work.
>
> /Oskar
>



-- 
Fabio Maulo

Reply via email to