Skip to content

Commit d0a294e

Browse files
committed
revert #11727
1 parent 6d0848b commit d0a294e

File tree

14 files changed

+364
-1118
lines changed

14 files changed

+364
-1118
lines changed

sql/catalyst/src/main/scala/org/apache/spark/sql/Encoder.scala

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ trait Encoder[T] extends Serializable {
4545
*/
4646
object Encoders {
4747

48-
def BOOLEAN: Encoder[java.lang.Boolean] = ExpressionEncoder(flat = true)
49-
def BYTE: Encoder[java.lang.Byte] = ExpressionEncoder(flat = true)
50-
def SHORT: Encoder[java.lang.Short] = ExpressionEncoder(flat = true)
51-
def INT: Encoder[java.lang.Integer] = ExpressionEncoder(flat = true)
52-
def LONG: Encoder[java.lang.Long] = ExpressionEncoder(flat = true)
53-
def FLOAT: Encoder[java.lang.Float] = ExpressionEncoder(flat = true)
54-
def DOUBLE: Encoder[java.lang.Double] = ExpressionEncoder(flat = true)
55-
def STRING: Encoder[java.lang.String] = ExpressionEncoder(flat = true)
48+
def BOOLEAN: Encoder[java.lang.Boolean] = ExpressionEncoder()
49+
def BYTE: Encoder[java.lang.Byte] = ExpressionEncoder()
50+
def SHORT: Encoder[java.lang.Short] = ExpressionEncoder()
51+
def INT: Encoder[java.lang.Integer] = ExpressionEncoder()
52+
def LONG: Encoder[java.lang.Long] = ExpressionEncoder()
53+
def FLOAT: Encoder[java.lang.Float] = ExpressionEncoder()
54+
def DOUBLE: Encoder[java.lang.Double] = ExpressionEncoder()
55+
def STRING: Encoder[java.lang.String] = ExpressionEncoder()
5656

5757
/**
5858
* (Scala-specific) Creates an encoder that serializes objects of type T using Kryo.

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/ScalaReflection.scala

Lines changed: 114 additions & 240 deletions
Large diffs are not rendered by default.

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/encoders/ExpressionEncoder.scala

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ import org.apache.spark.sql.catalyst.expressions._
3030
import org.apache.spark.sql.catalyst.expressions.codegen.{GenerateSafeProjection, GenerateUnsafeProjection}
3131
import org.apache.spark.sql.catalyst.InternalRow
3232
import org.apache.spark.sql.catalyst.ScalaReflection
33-
import org.apache.spark.sql.types.{NullType, StructField, ObjectType, StructType}
33+
import org.apache.spark.sql.types.{StructField, ObjectType, StructType}
3434

3535
/**
36-
* A factory for constructing encoders that convert objects and primitves to and from the
36+
* A factory for constructing encoders that convert objects and primitives to and from the
3737
* internal row format using catalyst expressions and code generation. By default, the
3838
* expressions used to retrieve values from an input row when producing an object will be created as
3939
* follows:
@@ -44,20 +44,21 @@ import org.apache.spark.sql.types.{NullType, StructField, ObjectType, StructType
4444
* to the name `value`.
4545
*/
4646
object ExpressionEncoder {
47-
def apply[T : TypeTag](flat: Boolean = false): ExpressionEncoder[T] = {
47+
def apply[T : TypeTag](): ExpressionEncoder[T] = {
4848
// We convert the not-serializable TypeTag into StructType and ClassTag.
4949
val mirror = typeTag[T].mirror
5050
val cls = mirror.runtimeClass(typeTag[T].tpe)
51+
val flat = !classOf[Product].isAssignableFrom(cls)
5152

52-
val inputObject = BoundReference(0, ObjectType(cls), nullable = true)
53-
val extractExpression = ScalaReflection.extractorsFor[T](inputObject)
54-
val constructExpression = ScalaReflection.constructorFor[T]
53+
val inputObject = BoundReference(0, ScalaReflection.dataTypeFor[T], nullable = true)
54+
val toRowExpression = ScalaReflection.extractorsFor[T](inputObject)
55+
val fromRowExpression = ScalaReflection.constructorFor[T]
5556

5657
new ExpressionEncoder[T](
57-
extractExpression.dataType,
58+
toRowExpression.dataType,
5859
flat,
59-
extractExpression.flatten,
60-
constructExpression,
60+
toRowExpression.flatten,
61+
fromRowExpression,
6162
ClassTag[T](cls))
6263
}
6364

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/encoders/FlatEncoder.scala

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)