From 483a0e2a51f5ec975ecaf90a72b7c3996e9860a2 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 11 May 2020 15:08:44 +0200 Subject: [PATCH] [jOOQ/jOOQ#10178] Add RowN.is[Not]DistinctFrom(Select) --- jOOQ/src/main/java/org/jooq/Row1.java | 14 +++ jOOQ/src/main/java/org/jooq/Row10.java | 14 +++ jOOQ/src/main/java/org/jooq/Row11.java | 14 +++ jOOQ/src/main/java/org/jooq/Row12.java | 14 +++ jOOQ/src/main/java/org/jooq/Row13.java | 14 +++ jOOQ/src/main/java/org/jooq/Row14.java | 14 +++ jOOQ/src/main/java/org/jooq/Row15.java | 14 +++ jOOQ/src/main/java/org/jooq/Row16.java | 14 +++ jOOQ/src/main/java/org/jooq/Row17.java | 14 +++ jOOQ/src/main/java/org/jooq/Row18.java | 14 +++ jOOQ/src/main/java/org/jooq/Row19.java | 14 +++ jOOQ/src/main/java/org/jooq/Row2.java | 14 +++ jOOQ/src/main/java/org/jooq/Row20.java | 14 +++ jOOQ/src/main/java/org/jooq/Row21.java | 14 +++ jOOQ/src/main/java/org/jooq/Row22.java | 14 +++ jOOQ/src/main/java/org/jooq/Row3.java | 14 +++ jOOQ/src/main/java/org/jooq/Row4.java | 14 +++ jOOQ/src/main/java/org/jooq/Row5.java | 14 +++ jOOQ/src/main/java/org/jooq/Row6.java | 14 +++ jOOQ/src/main/java/org/jooq/Row7.java | 14 +++ jOOQ/src/main/java/org/jooq/Row8.java | 14 +++ jOOQ/src/main/java/org/jooq/Row9.java | 14 +++ jOOQ/src/main/java/org/jooq/RowN.java | 14 +++ .../src/main/java/org/jooq/impl/RowImpl1.java | 10 ++ .../main/java/org/jooq/impl/RowImpl10.java | 10 ++ .../main/java/org/jooq/impl/RowImpl11.java | 10 ++ .../main/java/org/jooq/impl/RowImpl12.java | 10 ++ .../main/java/org/jooq/impl/RowImpl13.java | 10 ++ .../main/java/org/jooq/impl/RowImpl14.java | 10 ++ .../main/java/org/jooq/impl/RowImpl15.java | 10 ++ .../main/java/org/jooq/impl/RowImpl16.java | 10 ++ .../main/java/org/jooq/impl/RowImpl17.java | 10 ++ .../main/java/org/jooq/impl/RowImpl18.java | 10 ++ .../main/java/org/jooq/impl/RowImpl19.java | 10 ++ .../src/main/java/org/jooq/impl/RowImpl2.java | 10 ++ .../main/java/org/jooq/impl/RowImpl20.java | 10 ++ .../main/java/org/jooq/impl/RowImpl21.java | 10 ++ .../main/java/org/jooq/impl/RowImpl22.java | 10 ++ .../src/main/java/org/jooq/impl/RowImpl3.java | 10 ++ .../src/main/java/org/jooq/impl/RowImpl4.java | 10 ++ .../src/main/java/org/jooq/impl/RowImpl5.java | 10 ++ .../src/main/java/org/jooq/impl/RowImpl6.java | 10 ++ .../src/main/java/org/jooq/impl/RowImpl7.java | 10 ++ .../src/main/java/org/jooq/impl/RowImpl8.java | 10 ++ .../src/main/java/org/jooq/impl/RowImpl9.java | 10 ++ .../src/main/java/org/jooq/impl/RowImplN.java | 10 ++ .../java/org/jooq/impl/RowIsDistinctFrom.java | 107 +++++++++++------- 47 files changed, 616 insertions(+), 43 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/Row1.java b/jOOQ/src/main/java/org/jooq/Row1.java index 39a8979b28..291aeda43b 100644 --- a/jOOQ/src/main/java/org/jooq/Row1.java +++ b/jOOQ/src/main/java/org/jooq/Row1.java @@ -477,6 +477,13 @@ public interface Row1 extends Row { @Support Condition isDistinctFrom(Field t1); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -505,6 +512,13 @@ public interface Row1 extends Row { @Support Condition isNotDistinctFrom(Field t1); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row10.java b/jOOQ/src/main/java/org/jooq/Row10.java index 7098670050..bcc5a48dfd 100644 --- a/jOOQ/src/main/java/org/jooq/Row10.java +++ b/jOOQ/src/main/java/org/jooq/Row10.java @@ -522,6 +522,13 @@ public interface Row10 extends Row { @Support Condition isDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -550,6 +557,13 @@ public interface Row10 extends Row { @Support Condition isNotDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row11.java b/jOOQ/src/main/java/org/jooq/Row11.java index 97c9ffd292..e09c87ea50 100644 --- a/jOOQ/src/main/java/org/jooq/Row11.java +++ b/jOOQ/src/main/java/org/jooq/Row11.java @@ -527,6 +527,13 @@ public interface Row11 extends Row @Support Condition isDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -555,6 +562,13 @@ public interface Row11 extends Row @Support Condition isNotDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row12.java b/jOOQ/src/main/java/org/jooq/Row12.java index b3c30e7571..f67ec868d4 100644 --- a/jOOQ/src/main/java/org/jooq/Row12.java +++ b/jOOQ/src/main/java/org/jooq/Row12.java @@ -532,6 +532,13 @@ public interface Row12 extend @Support Condition isDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -560,6 +567,13 @@ public interface Row12 extend @Support Condition isNotDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row13.java b/jOOQ/src/main/java/org/jooq/Row13.java index 3dc643e1df..89f7b711f1 100644 --- a/jOOQ/src/main/java/org/jooq/Row13.java +++ b/jOOQ/src/main/java/org/jooq/Row13.java @@ -537,6 +537,13 @@ public interface Row13 e @Support Condition isDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -565,6 +572,13 @@ public interface Row13 e @Support Condition isNotDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row14.java b/jOOQ/src/main/java/org/jooq/Row14.java index 1b5b914622..b7995ea9f6 100644 --- a/jOOQ/src/main/java/org/jooq/Row14.java +++ b/jOOQ/src/main/java/org/jooq/Row14.java @@ -542,6 +542,13 @@ public interface Row14 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -570,6 +577,13 @@ public interface Row14 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row15.java b/jOOQ/src/main/java/org/jooq/Row15.java index cbf58bc9aa..ebcc51ecfc 100644 --- a/jOOQ/src/main/java/org/jooq/Row15.java +++ b/jOOQ/src/main/java/org/jooq/Row15.java @@ -547,6 +547,13 @@ public interface Row15 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -575,6 +582,13 @@ public interface Row15 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row16.java b/jOOQ/src/main/java/org/jooq/Row16.java index ca824afe16..4d06ec956a 100644 --- a/jOOQ/src/main/java/org/jooq/Row16.java +++ b/jOOQ/src/main/java/org/jooq/Row16.java @@ -552,6 +552,13 @@ public interface Row16 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -580,6 +587,13 @@ public interface Row16 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row17.java b/jOOQ/src/main/java/org/jooq/Row17.java index bbe4ea3180..115d692307 100644 --- a/jOOQ/src/main/java/org/jooq/Row17.java +++ b/jOOQ/src/main/java/org/jooq/Row17.java @@ -557,6 +557,13 @@ public interface Row17 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16, Field t17); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -585,6 +592,13 @@ public interface Row17 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16, Field t17); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row18.java b/jOOQ/src/main/java/org/jooq/Row18.java index f07d1bb215..118cdaafd1 100644 --- a/jOOQ/src/main/java/org/jooq/Row18.java +++ b/jOOQ/src/main/java/org/jooq/Row18.java @@ -562,6 +562,13 @@ public interface Row18 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16, Field t17, Field t18); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -590,6 +597,13 @@ public interface Row18 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16, Field t17, Field t18); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row19.java b/jOOQ/src/main/java/org/jooq/Row19.java index 331094dd33..60d5f97b86 100644 --- a/jOOQ/src/main/java/org/jooq/Row19.java +++ b/jOOQ/src/main/java/org/jooq/Row19.java @@ -567,6 +567,13 @@ public interface Row19 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16, Field t17, Field t18, Field t19); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -595,6 +602,13 @@ public interface Row19 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16, Field t17, Field t18, Field t19); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row2.java b/jOOQ/src/main/java/org/jooq/Row2.java index 3dfa296879..34a941d5fc 100644 --- a/jOOQ/src/main/java/org/jooq/Row2.java +++ b/jOOQ/src/main/java/org/jooq/Row2.java @@ -482,6 +482,13 @@ public interface Row2 extends Row { @Support Condition isDistinctFrom(Field t1, Field t2); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -510,6 +517,13 @@ public interface Row2 extends Row { @Support Condition isNotDistinctFrom(Field t1, Field t2); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row20.java b/jOOQ/src/main/java/org/jooq/Row20.java index 196bb1f36f..0796e17c47 100644 --- a/jOOQ/src/main/java/org/jooq/Row20.java +++ b/jOOQ/src/main/java/org/jooq/Row20.java @@ -572,6 +572,13 @@ public interface Row20 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16, Field t17, Field t18, Field t19, Field t20); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -600,6 +607,13 @@ public interface Row20 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16, Field t17, Field t18, Field t19, Field t20); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row21.java b/jOOQ/src/main/java/org/jooq/Row21.java index 61ceb12705..7f64fce0f7 100644 --- a/jOOQ/src/main/java/org/jooq/Row21.java +++ b/jOOQ/src/main/java/org/jooq/Row21.java @@ -577,6 +577,13 @@ public interface Row21 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16, Field t17, Field t18, Field t19, Field t20, Field t21); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -605,6 +612,13 @@ public interface Row21 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16, Field t17, Field t18, Field t19, Field t20, Field t21); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row22.java b/jOOQ/src/main/java/org/jooq/Row22.java index c36c941c6b..c9b0d1a156 100644 --- a/jOOQ/src/main/java/org/jooq/Row22.java +++ b/jOOQ/src/main/java/org/jooq/Row22.java @@ -582,6 +582,13 @@ public interface Row22 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16, Field t17, Field t18, Field t19, Field t20, Field t21, Field t22); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -610,6 +617,13 @@ public interface Row22 t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9, Field t10, Field t11, Field t12, Field t13, Field t14, Field t15, Field t16, Field t17, Field t18, Field t19, Field t20, Field t21, Field t22); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row3.java b/jOOQ/src/main/java/org/jooq/Row3.java index a8392fc065..b4e6554184 100644 --- a/jOOQ/src/main/java/org/jooq/Row3.java +++ b/jOOQ/src/main/java/org/jooq/Row3.java @@ -487,6 +487,13 @@ public interface Row3 extends Row { @Support Condition isDistinctFrom(Field t1, Field t2, Field t3); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -515,6 +522,13 @@ public interface Row3 extends Row { @Support Condition isNotDistinctFrom(Field t1, Field t2, Field t3); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row4.java b/jOOQ/src/main/java/org/jooq/Row4.java index 36418fa473..37bac656bf 100644 --- a/jOOQ/src/main/java/org/jooq/Row4.java +++ b/jOOQ/src/main/java/org/jooq/Row4.java @@ -492,6 +492,13 @@ public interface Row4 extends Row { @Support Condition isDistinctFrom(Field t1, Field t2, Field t3, Field t4); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -520,6 +527,13 @@ public interface Row4 extends Row { @Support Condition isNotDistinctFrom(Field t1, Field t2, Field t3, Field t4); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row5.java b/jOOQ/src/main/java/org/jooq/Row5.java index e52c8f7b2d..914de67eca 100644 --- a/jOOQ/src/main/java/org/jooq/Row5.java +++ b/jOOQ/src/main/java/org/jooq/Row5.java @@ -497,6 +497,13 @@ public interface Row5 extends Row { @Support Condition isDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -525,6 +532,13 @@ public interface Row5 extends Row { @Support Condition isNotDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row6.java b/jOOQ/src/main/java/org/jooq/Row6.java index 8f9b4a5ef5..646bb6ae13 100644 --- a/jOOQ/src/main/java/org/jooq/Row6.java +++ b/jOOQ/src/main/java/org/jooq/Row6.java @@ -502,6 +502,13 @@ public interface Row6 extends Row { @Support Condition isDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -530,6 +537,13 @@ public interface Row6 extends Row { @Support Condition isNotDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row7.java b/jOOQ/src/main/java/org/jooq/Row7.java index 711c5a075a..01d032cb99 100644 --- a/jOOQ/src/main/java/org/jooq/Row7.java +++ b/jOOQ/src/main/java/org/jooq/Row7.java @@ -507,6 +507,13 @@ public interface Row7 extends Row { @Support Condition isDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -535,6 +542,13 @@ public interface Row7 extends Row { @Support Condition isNotDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row8.java b/jOOQ/src/main/java/org/jooq/Row8.java index 737f0a4c05..fd6855c76a 100644 --- a/jOOQ/src/main/java/org/jooq/Row8.java +++ b/jOOQ/src/main/java/org/jooq/Row8.java @@ -512,6 +512,13 @@ public interface Row8 extends Row { @Support Condition isDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -540,6 +547,13 @@ public interface Row8 extends Row { @Support Condition isNotDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/Row9.java b/jOOQ/src/main/java/org/jooq/Row9.java index 573b538a04..80d46fe65e 100644 --- a/jOOQ/src/main/java/org/jooq/Row9.java +++ b/jOOQ/src/main/java/org/jooq/Row9.java @@ -517,6 +517,13 @@ public interface Row9 extends Row { @Support Condition isDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select> select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -545,6 +552,13 @@ public interface Row9 extends Row { @Support Condition isNotDistinctFrom(Field t1, Field t2, Field t3, Field t4, Field t5, Field t6, Field t7, Field t8, Field t9); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select> select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/RowN.java b/jOOQ/src/main/java/org/jooq/RowN.java index 0064c9ec59..9be2a09e11 100644 --- a/jOOQ/src/main/java/org/jooq/RowN.java +++ b/jOOQ/src/main/java/org/jooq/RowN.java @@ -468,6 +468,13 @@ public interface RowN extends Row { @Support Condition isDistinctFrom(Field... values); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isDistinctFrom(Select select); + /** * Compare this row value expression with another row value expression for * distinctness. @@ -496,6 +503,13 @@ public interface RowN extends Row { @Support Condition isNotDistinctFrom(Field... values); + /** + * Compare this row value expression with another row value expression for + * distinctness. + */ + @Support + Condition isNotDistinctFrom(Select select); + // ------------------------------------------------------------------------ // Ordering comparison predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl1.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl1.java index c11eec159c..5462027946 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl1.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl1.java @@ -510,6 +510,11 @@ final class RowImpl1 extends AbstractRow implements Row1 { return isNotDistinctFrom(row(t1)); } + @Override + public final Condition isNotDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row1 row) { return new RowIsDistinctFrom(this, row, false); @@ -530,6 +535,11 @@ final class RowImpl1 extends AbstractRow implements Row1 { return isDistinctFrom(row(t1)); } + @Override + public final Condition isDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl10.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl10.java index 677232b22e..2c81401050 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl10.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl10.java @@ -555,6 +555,11 @@ final class RowImpl10 extends AbstractR return isNotDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10)); } + @Override + public final Condition isNotDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row10 row) { return new RowIsDistinctFrom(this, row, false); @@ -575,6 +580,11 @@ final class RowImpl10 extends AbstractR return isDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10)); } + @Override + public final Condition isDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl11.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl11.java index 4ae575eed5..ff9145ed17 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl11.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl11.java @@ -560,6 +560,11 @@ final class RowImpl11 extends Abst return isNotDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)); } + @Override + public final Condition isNotDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row11 row) { return new RowIsDistinctFrom(this, row, false); @@ -580,6 +585,11 @@ final class RowImpl11 extends Abst return isDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)); } + @Override + public final Condition isDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl12.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl12.java index de0ad267c6..ca46fe5236 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl12.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl12.java @@ -565,6 +565,11 @@ final class RowImpl12 extends return isNotDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12)); } + @Override + public final Condition isNotDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row12 row) { return new RowIsDistinctFrom(this, row, false); @@ -585,6 +590,11 @@ final class RowImpl12 extends return isDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12)); } + @Override + public final Condition isDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl13.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl13.java index 0900b22c62..eafb3392e9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl13.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl13.java @@ -570,6 +570,11 @@ final class RowImpl13 ex return isNotDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13)); } + @Override + public final Condition isNotDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row13 row) { return new RowIsDistinctFrom(this, row, false); @@ -590,6 +595,11 @@ final class RowImpl13 ex return isDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13)); } + @Override + public final Condition isDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl14.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl14.java index 81eac4422f..4014bd2ef0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl14.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl14.java @@ -575,6 +575,11 @@ final class RowImpl14> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row14 row) { return new RowIsDistinctFrom(this, row, false); @@ -595,6 +600,11 @@ final class RowImpl14> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl15.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl15.java index cf27ea876c..94eb64dcea 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl15.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl15.java @@ -580,6 +580,11 @@ final class RowImpl15> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row15 row) { return new RowIsDistinctFrom(this, row, false); @@ -600,6 +605,11 @@ final class RowImpl15> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl16.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl16.java index 073cd6493c..c093b9eb8a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl16.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl16.java @@ -585,6 +585,11 @@ final class RowImpl16> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row16 row) { return new RowIsDistinctFrom(this, row, false); @@ -605,6 +610,11 @@ final class RowImpl16> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl17.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl17.java index 92bd970d68..98c33a619b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl17.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl17.java @@ -590,6 +590,11 @@ final class RowImpl17> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row17 row) { return new RowIsDistinctFrom(this, row, false); @@ -610,6 +615,11 @@ final class RowImpl17> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl18.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl18.java index 852a1d806a..1d8818b2c2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl18.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl18.java @@ -595,6 +595,11 @@ final class RowImpl18> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row18 row) { return new RowIsDistinctFrom(this, row, false); @@ -615,6 +620,11 @@ final class RowImpl18> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl19.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl19.java index 142d6e819c..22560f7207 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl19.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl19.java @@ -600,6 +600,11 @@ final class RowImpl19> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row19 row) { return new RowIsDistinctFrom(this, row, false); @@ -620,6 +625,11 @@ final class RowImpl19> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl2.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl2.java index 2f428b05ff..1597c6f46e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl2.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl2.java @@ -515,6 +515,11 @@ final class RowImpl2 extends AbstractRow implements Row2 { return isNotDistinctFrom(row(t1, t2)); } + @Override + public final Condition isNotDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row2 row) { return new RowIsDistinctFrom(this, row, false); @@ -535,6 +540,11 @@ final class RowImpl2 extends AbstractRow implements Row2 { return isDistinctFrom(row(t1, t2)); } + @Override + public final Condition isDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl20.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl20.java index 859ad5bd58..5a0978038c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl20.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl20.java @@ -605,6 +605,11 @@ final class RowImpl20> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row20 row) { return new RowIsDistinctFrom(this, row, false); @@ -625,6 +630,11 @@ final class RowImpl20> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl21.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl21.java index 318df6e441..ce5695658d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl21.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl21.java @@ -610,6 +610,11 @@ final class RowImpl21> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row21 row) { return new RowIsDistinctFrom(this, row, false); @@ -630,6 +635,11 @@ final class RowImpl21> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl22.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl22.java index 201a58dc96..dbbbc0d4ed 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl22.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl22.java @@ -615,6 +615,11 @@ final class RowImpl22> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row22 row) { return new RowIsDistinctFrom(this, row, false); @@ -635,6 +640,11 @@ final class RowImpl22> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl3.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl3.java index a402020bc8..d4f5b914c2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl3.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl3.java @@ -520,6 +520,11 @@ final class RowImpl3 extends AbstractRow implements Row3 return isNotDistinctFrom(row(t1, t2, t3)); } + @Override + public final Condition isNotDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row3 row) { return new RowIsDistinctFrom(this, row, false); @@ -540,6 +545,11 @@ final class RowImpl3 extends AbstractRow implements Row3 return isDistinctFrom(row(t1, t2, t3)); } + @Override + public final Condition isDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl4.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl4.java index 97654796ab..e47105b3bd 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl4.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl4.java @@ -525,6 +525,11 @@ final class RowImpl4 extends AbstractRow implements Row4> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row4 row) { return new RowIsDistinctFrom(this, row, false); @@ -545,6 +550,11 @@ final class RowImpl4 extends AbstractRow implements Row4> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl5.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl5.java index d5adf175ac..ed13167f21 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl5.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl5.java @@ -530,6 +530,11 @@ final class RowImpl5 extends AbstractRow implements Row5> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row5 row) { return new RowIsDistinctFrom(this, row, false); @@ -550,6 +555,11 @@ final class RowImpl5 extends AbstractRow implements Row5> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl6.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl6.java index e3fb8401da..d4c1732134 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl6.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl6.java @@ -535,6 +535,11 @@ final class RowImpl6 extends AbstractRow implements Row6 return isNotDistinctFrom(row(t1, t2, t3, t4, t5, t6)); } + @Override + public final Condition isNotDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row6 row) { return new RowIsDistinctFrom(this, row, false); @@ -555,6 +560,11 @@ final class RowImpl6 extends AbstractRow implements Row6 return isDistinctFrom(row(t1, t2, t3, t4, t5, t6)); } + @Override + public final Condition isDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl7.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl7.java index 85c04073c8..bc1dff319e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl7.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl7.java @@ -540,6 +540,11 @@ final class RowImpl7 extends AbstractRow implements return isNotDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7)); } + @Override + public final Condition isNotDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row7 row) { return new RowIsDistinctFrom(this, row, false); @@ -560,6 +565,11 @@ final class RowImpl7 extends AbstractRow implements return isDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7)); } + @Override + public final Condition isDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl8.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl8.java index ba060f061c..0f0b856e6c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl8.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl8.java @@ -545,6 +545,11 @@ final class RowImpl8 extends AbstractRow impleme return isNotDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7, t8)); } + @Override + public final Condition isNotDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row8 row) { return new RowIsDistinctFrom(this, row, false); @@ -565,6 +570,11 @@ final class RowImpl8 extends AbstractRow impleme return isDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7, t8)); } + @Override + public final Condition isDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImpl9.java b/jOOQ/src/main/java/org/jooq/impl/RowImpl9.java index f9d50a60f0..7e300d2e1f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImpl9.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImpl9.java @@ -550,6 +550,11 @@ final class RowImpl9 extends AbstractRow imp return isNotDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7, t8, t9)); } + @Override + public final Condition isNotDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(Row9 row) { return new RowIsDistinctFrom(this, row, false); @@ -570,6 +575,11 @@ final class RowImpl9 extends AbstractRow imp return isDistinctFrom(row(t1, t2, t3, t4, t5, t6, t7, t8, t9)); } + @Override + public final Condition isDistinctFrom(Select> select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowImplN.java b/jOOQ/src/main/java/org/jooq/impl/RowImplN.java index a3a8c46781..b2072858f4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowImplN.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowImplN.java @@ -507,6 +507,11 @@ final class RowImplN extends AbstractRow implements RowN { return isNotDistinctFrom(row(values)); } + @Override + public final Condition isNotDistinctFrom(Select select) { + return new RowIsDistinctFrom(this, select, true); + } + @Override public final Condition isDistinctFrom(RowN row) { return new RowIsDistinctFrom(this, row, false); @@ -527,6 +532,11 @@ final class RowImplN extends AbstractRow implements RowN { return isDistinctFrom(row(values)); } + @Override + public final Condition isDistinctFrom(Select select) { + return new RowIsDistinctFrom(this, select, false); + } + // ------------------------------------------------------------------------ // [NOT] IN predicates // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/RowIsDistinctFrom.java b/jOOQ/src/main/java/org/jooq/impl/RowIsDistinctFrom.java index 6542e91fa0..b42b68407d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowIsDistinctFrom.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowIsDistinctFrom.java @@ -58,19 +58,20 @@ import static org.jooq.SQLDialect.SQLITE; // ... // ... // ... -import static org.jooq.impl.DSL.condition; import static org.jooq.impl.DSL.exists; import static org.jooq.impl.DSL.notExists; import static org.jooq.impl.DSL.select; +import static org.jooq.impl.Keywords.K_IS; +import static org.jooq.impl.Keywords.K_NOT; import java.util.Set; import org.jooq.Clause; -import org.jooq.Configuration; import org.jooq.Context; -import org.jooq.QueryPartInternal; +import org.jooq.Record; import org.jooq.Row; import org.jooq.SQLDialect; +import org.jooq.Select; /** * @author Lukas Eder @@ -85,16 +86,21 @@ final class RowIsDistinctFrom extends AbstractCondition { private static final Set SUPPORT_DISTINCT_WITH_ARROW = SQLDialect.supportedBy(MARIADB, MYSQL); private final Row lhs; - private final Row rhs; + private final Row rhsRow; + private final Select rhsSelect; private final boolean not; - private transient QueryPartInternal mySQLCondition; - private transient QueryPartInternal sqliteCondition; - private transient QueryPartInternal compareCondition; - RowIsDistinctFrom(Row lhs, Row rhs, boolean not) { this.lhs = lhs; - this.rhs = rhs; + this.rhsRow = rhs; + this.rhsSelect = null; + this.not = not; + } + + RowIsDistinctFrom(Row lhs, Select rhs, boolean not) { + this.lhs = lhs; + this.rhsRow = null; + this.rhsSelect = rhs; this.not = not; } @@ -105,48 +111,58 @@ final class RowIsDistinctFrom extends AbstractCondition { @Override public final void accept(Context ctx) { - ctx.visit(delegate(ctx.configuration())); - } - - @Override // Avoid AbstractCondition implementation - public final Clause[] clauses(Context ctx) { - return null; - } - - /** - * Get a delegate CompareCondition, in case the context - * {@link SQLDialect} natively supports the IS DISTINCT FROM - * clause. - */ - private final QueryPartInternal delegate(Configuration configuration) { // [#3511] These dialects need to emulate the IS DISTINCT FROM predicate, // optimally using INTERSECT... // [#7222] [#7224] Make sure the columns are aliased - if (EMULATE_DISTINCT_PREDICATE.contains(configuration.family())) { - return not - ? (QueryPartInternal) exists(select(lhs.fields()).intersect(select(rhs.fields()))) - : (QueryPartInternal) notExists(select(lhs.fields()).intersect(select(rhs.fields()))); + if (EMULATE_DISTINCT_PREDICATE.contains(ctx.family())) { + Select intersect = select(lhs.fields()).intersect(rhsSelect != null ? rhsSelect : select(rhsRow.fields())); + ctx.visit(not ? exists(intersect) : notExists(intersect)); } // MySQL knows the <=> operator - else if (SUPPORT_DISTINCT_WITH_ARROW.contains(configuration.family())) { - if (mySQLCondition == null) - mySQLCondition = (QueryPartInternal) (not - ? condition("{0} <=> {1}", lhs, rhs) - : condition("{not}({0} <=> {1})", lhs, rhs)); + else if (SUPPORT_DISTINCT_WITH_ARROW.contains(ctx.family())) { + if (!not) + ctx.visit(K_NOT).sql('('); - return mySQLCondition; + ctx.visit(lhs).sql(" <=> "); + + if (rhsRow != null) + ctx.visit(rhsRow); + else + ctx.sql('(') + .subquery(true) + .formatIndentStart() + .formatNewLine() + .visit(rhsSelect) + .formatIndentEnd() + .formatNewLine() + .subquery(false) + .sql(')'); + + if (!not) + ctx.sql(')'); } // SQLite knows the IS / IS NOT predicate - else if (SQLITE == configuration.family()) { - if (sqliteCondition == null) - sqliteCondition = (QueryPartInternal) (not - ? condition("{0} {is} {1}", lhs, rhs) - : condition("{0} {is not} {1}", lhs, rhs)); + else if (SQLITE == ctx.family()) { + ctx.visit(lhs).sql(' ').visit(K_IS).sql(' '); - return sqliteCondition; + if (!not) + ctx.visit(K_NOT).sql(' '); + + if (rhsRow != null) + ctx.visit(rhsRow); + else + ctx.sql('(') + .subquery(true) + .formatIndentStart() + .formatNewLine() + .visit(rhsSelect) + .formatIndentEnd() + .formatNewLine() + .subquery(false) + .sql(')'); } @@ -166,10 +182,15 @@ final class RowIsDistinctFrom extends AbstractCondition { // These dialects natively support the IS DISTINCT FROM predicate: // H2, Postgres else { - if (compareCondition == null) - compareCondition = new RowCondition(lhs, rhs, not ? IS_NOT_DISTINCT_FROM : IS_DISTINCT_FROM); - - return compareCondition; + ctx.visit(rhsRow != null + ? new RowCondition(lhs, rhsRow, not ? IS_NOT_DISTINCT_FROM : IS_DISTINCT_FROM) + : new RowSubqueryCondition(lhs, rhsSelect, not ? IS_NOT_DISTINCT_FROM : IS_DISTINCT_FROM) + ); } } + + @Override // Avoid AbstractCondition implementation + public final Clause[] clauses(Context ctx) { + return null; + } }