[
https://issues.apache.org/jira/browse/CALCITE-528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14251499#comment-14251499
]
Julian Hyde commented on CALCITE-528:
-------------------------------------
{quote}Wherever Calcite decides that t1.ColumnA and t2.columnA are the same or
different should be case aware{quote}
I disagree. All of the lexing and case-sensitivity options concern SQL parsing
and validation. They have nothing to do with RelNode field names. RelNode field
names happen to be based on SQL field names but we do not guarantee it.
This case is framed as a bug whereas it seems that you have been
misunderstanding the spec. If we can agree on that, maybe we can reboot this
discussion.
> 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)