diff --git a/jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java b/jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java index 52de5fa424..12d7cdbfac 100644 --- a/jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java +++ b/jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java @@ -3733,13 +3733,16 @@ public abstract class jOOQAbstractTest< @Test public void testCrossJoin() throws Exception { + Result result; + + // Using the CROSS JOIN clause assertEquals(Integer.valueOf(8), create().select(create().count()) .from(TAuthor()) .crossJoin(TBook()) .fetchOne(0)); - Result result = + result = create().select() .from(create().select(val(1).cast(Integer.class).as("a"))) .crossJoin(TAuthor()) @@ -3750,6 +3753,24 @@ public abstract class jOOQAbstractTest< assertEquals(Integer.valueOf(1), result.getValue(0, 1)); assertEquals(Integer.valueOf(1), result.getValue(1, 0)); assertEquals(Integer.valueOf(2), result.getValue(1, 1)); + + + // [#772] Using the FROM clause for regular cartesian products + assertEquals(Integer.valueOf(8), + create().select(create().count()) + .from(TAuthor(), TBook()) + .fetchOne(0)); + + result = + create().select() + .from(create().select(val(1).cast(Integer.class).as("a")), TAuthor()) + .orderBy(TAuthor_ID()) + .fetch(); + + assertEquals(Integer.valueOf(1), result.getValue(0, 0)); + assertEquals(Integer.valueOf(1), result.getValue(0, 1)); + assertEquals(Integer.valueOf(1), result.getValue(1, 0)); + assertEquals(Integer.valueOf(2), result.getValue(1, 1)); } @Test