diff --git a/jOOQ/src/main/java/org/jooq/impl/ArrayTableSimulation.java b/jOOQ/src/main/java/org/jooq/impl/ArrayTableSimulation.java
deleted file mode 100644
index e60e263901..0000000000
--- a/jOOQ/src/main/java/org/jooq/impl/ArrayTableSimulation.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/**
- * Copyright (c) 2009-2015, Data Geekery GmbH (http://www.datageekery.com)
- * All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Other licenses:
- * -----------------------------------------------------------------------------
- * Commercial licenses for this work are available. These replace the above
- * ASL 2.0 and offer limited warranties, support, maintenance, and commercial
- * database integrations.
- *
- * For more information, please visit: http://www.jooq.org/licenses
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-package org.jooq.impl;
-
-import static org.jooq.impl.DSL.falseCondition;
-import static org.jooq.impl.DSL.name;
-import static org.jooq.impl.DSL.one;
-import static org.jooq.impl.DSL.using;
-
-import org.jooq.Configuration;
-import org.jooq.Context;
-import org.jooq.Field;
-import org.jooq.Record;
-import org.jooq.Select;
-import org.jooq.Table;
-
-/**
- * Essentially, this is the same as ArrayTable, except that it simulates
- * unnested arrays using UNION ALL
- *
- * @author Lukas Eder
- */
-class ArrayTableSimulation extends AbstractTable {
-
- /**
- * Generated UID
- */
- private static final long serialVersionUID = 2392515064450536343L;
-
- private final Object[] array;
- private final Fields field;
- private final String alias;
- private final String fieldAlias;
-
- private transient Table table;
-
- ArrayTableSimulation(Object[] array) {
- this(array, "array_table", null);
- }
-
- ArrayTableSimulation(Object[] array, String alias) {
- this(array, alias, null);
- }
-
- ArrayTableSimulation(Object[] array, String alias, String fieldAlias) {
- super(alias);
-
- this.array = array;
- this.alias = alias;
- this.fieldAlias = fieldAlias == null ? "COLUMN_VALUE" : fieldAlias;
- this.field = new Fields(DSL.field(name(alias, this.fieldAlias), DSL.getDataType(array.getClass().getComponentType())));
- }
-
- @Override
- public final Class extends Record> getRecordType() {
- return RecordImpl.class;
- }
-
- @Override
- public final Table as(String as) {
- return new ArrayTableSimulation(array, as);
- }
-
- @Override
- public final Table as(String as, String... fieldAliases) {
- if (fieldAliases == null) {
- return new ArrayTableSimulation(array, as);
- }
- else if (fieldAliases.length == 1) {
- return new ArrayTableSimulation(array, as, fieldAliases[0]);
- }
-
- throw new IllegalArgumentException("Array table simulations can only have a single field alias");
- }
-
- @Override
- public final boolean declaresTables() {
-
- // [#1055] Always true, because unnested tables are always aliased.
- // This is particularly important for simulated unnested arrays
- return true;
- }
-
- @Override
- public final void accept(Context> ctx) {
- ctx.visit(table(ctx.configuration()));
- }
-
- @Override
- final Fields fields0() {
- return field;
- }
-
- private final Table table(Configuration configuration) {
- if (table == null) {
- Select select = null;
-
- for (Object element : array) {
-
- // [#1081] Be sure to get the correct cast type also for null
- Field> val = DSL.val(element, field.fields[0].getDataType());
- Select subselect = using(configuration).select(val.as("COLUMN_VALUE")).select();
-
- if (select == null) {
- select = subselect;
- }
- else {
- select = select.unionAll(subselect);
- }
- }
-
- // Empty arrays should result in empty tables
- if (select == null) {
- select = using(configuration).select(one().as("COLUMN_VALUE")).select().where(falseCondition());
- }
-
- table = select.asTable(alias);
- }
-
- return table;
- }
-}
diff --git a/jOOQ/src/main/java/org/jooq/impl/DeleteImpl.java b/jOOQ/src/main/java/org/jooq/impl/DeleteImpl.java
index 36c1728370..1d7f09f3da 100644
--- a/jOOQ/src/main/java/org/jooq/impl/DeleteImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/DeleteImpl.java
@@ -270,8 +270,10 @@ class DeleteImpl
return getDelegate().getReturnedRecord();
}
+ /* [java-8] */
@Override
public final Optional fetchOptional() {
return Optional.ofNullable(fetchOne());
}
+ /* [/java-8] */
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java
index 9bf52f92e4..d5865ca427 100644
--- a/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java
@@ -665,8 +665,10 @@ class InsertImpl fetchOptional() {
return Optional.ofNullable(fetchOne());
}
+ /* [/java-8] */
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectImpl.java
index fb0b11e434..00076f28e3 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SelectImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SelectImpl.java
@@ -2583,6 +2583,7 @@ class SelectImpl Optional fetchOptional(Field field) {
return getDelegate().fetchOptional(field);
@@ -2672,6 +2673,7 @@ class SelectImpl Optional fetchOptionalInto(Table table) {
return getDelegate().fetchOptionalInto(table);
}
+ /* [/java-8] */
@Override
public final T fetchAny(Field field) {
diff --git a/jOOQ/src/main/java/org/jooq/impl/UpdateImpl.java b/jOOQ/src/main/java/org/jooq/impl/UpdateImpl.java
index 98628f3626..58ae4d2e4f 100644
--- a/jOOQ/src/main/java/org/jooq/impl/UpdateImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/UpdateImpl.java
@@ -699,8 +699,10 @@ final class UpdateImpl
return getDelegate().getReturnedRecord();
}
+ /* [java-8] */
@Override
public final Optional fetchOptional() {
return Optional.ofNullable(fetchOne());
}
+ /* [/java-8] */
}