Review market tests documentation #40
59 tests run, 49 passed, 0 skipped, 10 failed.
Annotations
github-actions / test-result-Petstore
TestPetstore0DatagenLive.testPlacedPet0OrdersByCategoryAndOrderStatus
Strings are different. First diff at line 7 column 44.
failed rules-placed-pet0-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet0-orders-by-category-order-status.xml.html
expected:<..." ON Customer0.id = [Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet0.category::name = 'Dogs' is TRUE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet0.category::name = 'Dogs' is FALSE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order0".status = 'placed' is FALSE
--(T) Pet0.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
LEFT JOIN "Order0" ON Customer0.id = Order0.customerId
LEFT JOIN Pet0 ON Order0.petId = Pet0.id
WHERE (Order0.customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ;
--summary: [Customer0] left [Order0] ON Customer0.id = Order0.customerId
--There exist some row in table Customer0
--which does not join to any table in Order0</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
RIGHT JOIN "Order0" ON Customer0.id = Order0.customerId
RIGHT JOIN Pet0 ON Order0.petId = Pet0.id
WHERE ((Order0.petId IS NULL) AND (Pet0.id IS NOT NULL))
AND (Pet0.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ;
--summary: [Order0] right [Pet0] ON Order0].petId = Pet0.id
-...> but was:<..." ON Customer0.id = ["Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet0.category::name = 'Dogs' is TRUE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet0.category::name = 'Dogs' is FALSE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order0".status = 'placed' is FALSE
--(T) Pet0.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
LEFT JOIN "Order0" ON Customer0.id = "Order0".customerId
LEFT JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE ("Order0".customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ;
--summary: [Customer0] left [Order0] ON Customer0.id = "Order0".customerId
--There exist some row in table Customer0
--which does not join to any table in Order0</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
RIGHT JOIN "Order0" ON Customer0.id = "Order0".customerId
RIGHT JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE (("Order0".petId IS NULL) AND (Pet0.id IS NOT NULL))
AND (Pet0.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ;
--summary: [Order0] right [Pet0] ON "Order0"].petId = Pet0.id
-...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 7 column 44.
failed rules-placed-pet0-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet0-orders-by-category-order-status.xml.html
expected:<..." ON Customer0.id = [Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet0.category::name = 'Dogs' is TRUE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet0.category::name = 'Dogs' is FALSE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order0".status = 'placed' is FALSE
--(T) Pet0.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
LEFT JOIN "Order0" ON Customer0.id = Order0.customerId
LEFT JOIN Pet0 ON Order0.petId = Pet0.id
WHERE (Order0.customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ;
--summary: [Customer0] left [Order0] ON Customer0.id = Order0.customerId
--There exist some row in table Customer0
--which does not join to any table in Order0</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
RIGHT JOIN "Order0" ON Customer0.id = Order0.customerId
RIGHT JOIN Pet0 ON Order0.petId = Pet0.id
WHERE ((Order0.petId IS NULL) AND (Pet0.id IS NOT NULL))
AND (Pet0.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ;
--summary: [Order0] right [Pet0] ON Order0].petId = Pet0.id
-...> but was:<..." ON Customer0.id = ["Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet0.category::name = 'Dogs' is TRUE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet0.category::name = 'Dogs' is FALSE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order0".status = 'placed' is FALSE
--(T) Pet0.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
LEFT JOIN "Order0" ON Customer0.id = "Order0".customerId
LEFT JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE ("Order0".customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ;
--summary: [Customer0] left [Order0] ON Customer0.id = "Order0".customerId
--There exist some row in table Customer0
--which does not join to any table in Order0</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
RIGHT JOIN "Order0" ON Customer0.id = "Order0".customerId
RIGHT JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE (("Order0".petId IS NULL) AND (Pet0.id IS NOT NULL))
AND (Pet0.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ;
--summary: [Order0] right [Pet0] ON "Order0"].petId = Pet0.id
-...>
at org.junit.Assert.assertEquals(Assert.java:117)
at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
at test4giis.tdrules.tdg.st.test.petstore.TestPetstore0DatagenLocal.testPlacedPet0OrdersByCategoryAndOrderStatus(TestPetstore0DatagenLocal.java:135)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
github-actions / test-result-Petstore
TestPetstore0DatagenLocal.testPlacedPet0OrdersByCategoryAndOrderStatus
Strings are different. First diff at line 7 column 44.
failed rules-placed-pet0-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet0-orders-by-category-order-status.xml.html
expected:<..." ON Customer0.id = [Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet0.category::name = 'Dogs' is TRUE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet0.category::name = 'Dogs' is FALSE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order0".status = 'placed' is FALSE
--(T) Pet0.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
LEFT JOIN "Order0" ON Customer0.id = Order0.customerId
LEFT JOIN Pet0 ON Order0.petId = Pet0.id
WHERE (Order0.customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ;
--summary: [Customer0] left [Order0] ON Customer0.id = Order0.customerId
--There exist some row in table Customer0
--which does not join to any table in Order0</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
RIGHT JOIN "Order0" ON Customer0.id = Order0.customerId
RIGHT JOIN Pet0 ON Order0.petId = Pet0.id
WHERE ((Order0.petId IS NULL) AND (Pet0.id IS NOT NULL))
AND (Pet0.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ;
--summary: [Order0] right [Pet0] ON Order0].petId = Pet0.id
-...> but was:<..." ON Customer0.id = ["Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet0.category::name = 'Dogs' is TRUE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet0.category::name = 'Dogs' is FALSE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order0".status = 'placed' is FALSE
--(T) Pet0.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
LEFT JOIN "Order0" ON Customer0.id = "Order0".customerId
LEFT JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE ("Order0".customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ;
--summary: [Customer0] left [Order0] ON Customer0.id = "Order0".customerId
--There exist some row in table Customer0
--which does not join to any table in Order0</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
RIGHT JOIN "Order0" ON Customer0.id = "Order0".customerId
RIGHT JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE (("Order0".petId IS NULL) AND (Pet0.id IS NOT NULL))
AND (Pet0.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ;
--summary: [Order0] right [Pet0] ON "Order0"].petId = Pet0.id
-...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 7 column 44.
failed rules-placed-pet0-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet0-orders-by-category-order-status.xml.html
expected:<..." ON Customer0.id = [Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet0.category::name = 'Dogs' is TRUE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet0.category::name = 'Dogs' is FALSE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = Order0.customerId
INNER JOIN Pet0 ON Order0.petId = Pet0.id
WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order0".status = 'placed' is FALSE
--(T) Pet0.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
LEFT JOIN "Order0" ON Customer0.id = Order0.customerId
LEFT JOIN Pet0 ON Order0.petId = Pet0.id
WHERE (Order0.customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ;
--summary: [Customer0] left [Order0] ON Customer0.id = Order0.customerId
--There exist some row in table Customer0
--which does not join to any table in Order0</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
RIGHT JOIN "Order0" ON Customer0.id = Order0.customerId
RIGHT JOIN Pet0 ON Order0.petId = Pet0.id
WHERE ((Order0.petId IS NULL) AND (Pet0.id IS NOT NULL))
AND (Pet0.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ;
--summary: [Order0] right [Pet0] ON Order0].petId = Pet0.id
-...> but was:<..." ON Customer0.id = ["Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet0.category::name = 'Dogs' is TRUE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet0.category::name = 'Dogs' is FALSE
--(T) "Order0".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
<sql>SELECT *
FROM Customer0
INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
INNER JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order0".status = 'placed' is FALSE
--(T) Pet0.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
LEFT JOIN "Order0" ON Customer0.id = "Order0".customerId
LEFT JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE ("Order0".customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ;
--summary: [Customer0] left [Order0] ON Customer0.id = "Order0".customerId
--There exist some row in table Customer0
--which does not join to any table in Order0</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer0
RIGHT JOIN "Order0" ON Customer0.id = "Order0".customerId
RIGHT JOIN Pet0 ON "Order0".petId = Pet0.id
WHERE (("Order0".petId IS NULL) AND (Pet0.id IS NOT NULL))
AND (Pet0.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ;
--summary: [Order0] right [Pet0] ON "Order0"].petId = Pet0.id
-...>
at org.junit.Assert.assertEquals(Assert.java:117)
at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
at test4giis.tdrules.tdg.st.test.petstore.TestPetstore0DatagenLocal.testPlacedPet0OrdersByCategoryAndOrderStatus(TestPetstore0DatagenLocal.java:135)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
github-actions / test-result-Petstore
TestPetstoreDatagenLive.testPlacedPetOrdersByAddressAndOrderStatus
Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-address-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-address-order-status.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Customer_address_xa.zip = '99999' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Customer_address_xa.zip = '99999' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Customer_address_xa.zip = '99999' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ;
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
--WHERE "Order".status = 'placed'</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Order.customerId IS NULL) AND (Customer.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Customer_address_xa.zip = '99999'</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Customer_address_xa.zip = '99999' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Customer_address_xa.zip = '99999' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Customer_address_xa.zip = '99999' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ;
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
--WHERE "Order".status = 'placed'</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (("Order".customerId IS NULL) AND (Customer.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Customer_address_xa.zip = '99999'</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order"].petId = Pet.id
...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-address-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-address-order-status.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Customer_address_xa.zip = '99999' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Customer_address_xa.zip = '99999' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Customer_address_xa.zip = '99999' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ;
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
--WHERE "Order".status = 'placed'</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Order.customerId IS NULL) AND (Customer.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Customer_address_xa.zip = '99999'</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Customer_address_xa.zip = '99999' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Customer_address_xa.zip = '99999' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Customer_address_xa.zip = '99999' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ;
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
--WHERE "Order".status = 'placed'</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (("Order".customerId IS NULL) AND (Customer.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Customer_address_xa.zip = '99999'</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order"].petId = Pet.id
...>
at org.junit.Assert.assertEquals(Assert.java:117)
at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testPlacedPetOrdersByAddressAndOrderStatus(TestPetstoreDatagenLocal.java:140)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
github-actions / test-result-Petstore
TestPetstoreDatagenLive.testTotalPetsToDeliverByAddress
Strings are different. First diff at line 8 column 42.
failed rules-total-pets-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pets-by-address.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
HAVING count(distinct Customer_address_xa.zip)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
</fpcrule>
<fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
HAVING count(distinct Customer_address_xa.zip)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
</fpcrule>
<fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order"].petId = Pet.id
...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-total-pets-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pets-by-address.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
HAVING count(distinct Customer_address_xa.zip)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
</fpcrule>
<fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
HAVING count(distinct Customer_address_xa.zip)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
</fpcrule>
<fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order"].petId = Pet.id
...>
at org.junit.Assert.assertEquals(Assert.java:117)
at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testTotalPetsToDeliverByAddress(TestPetstoreDatagenLocal.java:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
github-actions / test-result-Petstore
TestPetstoreDatagenLive.testPlacedPetOrdersByCategoryAndOrderStatus
Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-category-order-status.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet.category::name = 'Dogs' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet.category::name = 'Dogs' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Pet.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Order.petId IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Pet.category::name = 'Dogs'</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet.category::name = 'Dogs' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet.category::name = 'Dogs' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Pet.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (("Order".petId IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Pet.category::name = 'Dogs'</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order"].petId = Pet.id
...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-category-order-status.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet.category::name = 'Dogs' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet.category::name = 'Dogs' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Pet.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Order.petId IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Pet.category::name = 'Dogs'</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet.category::name = 'Dogs' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet.category::name = 'Dogs' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Pet.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (("Order".petId IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Pet.category::name = 'Dogs'</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order"].petId = Pet.id
...>
at org.junit.Assert.assertEquals(Assert.java:117)
at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testPlacedPetOrdersByCategoryAndOrderStatus(TestPetstoreDatagenLocal.java:125)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
github-actions / test-result-Petstore
TestPetstoreDatagenLive.testTotalOrdersToDeliverByAddress
Strings are different. First diff at line 8 column 42.
failed rules-total-pet-orders-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pet-orders-by-address.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order"].petId = Pet.id
...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-total-pet-orders-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pet-orders-by-address.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order"].petId = Pet.id
...>
at org.junit.Assert.assertEquals(Assert.java:117)
at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testTotalOrdersToDeliverByAddress(TestPetstoreDatagenLocal.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
github-actions / test-result-Petstore
TestPetstoreDatagenLocal.testPlacedPetOrdersByAddressAndOrderStatus
Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-address-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-address-order-status.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Customer_address_xa.zip = '99999' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Customer_address_xa.zip = '99999' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Customer_address_xa.zip = '99999' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ;
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
--WHERE "Order".status = 'placed'</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Order.customerId IS NULL) AND (Customer.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Customer_address_xa.zip = '99999'</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Customer_address_xa.zip = '99999' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Customer_address_xa.zip = '99999' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Customer_address_xa.zip = '99999' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ;
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
--WHERE "Order".status = 'placed'</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (("Order".customerId IS NULL) AND (Customer.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Customer_address_xa.zip = '99999'</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order"].petId = Pet.id
...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-address-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-address-order-status.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Customer_address_xa.zip = '99999' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Customer_address_xa.zip = '99999' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Customer_address_xa.zip = '99999' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ;
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
--WHERE "Order".status = 'placed'</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Order.customerId IS NULL) AND (Customer.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Customer_address_xa.zip = '99999'</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Customer_address_xa.zip = '99999' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Customer_address_xa.zip = '99999' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Customer_address_xa.zip = '99999' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ;
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
--WHERE "Order".status = 'placed'</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (("Order".customerId IS NULL) AND (Customer.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Customer_address_xa.zip = '99999'</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order"].petId = Pet.id
...>
at org.junit.Assert.assertEquals(Assert.java:117)
at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testPlacedPetOrdersByAddressAndOrderStatus(TestPetstoreDatagenLocal.java:140)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
github-actions / test-result-Petstore
TestPetstoreDatagenLocal.testTotalPetsToDeliverByAddress
Strings are different. First diff at line 8 column 42.
failed rules-total-pets-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pets-by-address.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
HAVING count(distinct Customer_address_xa.zip)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
</fpcrule>
<fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
HAVING count(distinct Customer_address_xa.zip)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
</fpcrule>
<fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order"].petId = Pet.id
...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-total-pets-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pets-by-address.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
HAVING count(distinct Customer_address_xa.zip)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
</fpcrule>
<fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
HAVING count(distinct Customer_address_xa.zip)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
</fpcrule>
<fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
<sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order"].petId = Pet.id
...>
at org.junit.Assert.assertEquals(Assert.java:117)
at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testTotalPetsToDeliverByAddress(TestPetstoreDatagenLocal.java:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
github-actions / test-result-Petstore
TestPetstoreDatagenLocal.testPlacedPetOrdersByCategoryAndOrderStatus
Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-category-order-status.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet.category::name = 'Dogs' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet.category::name = 'Dogs' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Pet.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Order.petId IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Pet.category::name = 'Dogs'</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet.category::name = 'Dogs' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet.category::name = 'Dogs' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Pet.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (("Order".petId IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Pet.category::name = 'Dogs'</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order"].petId = Pet.id
...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-category-order-status.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet.category::name = 'Dogs' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet.category::name = 'Dogs' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Pet.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Order.petId IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Pet.category::name = 'Dogs'</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) Pet.category::name = 'Dogs' is TRUE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) Pet.category::name = 'Dogs' is FALSE
--(T) "Order".status = 'placed' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'placed' is FALSE
--(T) Pet.category::name = 'Dogs' is TRUE</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (("Order".petId IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs')</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order
--The following condition in the WHERE holds:
--WHERE Pet.category::name = 'Dogs'</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT *
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order"].petId = Pet.id
...>
at org.junit.Assert.assertEquals(Assert.java:117)
at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testPlacedPetOrdersByCategoryAndOrderStatus(TestPetstoreDatagenLocal.java:125)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
github-actions / test-result-Petstore
TestPetstoreDatagenLocal.testTotalOrdersToDeliverByAddress
Strings are different. First diff at line 8 column 42.
failed rules-total-pet-orders-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pet-orders-by-address.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order"].petId = Pet.id
...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-total-pet-orders-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pet-orders-by-address.xml.html
expected:<...r" ON Customer.id = [Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = Order.customerId
LEFT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = Order.customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON Order.petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = Order.customerId
RIGHT JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order.petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = Order.customerId
INNER JOIN Pet ON Order].petId = Pet.id
...> but was:<...r" ON Customer.id = ["Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
<fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE NOT("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(F) "Order".status = 'approved' is FALSE</description>
</fpcrule>
<fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>--A set of joined tables such that:
--The WHERE condition fulfills:
--(T) "Order".status = 'approved' is TRUE</description>
</fpcrule>
<fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
--There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
LEFT JOIN "Order" ON Customer.id = "Order".customerId
LEFT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Customer] left [Order] ON Customer.id = "Order".customerId
--There exist a set of rows joined from tables Customer, Customer_address_xa
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Order] right [Pet] ON "Order".petId = Pet.id
--There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Order</description>
</fpcrule>
<fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
--which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
AND ("Order".status = 'approved')
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
--There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
--which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
</fpcrule>
<fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
RIGHT JOIN "Order" ON Customer.id = "Order".customerId
RIGHT JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
GROUP BY Customer_address_xa.zip</sql>
<description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ;
--summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
--There exist some row in table Category Pet_category_xref
--which does not join to any table in Pet</description>
</fpcrule>
<fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
<sql>SELECT Customer_address_xa.zip , COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order".petId = Pet.id
LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
WHERE "Order".status = 'approved'
GROUP BY Customer_address_xa.zip
HAVING count(*)>1</sql>
<description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
</fpcrule>
<fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
<sql>SELECT COUNT(*)
FROM Customer
LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
INNER JOIN "Order" ON Customer.id = "Order".customerId
INNER JOIN Pet ON "Order"].petId = Pet.id
...>
at org.junit.Assert.assertEquals(Assert.java:117)
at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testTotalOrdersToDeliverByAddress(TestPetstoreDatagenLocal.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)