From eaec9e00feecdf5c65d2590fc19599989fe682f6 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 3 May 2016 06:50:32 +0200 Subject: [PATCH] [#4724] Comparison shouldn't be based on primary keys --- jOOQ/src/main/java/org/jooq/Table.java | 34 +++++++------------ .../java/org/jooq/impl/TableComparison.java | 12 +------ 2 files changed, 13 insertions(+), 33 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/Table.java b/jOOQ/src/main/java/org/jooq/Table.java index bfcf52d688..1833907b2f 100644 --- a/jOOQ/src/main/java/org/jooq/Table.java +++ b/jOOQ/src/main/java/org/jooq/Table.java @@ -1596,13 +1596,10 @@ public interface Table extends TableLike { /** * Create a predicate comparing records from self-joined tables. *

- * This is a convenience method for self-joins, comparing either: - *

    - *
  • Primary key values, if {@link #getPrimaryKey()} is available
  • - *
  • Complete records, otherwise
  • - *
- * For example: - *
+     * This is a convenience method for self-joins, comparing complete records
+     * between tables.
+     * 

+ * For example:

      * MyTable a = MY_TABLE.as("a");
      * MyTable b = MY_TABLE.as("b");
      *
@@ -1620,11 +1617,9 @@ public interface Table extends TableLike {
     /**
      * Create a predicate comparing records from self-joined tables.
      * 

- * This is a convenience method for self-joins, comparing either: - *

    - *
  • Primary key values, if {@link #getPrimaryKey()} is available
  • - *
  • Complete records, otherwise
  • - *
+ * This is a convenience method for self-joins, comparing complete records + * between tables. + *

* For example: *

      * MyTable a = MY_TABLE.as("a");
@@ -1650,12 +1645,9 @@ public interface Table extends TableLike {
 
     /**
      * Create a predicate comparing records from self-non-equi-joined tables.
+     * This is a convenience method for self-joins, comparing complete records
+     * between tables.
      * 

- * This is a convenience method for self-non-equi-joins, comparing either: - *

    - *
  • Primary key values, if {@link #getPrimaryKey()} is available
  • - *
  • Complete records, otherwise
  • - *
* For example: *
      * MyTable a = MY_TABLE.as("a");
@@ -1675,11 +1667,9 @@ public interface Table extends TableLike {
     /**
      * Create a predicate comparing records from self-non-equi-joined tables.
      * 

- * This is a convenience method for self-non-equi-joins, comparing either: - *

    - *
  • Primary key values, if {@link #getPrimaryKey()} is available
  • - *
  • Complete records, otherwise
  • - *
+ * This is a convenience method for self-joins, comparing complete records + * between tables. + *

* For example: *

      * MyTable a = MY_TABLE.as("a");
diff --git a/jOOQ/src/main/java/org/jooq/impl/TableComparison.java b/jOOQ/src/main/java/org/jooq/impl/TableComparison.java
index c2fac45b1e..a7bc5c5a63 100644
--- a/jOOQ/src/main/java/org/jooq/impl/TableComparison.java
+++ b/jOOQ/src/main/java/org/jooq/impl/TableComparison.java
@@ -47,7 +47,6 @@ import org.jooq.Comparator;
 import org.jooq.Context;
 import org.jooq.Record;
 import org.jooq.Table;
-import org.jooq.UniqueKey;
 
 /**
  * @author Lukas Eder
@@ -77,16 +76,7 @@ final class TableComparison extends AbstractCondition {
             }
 
             default: {
-                UniqueKey lhsPK = lhs.getPrimaryKey();
-                UniqueKey rhsPK = rhs.getPrimaryKey();
-
-                if (lhsPK != null && rhsPK != null && lhsPK.getTable().equals(rhsPK.getTable())) {
-                    ctx.visit(row(lhs.fields(lhsPK.getFieldsArray())).compare(comparator, row(rhs.fields(rhsPK.getFieldsArray()))));
-                }
-                else {
-                    ctx.visit(row(lhs.fields()).compare(comparator, row(rhs.fields())));
-                }
-
+                ctx.visit(row(lhs.fields()).compare(comparator, row(rhs.fields())));
                 break;
             }
         }