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() {

Reply via email to