[ 
https://issues.apache.org/jira/browse/FLINK-10116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Will updated FLINK-10116:
-------------------------
    Description: 
h1. Overview

When joining between case classes, if the attribute representing the join-key 
comes after Unit definition of fields (that are not being used) the join will 
fail with the error
{quote}{{Exception in thread "main" java.lang.IllegalArgumentException: Could 
not add a comparator for the logicalkey field index 0.}}
 \{{ at 
org.apache.flink.api.common.typeutils.CompositeType.createComparator(CompositeType.java:162)}}
 \{{ at 
org.apache.flink.optimizer.postpass.JavaApiPostPass.createComparator(JavaApiPostPass.java:293)}}
 \{{ at 
org.apache.flink.optimizer.postpass.JavaApiPostPass.traverse(JavaApiPostPass.java:193)}}
{quote}
Using TypeInformation keys does not exhibit the same issue. Initial debugging 
suggests that when calculating the index of the key for strings, Flink doesn't 
count Unit elements, however they are included during iteration in 
CompositeType.createComparator which leads to the search failing on the key 
appearing to be a Unit type.
h1. Code Examples to Reproduce

[^JobFail.scala]

[^JobPass.scala]

 

 

  was:
h1. Overview

When joining between case classes, if the attribute representing the join-key 
comes after Unit definition of fields (that are not being used) the join will 
fail with the error
{quote}{{Exception in thread "main" java.lang.IllegalArgumentException: Could 
not add a comparator for the logicalkey field index 0.}}
{{ at 
org.apache.flink.api.common.typeutils.CompositeType.createComparator(CompositeType.java:162)}}
{{ at 
org.apache.flink.optimizer.postpass.JavaApiPostPass.createComparator(JavaApiPostPass.java:293)}}
{{ at 
org.apache.flink.optimizer.postpass.JavaApiPostPass.traverse(JavaApiPostPass.java:193)}}
{quote}
Using TypeInformation keys does not exhibit the same issue. Initial debugging 
suggests that when calculating the index of the key for strings doesn't count 
Unit elements, however they are included during iteration in 
CompositeType.createComparator which leads to the search failing on the key 
appearing to be a Unit type.
h1. Code Examples to Reproduce

[^JobFail.scala]

[^JobPass.scala]

 

 


> createComparator fails on case class with Unit type fields prior to the 
> join-key
> --------------------------------------------------------------------------------
>
>                 Key: FLINK-10116
>                 URL: https://issues.apache.org/jira/browse/FLINK-10116
>             Project: Flink
>          Issue Type: Bug
>    Affects Versions: 1.3.3, 1.6.0
>            Reporter: Will
>            Priority: Major
>         Attachments: JobFail.scala, JobPass.scala
>
>
> h1. Overview
> When joining between case classes, if the attribute representing the join-key 
> comes after Unit definition of fields (that are not being used) the join will 
> fail with the error
> {quote}{{Exception in thread "main" java.lang.IllegalArgumentException: Could 
> not add a comparator for the logicalkey field index 0.}}
>  \{{ at 
> org.apache.flink.api.common.typeutils.CompositeType.createComparator(CompositeType.java:162)}}
>  \{{ at 
> org.apache.flink.optimizer.postpass.JavaApiPostPass.createComparator(JavaApiPostPass.java:293)}}
>  \{{ at 
> org.apache.flink.optimizer.postpass.JavaApiPostPass.traverse(JavaApiPostPass.java:193)}}
> {quote}
> Using TypeInformation keys does not exhibit the same issue. Initial debugging 
> suggests that when calculating the index of the key for strings, Flink 
> doesn't count Unit elements, however they are included during iteration in 
> CompositeType.createComparator which leads to the search failing on the key 
> appearing to be a Unit type.
> h1. Code Examples to Reproduce
> [^JobFail.scala]
> [^JobPass.scala]
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to