[ 
https://issues.apache.org/jira/browse/SPARK-11855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15013914#comment-15013914
 ] 

Santiago M. Mola commented on SPARK-11855:
------------------------------------------

They have public visibility and no @DeveloperApi or @Experimental annotations, 
so I always assumed they are. I have been working with catalyst on a day-to-day 
basis for almost 1 year now. I understand that catalyst might not offer the 
same kind of backwards compatibility as spark-core, but it would be good to 
avoid breaking backwards compatibility, specially in cases where it is easy to 
do (which are most of the cases I encounter).

I think part of the solution is also marking some parts as @Experimental. For 
example, UnsafeArrayData interface changed wildly, and it's probably not viable 
to maintain backwards compatibility, but it should be marked as @Experimental 
if more breakage is expected before 2.0.

> Catalyst breaks backwards compatibility in branch-1.6
> -----------------------------------------------------
>
>                 Key: SPARK-11855
>                 URL: https://issues.apache.org/jira/browse/SPARK-11855
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 1.6.0
>            Reporter: Santiago M. Mola
>            Priority: Critical
>
> There's a number of APIs broken in catalyst 1.6.0. I'm trying to compile most 
> cases:
> *UnresolvedRelation*'s constructor has been changed from taking a Seq to a 
> TableIdentifier. A deprecated constructor taking Seq would be needed to be 
> backwards compatible.
> {code}
>  case class UnresolvedRelation(
> -    tableIdentifier: Seq[String],
> +    tableIdentifier: TableIdentifier,
>      alias: Option[String] = None) extends LeafNode {
> {code}
> It is similar with *UnresolvedStar*:
> {code}
> -case class UnresolvedStar(table: Option[String]) extends Star with 
> Unevaluable {
> +case class UnresolvedStar(target: Option[Seq[String]]) extends Star with 
> Unevaluable {
> {code}
> Spark 1.5 already broke backwards compatibility of part of catalyst API with 
> respect to 1.4. I understand there are good reasons for some cases, but we 
> should try to minimize backwards compatibility breakages for 1.x. Specially 
> now that 2.x is on the horizon and there will be a near opportunity to remove 
> deprecated stuff.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to