From 058151a756d35ad677d30a5a508612a8d289d473 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 8 Feb 2013 19:12:58 +0100 Subject: [PATCH] [#2178] Improve FieldList. Avoid creating excessive array lists, where simple (immutable) Field[] are sufficient - Removed dependency between SelectFieldList and FieldList --- .../src/org/jooq/test/_/testcases/BenchmarkTests.java | 2 +- .../main/java/org/jooq/impl/AbstractResultQuery.java | 2 +- jOOQ/src/main/java/org/jooq/impl/Alias.java | 2 +- jOOQ/src/main/java/org/jooq/impl/Pivot.java | 10 +++++----- jOOQ/src/main/java/org/jooq/impl/SelectFieldList.java | 2 +- jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java | 8 ++++---- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/jOOQ-test/src/org/jooq/test/_/testcases/BenchmarkTests.java b/jOOQ-test/src/org/jooq/test/_/testcases/BenchmarkTests.java index d1057e59e9..4071edc3e5 100644 --- a/jOOQ-test/src/org/jooq/test/_/testcases/BenchmarkTests.java +++ b/jOOQ-test/src/org/jooq/test/_/testcases/BenchmarkTests.java @@ -79,7 +79,7 @@ public class BenchmarkTests< T785 extends TableRecord> extends BaseTest { - private static final int REPETITIONS_NEW_RECORD = 1000000; + private static final int REPETITIONS_NEW_RECORD = 100000000; private static final int REPETITIONS_RECORD_INTO = 2000; private static final int REPETITIONS_FIELD_ACCESS = 1000000; private static final int REPETITIONS_SELECT = 100; diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractResultQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractResultQuery.java index 6fda7ce90b..de3ec01b21 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractResultQuery.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractResultQuery.java @@ -209,7 +209,7 @@ abstract class AbstractResultQuery extends AbstractQuery imple } } else { - result = new ResultImpl(ctx, new FieldList()); + result = new ResultImpl(ctx); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Alias.java b/jOOQ/src/main/java/org/jooq/impl/Alias.java index f74d8005f0..536393e505 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Alias.java +++ b/jOOQ/src/main/java/org/jooq/impl/Alias.java @@ -121,7 +121,7 @@ class Alias extends AbstractQueryPart { else if (fieldAliases != null && asList(H2, MYSQL, ORACLE, SQLITE).contains(dialect)) { simulateDerivedColumnList = true; - FieldList fields = new SelectFieldList(); + SelectFieldList fields = new SelectFieldList(); for (String fieldAlias : fieldAliases) { fields.add(field("null").as(fieldAlias)); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Pivot.java b/jOOQ/src/main/java/org/jooq/impl/Pivot.java index 341b20d709..43285449bd 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Pivot.java +++ b/jOOQ/src/main/java/org/jooq/impl/Pivot.java @@ -72,12 +72,12 @@ implements /** * Generated UID */ - private static final long serialVersionUID = -7918219502110473521L; + private static final long serialVersionUID = -7918219502110473521L; - private final Table table; - private final FieldList aggregateFunctions; - private Field on; - private FieldList in; + private final Table table; + private final SelectFieldList aggregateFunctions; + private Field on; + private SelectFieldList in; Pivot(Table table, Field... aggregateFunctions) { super("pivot"); diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectFieldList.java b/jOOQ/src/main/java/org/jooq/impl/SelectFieldList.java index 0c6b847f65..b2b551ab97 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectFieldList.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectFieldList.java @@ -44,7 +44,7 @@ import org.jooq.RenderContext; /** * @author Lukas Eder */ -class SelectFieldList extends FieldList { +class SelectFieldList extends QueryPartList> { private static final long serialVersionUID = 8850104968428500798L; diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index c41d1fbf7c..7a9caf615f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -92,7 +92,7 @@ class SelectQueryImpl extends AbstractSelect implements Sel */ private static final long serialVersionUID = 1646393178384872967L; - private final FieldList select; + private final SelectFieldList select; private String hint; private boolean distinct; private boolean forUpdate; @@ -716,13 +716,13 @@ class SelectQueryImpl extends AbstractSelect implements Sel return getSelect1(); } - final FieldList getSelect0() { + final SelectFieldList getSelect0() { return select; } - final FieldList getSelect1() { + final SelectFieldList getSelect1() { if (getSelect0().isEmpty()) { - FieldList result = new SelectFieldList(); + SelectFieldList result = new SelectFieldList(); // [#109] [#489]: SELECT * is only applied when at least one table // from the table source is "unknown", i.e. not generated from a