[
https://issues.apache.org/jira/browse/CALCITE-528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15111811#comment-15111811
]
Jacques Nadeau commented on CALCITE-528:
----------------------------------------
Makes sense.
It seems like if struct requires unique columns, the uniqueness requirement
should be based on the case handling policy. Otherwise, it seems like we
shouldn't enforce a uniqueness requirement as the requirement is
incorrect/misleading depending on the case handling.
> 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)