From 5560943bfc102994c6364f1efc99f8041e4708cc Mon Sep 17 00:00:00 2001 From: Knut Wannheden Date: Fri, 1 Nov 2019 08:47:23 +0100 Subject: [PATCH] [jOOQ/jOOQ#9482] Add [pro] tag that went missing --- .../java/org/jooq/impl/FlashbackTable.java | 279 +++++++++--------- 1 file changed, 140 insertions(+), 139 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/FlashbackTable.java b/jOOQ/src/main/java/org/jooq/impl/FlashbackTable.java index 83a22942c5..ed882cf3a4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FlashbackTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/FlashbackTable.java @@ -37,166 +37,167 @@ */ package org.jooq.impl; -import static org.jooq.impl.DSL.val; -import static org.jooq.impl.Keywords.K_AND; -import static org.jooq.impl.Keywords.K_AS_OF; -import static org.jooq.impl.Keywords.K_MAXVALUE; -import static org.jooq.impl.Keywords.K_MINVALUE; -import static org.jooq.impl.Keywords.K_SCN; -import static org.jooq.impl.Keywords.K_TIMESTAMP; -import static org.jooq.impl.Keywords.K_VERSIONS_BETWEEN; -import static org.jooq.impl.Names.N_FLASHBACK; -import org.jooq.Context; -import org.jooq.Field; -import org.jooq.Keyword; -import org.jooq.Name; -// ... -import org.jooq.QueryPart; -import org.jooq.Record; -import org.jooq.Table; -// ... -/** - * A flashback query clause implementation. - * - * @author Lukas Eder - */ -@Pro -final class FlashbackTable -extends AbstractTable -implements VersionsBetweenAndStep { - /** - * Generated UID - */ - private static final long serialVersionUID = -7918219502110473521L; - private final Table table; - private final FlashbackType type; - private final Field asOf; - private final QueryPart minvalue; - private QueryPart maxvalue; - FlashbackTable(Table table, Field asOf, QueryPart minvalue, FlashbackType type) { - super(table.getOptions(), N_FLASHBACK); - this.table = table; - this.asOf = asOf; - this.minvalue = minvalue != null ? minvalue : K_MINVALUE; - this.type = type; - } - private FlashbackTable(Table table, FlashbackTable o) { - this(table, o.asOf, o.minvalue, o.type); - this.maxvalue = o.maxvalue; - } - // ------------------------------------------------------------------------ - // XXX: Flashback API - // ------------------------------------------------------------------------ - @Override - public final Table and(T value) { - return and(val(value)); - } - @Override - public final Table and(Field field) { - maxvalue = field; - return this; - } - @Override - public final Table andMaxvalue() { - maxvalue = K_MAXVALUE; - return this; - } - // ------------------------------------------------------------------------ - // XXX: Table API - // ------------------------------------------------------------------------ - @Override - public final Class getRecordType() { - return table.getRecordType(); - } - @Override - public final void accept(Context ctx) { - // [#6303] jOOQ allows for the syntactically incorrect construction of aliased flashback table expressions - Table aliased = Tools.aliased(table); - if (aliased != null) { - Alias alias = Tools.alias(table); - ctx.visit(new Alias<>( - new FlashbackTable<>(aliased, this), - this, alias.alias, alias.fieldAliases, alias.wrapInParentheses - )); - } - else { - ctx.visit(table); - if (asOf != null) { - ctx.sql(' ') - .visit(K_AS_OF) - .sql(' ') - .visit(type.keyword()) - .sql(' ') - .visit(asOf); - } - else { - ctx.sql(' ') - .visit(K_VERSIONS_BETWEEN) - .sql(' ') - .visit(type.keyword()) - .sql(' ') - .visit(minvalue) - .sql(' ') - .visit(K_AND) - .sql(' ') - .visit(maxvalue); - } - } - } - @Override - public final boolean declaresTables() { - return true; - } - @Override - public final Table as(Name alias) { - return new TableAlias<>(this, alias, true); - } - @Override - public final Table as(Name alias, Name... fieldAliases) { - return new TableAlias<>(this, alias, fieldAliases, true); - } - @Override - final Fields fields0() { - return new Fields<>(table.fields()); - } - /** - * The flashback query clause type - */ - @Pro - enum FlashbackType { - SCN, TIMESTAMP; - Keyword keyword() { - if (this == SCN) - return K_SCN; - else if (this == TIMESTAMP) - return K_TIMESTAMP; - else - throw new IllegalStateException("Unsupported FlashbackType: " + this); - } - } -} -/* [/pro] */ \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +