This is an automated email from the ASF dual-hosted git repository.
amaliujia pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/master by this push:
new 1b43091 [CALCITE-4269] Improvements on enumerable implementation for
HOP and SESSION. (Rui Wang)
1b43091 is described below
commit 1b430915730b66f26a00205ab93cd3c68d16ef90
Author: amaliujia <[email protected]>
AuthorDate: Sun Sep 20 16:04:54 2020 -0700
[CALCITE-4269] Improvements on enumerable implementation for HOP and
SESSION. (Rui Wang)
1. Use ArrayDeque to replace LinkedList for the sake of efficiency.
2. Mark the list as "final".
---
.../java/org/apache/calcite/adapter/enumerable/EnumUtils.java | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git
a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumUtils.java
b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumUtils.java
index ae9455f..d5e9a41 100644
--- a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumUtils.java
+++ b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumUtils.java
@@ -61,10 +61,11 @@ import java.lang.reflect.Modifier;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.AbstractList;
+import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Deque;
import java.util.HashMap;
-import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -856,7 +857,7 @@ public class EnumUtils {
private final int indexOfWatermarkedColumn;
private final int indexOfKeyColumn;
private final long gap;
- private LinkedList<Object[]> list;
+ private final Deque<Object[]> list;
private boolean initialized;
/**
@@ -874,7 +875,7 @@ public class EnumUtils {
this.indexOfWatermarkedColumn = indexOfWatermarkedColumn;
this.indexOfKeyColumn = indexOfKeyColumn;
this.gap = gap;
- list = new LinkedList<>();
+ list = new ArrayDeque<>();
initialized = false;
}
@@ -998,7 +999,7 @@ public class EnumUtils {
private final long emitFrequency;
private final long windowSize;
private final long offset;
- private LinkedList<Object[]> list;
+ private final Deque<Object[]> list;
/**
* Note that it only works for batch scenario. E.g. all data is known and
there is no late data.
@@ -1016,7 +1017,7 @@ public class EnumUtils {
this.emitFrequency = slide;
this.windowSize = windowSize;
this.offset = offset;
- list = new LinkedList<>();
+ list = new ArrayDeque<>();
}
public Object[] current() {