Github user rxin commented on the pull request:

    https://github.com/apache/spark/pull/11019#issuecomment-178415439
  
    New generated code:
    ```java
    scala> sqlContext.range(1, 1000).agg(expr("count(1)"), 
expr("sum(id)")).show()
    /* 001 */ 
    /* 002 */ public Object generate(Object[] references) {
    /* 003 */   return new GeneratedIterator(references);
    /* 004 */ }
    /* 005 */ 
    /* 006 */ class GeneratedIterator extends 
org.apache.spark.sql.execution.BufferedRowIterator {
    /* 007 */   
    /* 008 */   private Object[] references;
    /* 009 */   private boolean TungstenAggregate_initAgg0;
    /* 010 */   private boolean TungstenAggregate_bufIsNull1;
    /* 011 */   private long TungstenAggregate_bufValue2;
    /* 012 */   private boolean TungstenAggregate_bufIsNull5;
    /* 013 */   private long TungstenAggregate_bufValue6;
    /* 014 */   private boolean Range_initRange10;
    /* 015 */   private long Range_partitionEnd11;
    /* 016 */   private long Range_number12;
    /* 017 */   private boolean Range_overflow13;
    /* 018 */   private UnsafeRow TungstenAggregate_result39;
    /* 019 */   private 
org.apache.spark.sql.catalyst.expressions.codegen.BufferHolder 
TungstenAggregate_holder40;
    /* 020 */   private 
org.apache.spark.sql.catalyst.expressions.codegen.UnsafeRowWriter 
TungstenAggregate_rowWriter41;
    /* 021 */   
    /* 022 */   private void TungstenAggregate_doAggregateWithoutKey9() throws 
java.io.IOException {
    /* 023 */   // initialize agg buffer:
    /* 024 */     // [(count(1),mode=Partial,isDistinct=false), 
(sum(id#18L),mode=Partial,isDistinct=false)]
    /* 025 */     
    /* 026 */     TungstenAggregate_bufIsNull1 = false;
    /* 027 */     TungstenAggregate_bufValue2 = 0L;
    /* 028 */     
    /* 029 */     final long TungstenAggregate_value8 = -1L;
    /* 030 */     TungstenAggregate_bufIsNull5 = true;
    /* 031 */     TungstenAggregate_bufValue6 = TungstenAggregate_value8;
    /* 032 */     
    /* 033 */     
    /* 034 */     
    /* 035 */     // initialize Range
    /* 036 */     if (!Range_initRange10) {
    /* 037 */       Range_initRange10 = true;
    /* 038 */       if (input.hasNext()) {
    /* 039 */         initRange(((InternalRow) input.next()).getInt(0));
    /* 040 */       } else {
    /* 041 */         return;
    /* 042 */       }
    /* 043 */     }
    /* 044 */     
    /* 045 */     while (!Range_overflow13 && Range_number12 < 
Range_partitionEnd11) {
    /* 046 */       long Range_value14 = Range_number12;
    /* 047 */       Range_number12 += 1L;
    /* 048 */       if (Range_number12 < Range_value14 ^ 1L < 0) {
    /* 049 */         Range_overflow13 = true;
    /* 050 */       }
    /* 051 */       
    /* 052 */       // aggregate: [(count#23L + 1), (coalesce(sum#24L,cast(0 as 
bigint)) + cast(id#18L as bigint))]
    /* 053 */       
    /* 054 */       
    /* 055 */       
    /* 056 */       long TungstenAggregate_value16 = -1L;
    /* 057 */       TungstenAggregate_value16 = TungstenAggregate_bufValue2 + 
1L;
    /* 058 */       
    /* 059 */       
    /* 060 */       
    /* 061 */       
    /* 062 */       boolean TungstenAggregate_isNull23 = 
TungstenAggregate_bufIsNull5;
    /* 063 */       long TungstenAggregate_value24 = 
TungstenAggregate_bufValue6;
    /* 064 */       
    /* 065 */       if (TungstenAggregate_isNull23) {
    /* 066 */         
    /* 067 */         boolean TungstenAggregate_isNull27 = false;
    /* 068 */         long TungstenAggregate_value28 = -1L;
    /* 069 */         if (!false) {
    /* 070 */           TungstenAggregate_value28 = (long) 0;
    /* 071 */         }
    /* 072 */         
    /* 073 */         if (!TungstenAggregate_isNull27) {
    /* 074 */           TungstenAggregate_isNull23 = false;
    /* 075 */           TungstenAggregate_value24 = TungstenAggregate_value28;
    /* 076 */         }
    /* 077 */       }
    /* 078 */       
    /* 079 */       
    /* 080 */       boolean TungstenAggregate_isNull31 = false;
    /* 081 */       long TungstenAggregate_value32 = -1L;
    /* 082 */       if (!false) {
    /* 083 */         TungstenAggregate_value32 = Range_value14;
    /* 084 */       }
    /* 085 */       
    /* 086 */       long TungstenAggregate_value22 = -1L;
    /* 087 */       TungstenAggregate_value22 = TungstenAggregate_value24 + 
TungstenAggregate_value32;
    /* 088 */       
    /* 089 */       // update agg buffer
    /* 090 */       
    /* 091 */       TungstenAggregate_bufIsNull1 = false;
    /* 092 */       TungstenAggregate_bufValue2 = TungstenAggregate_value16;
    /* 093 */       
    /* 094 */       TungstenAggregate_bufIsNull5 = false;
    /* 095 */       TungstenAggregate_bufValue6 = TungstenAggregate_value22;
    /* 096 */       
    /* 097 */       
    /* 098 */     }
    /* 099 */     
    /* 100 */   }
    /* 101 */   
    /* 102 */   
    /* 103 */   private void initRange(int idx) {
    /* 104 */     java.math.BigInteger index = 
java.math.BigInteger.valueOf(idx);
    /* 105 */     java.math.BigInteger numSlice = 
java.math.BigInteger.valueOf(1L);
    /* 106 */     java.math.BigInteger numElement = 
java.math.BigInteger.valueOf(999L);
    /* 107 */     java.math.BigInteger step = java.math.BigInteger.valueOf(1L);
    /* 108 */     java.math.BigInteger start = java.math.BigInteger.valueOf(1L);
    /* 109 */     
    /* 110 */     java.math.BigInteger st = 
index.multiply(numElement).divide(numSlice).multiply(step).add(start);
    /* 111 */     if 
(st.compareTo(java.math.BigInteger.valueOf(Long.MAX_VALUE)) > 0) {
    /* 112 */       Range_number12 = Long.MAX_VALUE;
    /* 113 */     } else if 
(st.compareTo(java.math.BigInteger.valueOf(Long.MIN_VALUE)) < 0) {
    /* 114 */       Range_number12 = Long.MIN_VALUE;
    /* 115 */     } else {
    /* 116 */       Range_number12 = st.longValue();
    /* 117 */     }
    /* 118 */     
    /* 119 */     java.math.BigInteger end = 
index.add(java.math.BigInteger.ONE).multiply(numElement).divide(numSlice)
    /* 120 */     .multiply(step).add(start);
    /* 121 */     if 
(end.compareTo(java.math.BigInteger.valueOf(Long.MAX_VALUE)) > 0) {
    /* 122 */       Range_partitionEnd11 = Long.MAX_VALUE;
    /* 123 */     } else if 
(end.compareTo(java.math.BigInteger.valueOf(Long.MIN_VALUE)) < 0) {
    /* 124 */       Range_partitionEnd11 = Long.MIN_VALUE;
    /* 125 */     } else {
    /* 126 */       Range_partitionEnd11 = end.longValue();
    /* 127 */     }
    /* 128 */   }
    /* 129 */   
    /* 130 */   
    /* 131 */   public GeneratedIterator(Object[] references) {
    /* 132 */     this.references = references;
    /* 133 */     TungstenAggregate_initAgg0 = false;
    /* 134 */     
    /* 135 */     
    /* 136 */     
    /* 137 */     
    /* 138 */     Range_initRange10 = false;
    /* 139 */     Range_partitionEnd11 = 0L;
    /* 140 */     Range_number12 = 0L;
    /* 141 */     Range_overflow13 = false;
    /* 142 */     TungstenAggregate_result39 = new UnsafeRow(2);
    /* 143 */     this.TungstenAggregate_holder40 = new 
org.apache.spark.sql.catalyst.expressions.codegen.BufferHolder(TungstenAggregate_result39,
 0);
    /* 144 */     this.TungstenAggregate_rowWriter41 = new 
org.apache.spark.sql.catalyst.expressions.codegen.UnsafeRowWriter(TungstenAggregate_holder40,
 2);
    /* 145 */   }
    /* 146 */   
    /* 147 */   protected void processNext() throws java.io.IOException {
    /* 148 */     
    /* 149 */     if (!TungstenAggregate_initAgg0) {
    /* 150 */       TungstenAggregate_initAgg0 = true;
    /* 151 */       TungstenAggregate_doAggregateWithoutKey9();
    /* 152 */       
    /* 153 */       // output the result
    /* 154 */       
    /* 155 */       
    /* 156 */       
    /* 157 */       // project list: [input[0, bigint], input[1, bigint]]
    /* 158 */       
    /* 159 */       
    /* 160 */       TungstenAggregate_rowWriter41.zeroOutNullBytes();
    /* 161 */       
    /* 162 */       
    /* 163 */       if (TungstenAggregate_bufIsNull1) {
    /* 164 */         TungstenAggregate_rowWriter41.setNullAt(0);
    /* 165 */       } else {
    /* 166 */         TungstenAggregate_rowWriter41.write(0, 
TungstenAggregate_bufValue2);
    /* 167 */       }
    /* 168 */       
    /* 169 */       
    /* 170 */       if (TungstenAggregate_bufIsNull5) {
    /* 171 */         TungstenAggregate_rowWriter41.setNullAt(1);
    /* 172 */       } else {
    /* 173 */         TungstenAggregate_rowWriter41.write(1, 
TungstenAggregate_bufValue6);
    /* 174 */       }
    /* 175 */       currentRow = TungstenAggregate_result39;
    /* 176 */       return;
    /* 177 */       
    /* 178 */     }
    /* 179 */     
    /* 180 */   }
    /* 181 */ }
    /* 182 */ 
    ```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to