Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-528

Creating output row type of a Join does not obey case-sensitivity flags

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.9.1-incubating
    • Fix Version/s: 1.9.0
    • Component/s: None
    • Labels:
      None

      Description

      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().

        Attachments

          Activity

            People

            • Assignee:
              julianhyde Julian Hyde
              Reporter:
              amansinha100 Aman Sinha
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: