[
https://issues.apache.org/jira/browse/CALCITE-528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15111311#comment-15111311
]
Jacques Nadeau commented on CALCITE-528:
----------------------------------------
[[email protected]], picking this (old) thread up. We had a good
conversation about this shortly after this discussion (14 months ago) and I
forgot to report back to it here.
My understanding is that field names in the rel tree are not meaningful.
Therefore, there should be no expectation of field names having any meaning. My
question is: given that, why would the join relnode even rename columns or
interact with them at all? As I understand it, consumers of Calcite must
interact with the parser to determine the output field names and shouldn't
interrogate the relnodes at all for this purpose. I think the initial
disconnect above is probably in part due to the fact that relnodes even have
field names and that they interact with them. Shouldn't relnodes be solely
focused on ordinals? Thoughts?
> Creating output row type of a Join does not obey case-sensitivity flags
> -----------------------------------------------------------------------
>
> Key: CALCITE-528
> URL: https://issues.apache.org/jira/browse/CALCITE-528
> Project: Calcite
> Issue Type: Bug
> Affects Versions: 0.9.1-incubating
> Reporter: Aman Sinha
> Assignee: Julian Hyde
>
> In JoinRelBase.createJoinType() which creates a row type of the output row, a
> HashSet of String is used to keep track of unique field names. The field
> names 'column1' and 'Column1' will both be stored. This creates a problem
> for systems which are treating identifiers as case-insensitive (such as
> Drill) which rely on a Project below a Join to create unique names if the
> join columns are the same name (regardless of case).
> Ideally, the comparison for this should be done based on the criteria
> specified in the Lex settings when instantiating the
> SqlParser.ParserConfigImpl. So, if the parser was created with MYSQL Lex
> settings (see Lex.java), it should be obeyed by the
> JoinRelBase.createJoinType().
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)