Github user cloud-fan commented on the pull request:

    https://github.com/apache/spark/pull/12087#issuecomment-205157126
  
    generated code for
    ```
    case class Data(i: Int, j: Long, k: String)
    sqlContext.range(10).map(i => Data(i.toInt, i, i.toString))
    ```
    looks like:
    ```
    /* 092 */       /*** CONSUME: MapElements <function1>, newInstance(class 
java.lang.Long), [input[0, object].i AS i#6,input[0, object].j AS 
j#7L,staticinvoke(c... */
    /* 093 */
    /* 094 */       /* <function1>.apply */
    /* 095 */       /* <function1> */
    /* 096 */       /* expression: <function1> */
    /* 097 */       Object mapelements_obj = ((Expression) 
references[1]).eval(null);
    /* 098 */       scala.Function1 mapelements_value1 = (scala.Function1) 
mapelements_obj;
    /* 099 */       /* newInstance(class java.lang.Long) */
    /* 100 */       boolean mapelements_isNull2 = true;
    /* 101 */       java.lang.Long mapelements_value2 = null;
    /* 102 */       if (!(false)) {
    /* 103 */         mapelements_value2 = new java.lang.Long(range_value);
    /* 104 */         mapelements_isNull2 = false;
    /* 105 */       }
    /* 106 */
    /* 107 */       boolean mapelements_isNull = false;
    /* 108 */       org.apache.spark.sql.execution.Data mapelements_value =
    /* 109 */       mapelements_isNull ?
    /* 110 */       null : (org.apache.spark.sql.execution.Data) 
mapelements_value1.apply(mapelements_value2);
    /* 111 */       mapelements_isNull = mapelements_value == null;
    /* 112 */
    /* 113 */       /*** CONSUME: WholeStageCodegen */
    /* 114 */
    /* 115 */       /* lambdavariable(mapelements_value, mapelements_isNull, 
ObjectType(class org.apache.spark.sql.execution.Data)).i */
    /* 116 */       boolean mapelements_isNull4 = mapelements_isNull;
    /* 117 */       int mapelements_value4 =
    /* 118 */       mapelements_isNull4 ?
    /* 119 */       -1 : (int) mapelements_value.i();
    /* 120 */       /* lambdavariable(mapelements_value, mapelements_isNull, 
ObjectType(class org.apache.spark.sql.execution.Data)).j */
    /* 121 */       boolean mapelements_isNull5 = mapelements_isNull;
    /* 122 */       long mapelements_value5 =
    /* 123 */       mapelements_isNull5 ?
    /* 124 */       -1L : (long) mapelements_value.j();
    /* 125 */       /* staticinvoke(class 
org.apache.spark.unsafe.types.UTF8String, StringType, fromString, 
lambdavariable(mapelements_value, mapelemen... */
    /* 126 */       /* lambdavariable(mapelements_value, mapelements_isNull, 
ObjectType(class org.apache.spark.sql.execution.Data)).k */
    /* 127 */       boolean mapelements_isNull7 = mapelements_isNull;
    /* 128 */       java.lang.String mapelements_value7 =
    /* 129 */       mapelements_isNull7 ?
    /* 130 */       null : (java.lang.String) mapelements_value.k();
    /* 131 */       mapelements_isNull7 = mapelements_value7 == null;
    /* 132 */
    /* 133 */       boolean mapelements_isNull6 = !!(mapelements_isNull7);
    /* 134 */       UTF8String mapelements_value6 = null;
    /* 135 */
    /* 136 */       if (!(mapelements_isNull7)) {
    /* 137 */         mapelements_value6 = 
org.apache.spark.unsafe.types.UTF8String.fromString(mapelements_value7);
    /* 138 */         mapelements_isNull6 = mapelements_value6 == null;
    /* 139 */       }
    /* 140 */       mapelements_holder.reset();
    /* 141 */
    /* 142 */       mapelements_rowWriter.zeroOutNullBytes();
    /* 143 */
    /* 144 */       if (mapelements_isNull4) {
    /* 145 */         mapelements_rowWriter.setNullAt(0);
    /* 146 */       } else {
    /* 147 */         mapelements_rowWriter.write(0, mapelements_value4);
    /* 148 */       }
    /* 149 */
    /* 150 */       if (mapelements_isNull5) {
    /* 151 */         mapelements_rowWriter.setNullAt(1);
    /* 152 */       } else {
    /* 153 */         mapelements_rowWriter.write(1, mapelements_value5);
    /* 154 */       }
    /* 155 */
    /* 156 */       if (mapelements_isNull6) {
    /* 157 */         mapelements_rowWriter.setNullAt(2);
    /* 158 */       } else {
    /* 159 */         mapelements_rowWriter.write(2, mapelements_value6);
    /* 160 */       }
    /* 161 */       
mapelements_result.setTotalSize(mapelements_holder.totalSize());
    /* 162 */       append(mapelements_result);
    /* 163 */
    /* 164 */       if (shouldStop()) return;
    ```


---
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 [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to