On Fri 25 May 2012 02:19:29 PM CDT, Łukasz Antoniak wrote: > Hello Community, > > Really quick question. There are quite few SQL syntax tricks similar to "row > value construct". > > CREATE TABLE test ( a1 NUMBER, b1 NUMBER ); > SELECT * FROM test WHERE (a1, b1) = ( 1, 1 ); -- Fails on Oracle > SELECT * FROM test WHERE (a1, b1) IN ( ( 1, 1 ), ( 2, 2 ) ); -- Passes on > Oracle > SELECT * FROM test WHERE (a1, b1) = ( SELECT 1, 1 FROM dual ); -- Passes on > Oracle > SELECT * FROM test WHERE (a1, b1) IN ( SELECT 1, 1 FROM dual ); -- Passes on > Oracle > > Oracle does not support "row value syntax" as shown in the first query > (Dialect#supportsRowValueConstructorSyntax() has to return > false). > > Should I assume that second, third and fourth query ought to pass when > Dialect#supportsRowValueConstructorSyntaxInInList() returns > positive?
Why would the third query fall into supportsRowValueConstructorSyntaxInInList? > Or shall I add another method to Dialect class like > supportsRowValueConstructorSyntaxInSelectList()? I am not understanding the need for supportsRowValueConstructorSyntaxInSelectList. What exactly is the purpose of grouping the values together in a select list? And in fact you are not even using tuple (row value constructor) syntax in any of the selects. > Please advise. I > just do not want the Dialect class to grow and grow. Nor do I :) The problem is all the variation in support for tuple syntax in different scenarios across the different databases. -- st...@hibernate.org http://hibernate.org _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev