Hi, I see. Maybe it would make sense to add a special case for CAST(? AS <type>) in the parser, so that it's still a parameter, but with a specific type. I will try.
Regards, Thomas On Tue, Oct 8, 2013 at 7:39 PM, Lukas Eder <[email protected]> wrote: > > > 2013/10/8 Thomas Mueller <[email protected]> > >> Hi, >> >> Would it be possible to disable generating CAST? If the bind variable is >> set using PreparedStatement.setLong, I don't see why CAST would be needed. >> > > This is why: > https://groups.google.com/forum/#!msg/h2-database/byINJvfm1S8/gtHaq1jvyPMJ > > After I had reported the above, I had written this blog post here, > explaining why jOOQ casts bind values if databases don't infer them in some > cases: > http://blog.jooq.org/2011/08/31/rdbms-bind-variable-casting-madness > > Remember? :-) > But I'll review those casts. I'm sure that many of them aren't needed, and > jOOQ could omit blindly adding casts to all bind variables, e.g. when > placed in the IN predicate. > > >> Of course support for superfluous CAST (or any deterministic function on >> a parameter) could be implemented in H2, but so far it wasn't needed, and >> I'm hesitant to implement features that are not really needed. Also, it >> might break a known workaround to force not using a certain index (using >> the expression "-ID=-?"). I know that's a hack :-) >> > > True, I'm aware of similar hacks with Oracle: ID + 0 = ?. Although, that's > not exactly what I was proposing. While -ID prevents index usage, -? is > still a constant. So "ID = -(-?)" should still work the same way as "ID = > ?", in principle. > > >> > I don't think it's slow because of a missing index. >> >> OK, so the index is not be missing, but it is probably not used because >> of the CAST function. That would explain the difference. >> >> In general, I would probably use a profiler to check what's going on. See >> also http://h2database.com/html/performance.html#built_in_profiler - >> also, it would help to know the query plans, see >> http://h2database.com/html/performance.html#explain_plan >> >> >> Regards, >> Thomas >> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "H2 Database" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/h2-database/1B4PuijeaYU/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/h2-database. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- > You received this message because you are subscribed to the Google Groups > "H2 Database" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/h2-database. > For more options, visit https://groups.google.com/groups/opt_out. > -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/h2-database. For more options, visit https://groups.google.com/groups/opt_out.
