From 3605697b8d0c74de6b2fbafc676dfc78cd74d11c Mon Sep 17 00:00:00 2001 From: lukaseder Date: Wed, 3 May 2017 11:20:43 +0200 Subject: [PATCH] [#6094] Resolved type hierarchy inconsistency (jOOQ Pro only) --- jOOQ/src/main/java/org/jooq/TableOptionalOnStep.java | 2 +- jOOQ/src/main/java/org/jooq/impl/AbstractTable.java | 6 ++++-- jOOQ/src/main/java/org/jooq/impl/JoinTable.java | 2 ++ jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 2 +- jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/TableOptionalOnStep.java b/jOOQ/src/main/java/org/jooq/TableOptionalOnStep.java index eb6add3460..20a6441014 100644 --- a/jOOQ/src/main/java/org/jooq/TableOptionalOnStep.java +++ b/jOOQ/src/main/java/org/jooq/TableOptionalOnStep.java @@ -42,6 +42,6 @@ package org.jooq; * * @author Lukas Eder */ -public interface TableOptionalOnStep extends TablePartitionByStep, Table { +public interface TableOptionalOnStep extends TableOnStep, Table { } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java b/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java index 566931f807..2df11c8451 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java @@ -971,9 +971,10 @@ abstract class AbstractTable extends AbstractQueryPart impleme return leftOuterJoin(table(name)); } + @SuppressWarnings("unchecked") @Override public final TablePartitionByStep leftOuterJoin(TableLike table) { - return join(table, LEFT_OUTER_JOIN); + return (TablePartitionByStep) join(table, LEFT_OUTER_JOIN); } @Override @@ -1031,9 +1032,10 @@ abstract class AbstractTable extends AbstractQueryPart impleme return rightOuterJoin(table(name)); } + @SuppressWarnings("unchecked") @Override public final TablePartitionByStep rightOuterJoin(TableLike table) { - return join(table, RIGHT_OUTER_JOIN); + return (TablePartitionByStep) join(table, RIGHT_OUTER_JOIN); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/JoinTable.java b/jOOQ/src/main/java/org/jooq/impl/JoinTable.java index 896d9a72bf..db6b173c14 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JoinTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/JoinTable.java @@ -113,6 +113,7 @@ import org.jooq.TableLike; import org.jooq.TableOnConditionStep; import org.jooq.TableOptionalOnStep; import org.jooq.TableOuterJoinStep; +import org.jooq.TablePartitionByStep; import org.jooq.exception.DataAccessException; /** @@ -124,6 +125,7 @@ final class JoinTable extends AbstractTable implements TableOuterJoinStep, TableOptionalOnStep, + TablePartitionByStep, TableOnConditionStep { /** diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 9639d3856d..87d89d5f53 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -2284,7 +2284,7 @@ class ParserImpl implements Parser { TableOptionalOnStep s0; TablePartitionByStep s1; TableOnStep s2; - s2 = s1 = s0 = left.join(right, joinType); + s2 = s1 = (TablePartitionByStep) (s0 = left.join(right, joinType)); switch (joinType) { case LEFT_OUTER_JOIN: diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index 297f735c48..db21ba9629 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -2126,7 +2126,7 @@ final class SelectQueryImpl extends AbstractResultQuery imp case LEFT_OUTER_JOIN: case RIGHT_OUTER_JOIN: { - TablePartitionByStep p = getFrom().get(index).join(table, type); + TablePartitionByStep p = (TablePartitionByStep) getFrom().get(index).join(table, type); TableOnStep o = p;