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

CSV Adapter does not handle - Empty and malformed csv lines, space before or after comma

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.18.0
    • None
    • csv-adapter

    Description

      File: org.apache.calcite.adapter.csv.CsvEnumerator.java in example folder did not handle CSV with space between delimiter i.e."," and also did not handle empty lines or malformed lines in the middle of the file or to the end. The sqlline crashes is there is an empty line with java.lang.ArrayIndexOutOfBoundsException. 

       

      java.lang.ArrayIndexOutOfBoundsException: 1

      at org.apache.calcite.adapter.csv.CsvEnumerator$ArrayRowConverter.convertNormalRow(CsvEnumerator.java:347)

      at org.apache.calcite.adapter.csv.CsvEnumerator$ArrayRowConverter.convertRow(CsvEnumerator.java:339)

      at org.apache.calcite.adapter.csv.CsvEnumerator$ArrayRowConverter.convertRow(CsvEnumerator.java:317)

      at org.apache.calcite.adapter.csv.CsvEnumerator.moveNext(CsvEnumerator.java:204)

      at org.apache.calcite.linq4j.EnumerableDefaults$10$1.moveNext(EnumerableDefaults.java:1878)

      at org.apache.calcite.linq4j.EnumerableDefaults$10$1.moveNext(EnumerableDefaults.java:1878)

      at org.apache.calcite.linq4j.TransformedEnumerator.moveNext(TransformedEnumerator.java:35)

      at org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.next(Linq4j.java:684)

      at org.apache.calcite.avatica.util.IteratorCursor.next(IteratorCursor.java:46)

      at org.apache.calcite.avatica.AvaticaResultSet.next(AvaticaResultSet.java:217)

      at sqlline.IncrementalRows.hasNext(IncrementalRows.java:73)

      at sqlline.TableOutputFormat.print(TableOutputFormat.java:38)

      at sqlline.SqlLine.print(SqlLine.java:1719)

      at sqlline.Commands.execute(Commands.java:949)

      at sqlline.Commands.sql(Commands.java:882)

      at sqlline.SqlLine.dispatch(SqlLine.java:725)

      at sqlline.SqlLine.begin(SqlLine.java:540)

      at sqlline.SqlLine.start(SqlLine.java:264)

      at sqlline.SqlLine.main(SqlLine.java:195)

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              chiradip Chiradip Mandal
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 40m
                  40m