[#6079] Add JoinType.qualified()
This commit is contained in:
parent
fc35eb7f54
commit
e751f3b2f1
@ -42,7 +42,6 @@ import static org.jooq.SQLDialect.MYSQL;
|
||||
|
||||
import org.jooq.impl.DSL;
|
||||
|
||||
|
||||
/**
|
||||
* The type of join
|
||||
*
|
||||
@ -54,88 +53,90 @@ public enum JoinType {
|
||||
* <code>INNER JOIN</code> two tables.
|
||||
*/
|
||||
@Support
|
||||
JOIN("join"),
|
||||
JOIN("join", true),
|
||||
|
||||
/**
|
||||
* <code>CROSS JOIN</code> two tables.
|
||||
*/
|
||||
@Support
|
||||
CROSS_JOIN("cross join"),
|
||||
CROSS_JOIN("cross join", false),
|
||||
|
||||
/**
|
||||
* <code>LEFT OUTER JOIN</code> two tables.
|
||||
*/
|
||||
@Support
|
||||
LEFT_OUTER_JOIN("left outer join"),
|
||||
LEFT_OUTER_JOIN("left outer join", true),
|
||||
|
||||
/**
|
||||
* <code>RIGHT OUTER JOIN</code> two tables.
|
||||
*/
|
||||
@Support
|
||||
RIGHT_OUTER_JOIN("right outer join"),
|
||||
RIGHT_OUTER_JOIN("right outer join", true),
|
||||
|
||||
/**
|
||||
* <code>FULL OUTER JOIN</code> two tables.
|
||||
*/
|
||||
@Support
|
||||
FULL_OUTER_JOIN("full outer join"),
|
||||
FULL_OUTER_JOIN("full outer join", true),
|
||||
|
||||
/**
|
||||
* <code>NATURAL INNER JOIN</code> two tables.
|
||||
*/
|
||||
@Support
|
||||
NATURAL_JOIN("natural join"),
|
||||
NATURAL_JOIN("natural join", false),
|
||||
|
||||
/**
|
||||
* <code>NATURAL LEFT OUTER JOIN</code> two tables.
|
||||
*/
|
||||
@Support
|
||||
NATURAL_LEFT_OUTER_JOIN("natural left outer join"),
|
||||
NATURAL_LEFT_OUTER_JOIN("natural left outer join", false),
|
||||
|
||||
/**
|
||||
* <code>NATURAL RIGHT OUTER JOIN</code> two tables.
|
||||
*/
|
||||
@Support
|
||||
NATURAL_RIGHT_OUTER_JOIN("natural right outer join"),
|
||||
NATURAL_RIGHT_OUTER_JOIN("natural right outer join", false),
|
||||
|
||||
/**
|
||||
* <code>CROSS APPLY</code> two tables.
|
||||
*/
|
||||
@Support({})
|
||||
CROSS_APPLY("cross apply"),
|
||||
CROSS_APPLY("cross apply", false),
|
||||
|
||||
/**
|
||||
* <code>OUTER APPLY</code> two tables.
|
||||
*/
|
||||
@Support({})
|
||||
OUTER_APPLY("outer apply"),
|
||||
OUTER_APPLY("outer apply", false),
|
||||
|
||||
/**
|
||||
* <code>STRAIGHT_JOIN</code> two tables.
|
||||
*/
|
||||
@Support({ MYSQL })
|
||||
STRAIGHT_JOIN("straight_join"),
|
||||
STRAIGHT_JOIN("straight_join", true),
|
||||
|
||||
/**
|
||||
* <code>LEFT SEMI JOIN</code> two tables.
|
||||
*/
|
||||
@Support
|
||||
LEFT_SEMI_JOIN("left semi join"),
|
||||
LEFT_SEMI_JOIN("left semi join", true),
|
||||
|
||||
/**
|
||||
* <code>LEFT ANTI JOIN</code> two tables.
|
||||
*/
|
||||
@Support
|
||||
LEFT_ANTI_JOIN("left anti join")
|
||||
LEFT_ANTI_JOIN("left anti join", true)
|
||||
|
||||
;
|
||||
|
||||
private final String sql;
|
||||
private final Keyword keyword;
|
||||
private final boolean qualified;
|
||||
|
||||
private JoinType(String sql) {
|
||||
private JoinType(String sql, boolean qualified) {
|
||||
this.sql = sql;
|
||||
this.keyword = DSL.keyword(sql);
|
||||
this.qualified = qualified;
|
||||
}
|
||||
|
||||
public final String toSQL() {
|
||||
@ -145,4 +146,12 @@ public enum JoinType {
|
||||
public final Keyword toKeyword() {
|
||||
return keyword;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether a <code>JOIN</code> operation of this type must be qualified with
|
||||
* <code>ON</code> or <code>USING</code>.
|
||||
*/
|
||||
public final boolean qualified() {
|
||||
return qualified;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user