From 345c44f656f2ef70a7e131ab42dd4898642558d9 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Sat, 9 Feb 2013 11:26:18 +0100 Subject: [PATCH] [#2178] Improve FieldList. Avoid creating excessive array lists, where simple (immutable) Field[] are sufficient - Removed unnecessary FieldList --- .../src/main/java/org/jooq/impl/DivideBy.java | 14 +++-- .../src/main/java/org/jooq/impl/Executor.java | 6 +- .../main/java/org/jooq/impl/Expression.java | 12 ++-- jOOQ/src/main/java/org/jooq/impl/Factory.java | 11 ++-- .../main/java/org/jooq/impl/FieldList.java | 61 ------------------- jOOQ/src/main/java/org/jooq/impl/Fields.java | 26 +++++--- .../src/main/java/org/jooq/impl/Function.java | 7 +-- .../java/org/jooq/impl/InsertQueryImpl.java | 16 ++--- .../main/java/org/jooq/impl/JoinTable.java | 18 +++--- .../main/java/org/jooq/impl/MergeImpl.java | 36 +++++------ jOOQ/src/main/java/org/jooq/impl/Pivot.java | 10 +-- .../java/org/jooq/impl/ReferenceImpl.java | 4 +- .../main/java/org/jooq/impl/ResultImpl.java | 14 ++--- jOOQ/src/main/java/org/jooq/impl/Rollup.java | 3 +- .../java/org/jooq/impl/SelectQueryImpl.java | 4 +- jOOQ/src/main/java/org/jooq/impl/UDTImpl.java | 11 ++-- 16 files changed, 99 insertions(+), 154 deletions(-) delete mode 100644 jOOQ/src/main/java/org/jooq/impl/FieldList.java diff --git a/jOOQ/src/main/java/org/jooq/impl/DivideBy.java b/jOOQ/src/main/java/org/jooq/impl/DivideBy.java index 6a1dbea9f1..7f73a607cf 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DivideBy.java +++ b/jOOQ/src/main/java/org/jooq/impl/DivideBy.java @@ -41,8 +41,10 @@ import static org.jooq.impl.Factory.notExists; import static org.jooq.impl.Factory.selectDistinct; import static org.jooq.impl.Factory.selectOne; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.List; import org.jooq.Condition; import org.jooq.DivideByOnConditionStep; @@ -62,17 +64,17 @@ implements DivideByOnStep, DivideByOnConditionStep { - private final Table dividend; - private final Table divisor; - private final ConditionProviderImpl condition; - private final FieldList returning; + private final Table dividend; + private final Table divisor; + private final ConditionProviderImpl condition; + private final QueryPartList> returning; DivideBy(Table dividend, Table divisor) { this.dividend = dividend; this.divisor = divisor; this.condition = new ConditionProviderImpl(); - this.returning = new FieldList(); + this.returning = new QueryPartList>(); } // ------------------------------------------------------------------------ @@ -90,7 +92,7 @@ implements */ private final Table table() { ConditionProviderImpl selfJoin = new ConditionProviderImpl(); - FieldList select = new FieldList(); + List> select = new ArrayList>(); Table outer = dividend.as("dividend"); for (Field field : returning) { diff --git a/jOOQ/src/main/java/org/jooq/impl/Executor.java b/jOOQ/src/main/java/org/jooq/impl/Executor.java index fccdd333aa..be53124db8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Executor.java +++ b/jOOQ/src/main/java/org/jooq/impl/Executor.java @@ -1599,12 +1599,12 @@ public class Executor implements Configuration { catch (IOException ignore) {} } - FieldList fields = new FieldList(); - if (all.size() == 0) { - return new ResultImpl(this, fields); + return new ResultImpl(this); } else { + List> fields = new ArrayList>(); + for (String name : all.get(0)) { fields.add(fieldByName(String.class, name)); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Expression.java b/jOOQ/src/main/java/org/jooq/impl/Expression.java index 808738b808..064ac9d84d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Expression.java +++ b/jOOQ/src/main/java/org/jooq/impl/Expression.java @@ -69,7 +69,6 @@ import static org.jooq.impl.Factory.two; import static org.jooq.impl.Factory.val; import java.sql.Timestamp; -import java.util.Arrays; import org.jooq.BindContext; import org.jooq.Configuration; @@ -90,19 +89,18 @@ class Expression extends AbstractFunction { /** * Generated UID */ - private static final long serialVersionUID = -5522799070693019771L; + private static final long serialVersionUID = -5522799070693019771L; - private final Field lhs; - private final FieldList rhs; - private final ExpressionOperator operator; + private final Field lhs; + private final QueryPartList> rhs; + private final ExpressionOperator operator; Expression(ExpressionOperator operator, Field lhs, Field... rhs) { super(operator.toSQL(), lhs.getDataType(), Utils.combine(lhs, rhs)); this.operator = operator; this.lhs = lhs; - this.rhs = new FieldList(); - this.rhs.addAll(Arrays.asList(rhs)); + this.rhs = new QueryPartList>(rhs); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/Factory.java b/jOOQ/src/main/java/org/jooq/impl/Factory.java index 8a72a710ff..befe03ed9e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Factory.java +++ b/jOOQ/src/main/java/org/jooq/impl/Factory.java @@ -57,6 +57,7 @@ import java.sql.Date; import java.sql.ResultSetMetaData; import java.sql.Time; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -4615,7 +4616,7 @@ public class Factory { WrappedList[] array = new WrappedList[fieldSets.length]; for (int i = 0; i < fieldSets.length; i++) { - array[i] = new WrappedList(new FieldList(fieldSets[i])); + array[i] = new WrappedList(new QueryPartList>(fieldSets[i])); } return new Function("grouping sets", SQLDataType.OTHER, array); @@ -6860,7 +6861,7 @@ public class Factory { */ @Support public static List> vals(Object... values) { - FieldList result = new FieldList(); + List> result = new ArrayList>(); if (values != null) { for (Object value : values) { @@ -6883,7 +6884,7 @@ public class Factory { */ @Support public static List> vals(Object[] values, Field[] fields) { - FieldList result = new FieldList(); + List> result = new ArrayList>(); if (values != null && fields != null) { for (int i = 0; i < values.length && i < fields.length; i++) { @@ -6899,7 +6900,7 @@ public class Factory { */ @Support public static List> vals(Object[] values, Class[] types) { - FieldList result = new FieldList(); + List> result = new ArrayList>(); if (values != null && types != null) { for (int i = 0; i < values.length && i < types.length; i++) { @@ -6915,7 +6916,7 @@ public class Factory { */ @Support public static List> vals(Object[] values, DataType[] types) { - FieldList result = new FieldList(); + List> result = new ArrayList>(); if (values != null && types != null) { for (int i = 0; i < values.length && i < types.length; i++) { diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldList.java b/jOOQ/src/main/java/org/jooq/impl/FieldList.java deleted file mode 100644 index a57da3dec4..0000000000 --- a/jOOQ/src/main/java/org/jooq/impl/FieldList.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Copyright (c) 2009-2013, Lukas Eder, lukas.eder@gmail.com - * All rights reserved. - * - * This software is licensed to you under the Apache License, Version 2.0 - * (the "License"); You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name "jOOQ" nor the names of its contributors may be - * used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -package org.jooq.impl; - -import java.util.Collection; - -import org.jooq.Field; - -/** - * @author Lukas Eder - */ -class FieldList extends QueryPartList> { - - private static final long serialVersionUID = -6911012275707591576L; - - FieldList() { - super(); - } - - FieldList(Collection> wrappedList) { - super(wrappedList); - } - - FieldList(Field... wrappedList) { - super(wrappedList); - } -} diff --git a/jOOQ/src/main/java/org/jooq/impl/Fields.java b/jOOQ/src/main/java/org/jooq/impl/Fields.java index 464f376b61..96a12959de 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Fields.java +++ b/jOOQ/src/main/java/org/jooq/impl/Fields.java @@ -36,7 +36,9 @@ package org.jooq.impl; +import java.util.Arrays; import java.util.Collection; +import java.util.Iterator; import org.jooq.BindContext; import org.jooq.Field; @@ -48,7 +50,7 @@ import org.jooq.RenderContext; * * @author Lukas Eder */ -class Fields extends AbstractQueryPart { +class Fields extends AbstractQueryPart implements Iterable> { private static final long serialVersionUID = -6911012275707591576L; Field[] fields; @@ -135,20 +137,28 @@ class Fields extends AbstractQueryPart { @Override public final void toSQL(RenderContext context) { - new FieldList(fields).toSQL(context); + new QueryPartList>(fields).toSQL(context); } @Override public final void bind(BindContext context) { - new FieldList(fields).bind(context); + new QueryPartList>(fields).bind(context); } - final void add(Field field) { - int length = fields.length; + // ------------------------------------------------------------------------- + // XXX: List-like API + // ------------------------------------------------------------------------- - Field[] result = new Field[length + 1]; - System.arraycopy(fields, 0, result, 0, length); - result[length] = field; + @Override + public final Iterator> iterator() { + return Arrays.asList(fields).iterator(); + } + + final void add(Field f) { + Field[] result = new Field[fields.length + 1]; + + System.arraycopy(fields, 0, result, 0, fields.length); + result[fields.length] = f; fields = result; } diff --git a/jOOQ/src/main/java/org/jooq/impl/Function.java b/jOOQ/src/main/java/org/jooq/impl/Function.java index 50b95d25bd..61b8229331 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Function.java +++ b/jOOQ/src/main/java/org/jooq/impl/Function.java @@ -97,7 +97,7 @@ class Function extends AbstractField implements private final boolean distinct; private final SortFieldList withinGroupOrderBy; private final SortFieldList keepDenseRankOrderBy; - private final FieldList partitionBy; + private final QueryPartList> partitionBy; private final SortFieldList orderBy; private boolean first; @@ -108,7 +108,6 @@ class Function extends AbstractField implements private Integer rowsStart; private Integer rowsEnd; - // ------------------------------------------------------------------------- // XXX Constructors // ------------------------------------------------------------------------- @@ -129,7 +128,7 @@ class Function extends AbstractField implements this.arguments = new QueryPartList(arguments); this.keepDenseRankOrderBy = new SortFieldList(); this.withinGroupOrderBy = new SortFieldList(); - this.partitionBy = new FieldList(); + this.partitionBy = new QueryPartList>(); this.orderBy = new SortFieldList(); } @@ -141,7 +140,7 @@ class Function extends AbstractField implements this.arguments = new QueryPartList(arguments); this.keepDenseRankOrderBy = new SortFieldList(); this.withinGroupOrderBy = new SortFieldList(); - this.partitionBy = new FieldList(); + this.partitionBy = new QueryPartList>(); this.orderBy = new SortFieldList(); } diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java index 0063c50ef2..1e0c574095 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java @@ -76,21 +76,21 @@ import org.jooq.exception.SQLDialectNotSupportedException; */ class InsertQueryImpl extends AbstractStoreQuery implements InsertQuery { - private static final long serialVersionUID = 4466005417945353842L; + private static final long serialVersionUID = 4466005417945353842L; - private final FieldMapForUpdate updateMap; - private final FieldMapsForInsert insertMaps; - private final FieldList returning; - private Result returned; - private boolean onDuplicateKeyUpdate; - private boolean onDuplicateKeyIgnore; + private final FieldMapForUpdate updateMap; + private final FieldMapsForInsert insertMaps; + private final QueryPartList> returning; + private Result returned; + private boolean onDuplicateKeyUpdate; + private boolean onDuplicateKeyIgnore; InsertQueryImpl(Configuration configuration, Table into) { super(configuration, into); updateMap = new FieldMapForUpdate(); insertMaps = new FieldMapsForInsert(); - returning = new FieldList(); + returning = new QueryPartList>(); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/JoinTable.java b/jOOQ/src/main/java/org/jooq/impl/JoinTable.java index d7c99ef048..5f55e42654 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JoinTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/JoinTable.java @@ -86,26 +86,26 @@ class JoinTable extends AbstractTable implements TableOptionalOnStep, Ta /** * Generated UID */ - private static final long serialVersionUID = 8377996833996498178L; + private static final long serialVersionUID = 8377996833996498178L; - private final Table lhs; - private final Table rhs; - private final FieldList rhsPartitionBy; + private final Table lhs; + private final Table rhs; + private final QueryPartList> rhsPartitionBy; - private final JoinType type; - private final ConditionProviderImpl condition; - private final FieldList using; + private final JoinType type; + private final ConditionProviderImpl condition; + private final QueryPartList> using; JoinTable(TableLike lhs, TableLike rhs, JoinType type) { super("join"); this.lhs = lhs.asTable(); this.rhs = rhs.asTable(); - this.rhsPartitionBy = new FieldList(); + this.rhsPartitionBy = new QueryPartList>(); this.type = type; this.condition = new ConditionProviderImpl(); - this.using = new FieldList(); + this.using = new QueryPartList>(); } // ------------------------------------------------------------------------ diff --git a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java index 03d9239ac1..92b587c2b7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java @@ -44,11 +44,13 @@ import static org.jooq.impl.Factory.val; import static org.jooq.impl.Factory.vals; import static org.jooq.tools.Convert.convert; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.Set; @@ -215,9 +217,9 @@ implements // Objects for the H2-specific syntax private boolean h2Style; - private Fields h2Fields; - private FieldList h2Keys; - private FieldList h2Values; + private QueryPartList> h2Fields; + private QueryPartList> h2Keys; + private QueryPartList> h2Values; private Select h2Select; MergeImpl(Configuration configuration, Table table) { @@ -232,7 +234,7 @@ implements if (fields != null) { h2Style = true; - h2Fields = new Fields(fields); + h2Fields = new QueryPartList>(fields); } } @@ -240,25 +242,25 @@ implements // H2-specific MERGE API // ------------------------------------------------------------------------- - Fields getH2Fields() { + QueryPartList> getH2Fields() { if (h2Fields == null) { - h2Fields = new Fields(table.fields()); + h2Fields = new QueryPartList>(table.fields()); } return h2Fields; } - FieldList getH2Keys() { + QueryPartList> getH2Keys() { if (h2Keys == null) { - h2Keys = new FieldList(); + h2Keys = new QueryPartList>(); } return h2Keys; } - FieldList getH2Values() { + QueryPartList> getH2Values() { if (h2Values == null) { - h2Values = new FieldList(); + h2Values = new QueryPartList>(); } return h2Values; @@ -518,7 +520,7 @@ implements // syntax, in case of which, the USING() was not added if (using == null) { h2Style = true; - getH2Values().addAll(vals(convert(values, getH2Fields().fields()))); + getH2Values().addAll(vals(convert(values, getH2Fields().toArray(new Field[0])))); } else { Field[] fields = notMatchedInsert.keySet().toArray(new Field[0]); @@ -893,7 +895,7 @@ implements // ------------------------------ Table src; if (h2Select != null) { - FieldList v = new FieldList(); + List> v = new ArrayList>(); Row row = h2Select.fieldsRow(); for (int i = 0; i < row.size(); i++) { @@ -905,7 +907,7 @@ implements src = create(config).select(v).from(h2Select).asTable("src"); } else { - FieldList v = new FieldList(); + List> v = new ArrayList>(); for (int i = 0; i < getH2Values().size(); i++) { v.add(getH2Values().get(i).as("s" + (i + 1))); @@ -967,11 +969,11 @@ implements for (int i = 0; i < src.fieldsRow().size(); i++) { // Oracle does not allow to update fields from the ON clause - if (!onFields.contains(getH2Fields().field(i))) { - update.put(getH2Fields().field(i), src.field(i)); + if (!onFields.contains(getH2Fields().get(i))) { + update.put(getH2Fields().get(i), src.field(i)); } - insert.put(getH2Fields().field(i), src.field(i)); + insert.put(getH2Fields().get(i), src.field(i)); } return create(config).mergeInto(table) @@ -1137,7 +1139,7 @@ implements context.declareTables(true) .bind(table) .declareTables(false) - .bind(getH2Fields()) + .bind((QueryPart) getH2Fields()) .bind((QueryPart) getH2Keys()) .bind(h2Select) .bind((QueryPart) getH2Values()); diff --git a/jOOQ/src/main/java/org/jooq/impl/Pivot.java b/jOOQ/src/main/java/org/jooq/impl/Pivot.java index 43285449bd..7c0b6d2a50 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Pivot.java +++ b/jOOQ/src/main/java/org/jooq/impl/Pivot.java @@ -38,7 +38,9 @@ package org.jooq.impl; import static org.jooq.impl.Factory.trueCondition; import static org.jooq.impl.Factory.vals; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; import org.jooq.BindContext; import org.jooq.Condition; @@ -141,9 +143,9 @@ implements } private Table select(Context context) { - FieldList groupingFields = new FieldList(); - FieldList aliasedGroupingFields = new FieldList(); - FieldList aggregatedFields = new FieldList(); + List> groupingFields = new ArrayList>(); + List> aliasedGroupingFields = new ArrayList>(); + List> aggregatedFields = new ArrayList>(); Table pivot = table.as("pivot_outer"); @@ -173,7 +175,7 @@ implements } // The product {aggregateFunctions} x {in} - FieldList aggregationSelects = new FieldList(); + List> aggregationSelects = new ArrayList>(); for (Field inField : in) { for (Field aggregateFunction : aggregateFunctions) { Condition join = trueCondition(); diff --git a/jOOQ/src/main/java/org/jooq/impl/ReferenceImpl.java b/jOOQ/src/main/java/org/jooq/impl/ReferenceImpl.java index 338a56d481..748d5e771b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ReferenceImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ReferenceImpl.java @@ -103,7 +103,7 @@ class ReferenceImpl extends AbstractKey i @Override public final Result fetchParents(Collection records) { if (records == null || records.size() == 0) { - return new ResultImpl(new DefaultConfiguration(), new FieldList(key.getFields())); + return new ResultImpl(new DefaultConfiguration(), key.getFields()); } else { return fetch(records, key.getTable(), key.getFieldsArray(), getFieldsArray()); @@ -113,7 +113,7 @@ class ReferenceImpl extends AbstractKey i @Override public final Result fetchChildren(Collection records) { if (records == null || records.size() == 0) { - return new ResultImpl(new DefaultConfiguration(), new FieldList(getFields())); + return new ResultImpl(new DefaultConfiguration(), getFields()); } else { return fetch(records, getTable(), getFieldsArray(), key.getFieldsArray()); diff --git a/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java b/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java index 9c6a0fefd3..87b5ddc1c5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java @@ -732,19 +732,17 @@ class ResultImpl implements Result, AttachableInternal { } Map map = new LinkedHashMap(); - FieldList keyList = new FieldList(keys); - for (R record : this) { @SuppressWarnings({ "rawtypes", "unchecked" }) - Record key = new RecordImpl(keyList); + Record key = new RecordImpl(keys); for (Field field : keys) { Utils.setValue(key, field, record, field); } if (map.put(key, record) != null) { - throw new InvalidResultException("Key list " + keyList + " is not unique in Result for " + this); + throw new InvalidResultException("Key list " + Arrays.asList(keys) + " is not unique in Result for " + this); } } @@ -840,12 +838,10 @@ class ResultImpl implements Result, AttachableInternal { } Map> map = new LinkedHashMap>(); - FieldList keyList = new FieldList(keys); - for (R record : this) { @SuppressWarnings({ "rawtypes", "unchecked" }) - Record key = new RecordImpl(keyList); + Record key = new RecordImpl(keys); for (Field field : keys) { Utils.setValue(key, field, record, field); @@ -891,12 +887,10 @@ class ResultImpl implements Result, AttachableInternal { } Map> map = new LinkedHashMap>(); - FieldList keyList = new FieldList(keys); - for (R record : this) { @SuppressWarnings({ "rawtypes", "unchecked" }) - Record key = new RecordImpl(keyList); + Record key = new RecordImpl(keys); for (Field field : keys) { Utils.setValue(key, field, record, field); diff --git a/jOOQ/src/main/java/org/jooq/impl/Rollup.java b/jOOQ/src/main/java/org/jooq/impl/Rollup.java index 2c8d560136..db104dabb7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Rollup.java +++ b/jOOQ/src/main/java/org/jooq/impl/Rollup.java @@ -35,7 +35,6 @@ */ package org.jooq.impl; -import static java.util.Arrays.asList; import static org.jooq.impl.Factory.field; import static org.jooq.impl.Factory.function; @@ -61,7 +60,7 @@ class Rollup extends AbstractFunction { switch (configuration.getDialect()) { case CUBRID: case MYSQL: - return field("{0} {with rollup}", new FieldList(asList(getArguments()))); + return field("{0} {with rollup}", new QueryPartList>(getArguments())); default: return function("rollup", Object.class, getArguments()); diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index 7a9caf615f..d10a41eb1a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -96,7 +96,7 @@ class SelectQueryImpl extends AbstractSelect implements Sel private String hint; private boolean distinct; private boolean forUpdate; - private final FieldList forUpdateOf; + private final QueryPartList> forUpdateOf; private final TableList forUpdateOfTables; private ForUpdateMode forUpdateMode; private int forUpdateWait; @@ -143,7 +143,7 @@ class SelectQueryImpl extends AbstractSelect implements Sel this.from.add(from.asTable()); } - this.forUpdateOf = new FieldList(); + this.forUpdateOf = new QueryPartList>(); this.forUpdateOfTables = new TableList(); } diff --git a/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java b/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java index cfbc75fe8a..e0005f915d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java @@ -38,7 +38,6 @@ package org.jooq.impl; import org.jooq.BindContext; import org.jooq.DataType; import org.jooq.Field; -import org.jooq.QueryPart; import org.jooq.Record; import org.jooq.RenderContext; import org.jooq.Row; @@ -60,11 +59,11 @@ public class UDTImpl> extends AbstractQueryPart implement private final Schema schema; private final String name; - private final FieldList fields; + private final Fields fields; private transient DataType type; public UDTImpl(String name, Schema schema) { - this.fields = new FieldList(); + this.fields = new Fields(); this.name = name; this.schema = schema; } @@ -79,7 +78,7 @@ public class UDTImpl> extends AbstractQueryPart implement return name; } - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings({ "rawtypes" }) @Override public final Row fieldsRow() { return new RowImpl(fields); @@ -105,7 +104,7 @@ public class UDTImpl> extends AbstractQueryPart implement return fieldsRow().fields(); } - final FieldList fields0() { + final Fields fields0() { return fields; } @@ -134,7 +133,7 @@ public class UDTImpl> extends AbstractQueryPart implement @Override public final void bind(BindContext context) { - context.bind((QueryPart) fields); + context.bind(fields); } /**