Uploaded image for project: 'Tajo'
  1. Tajo
  2. TAJO-1257

ORDER BY with NULL FIRST misses some data

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.10.0
    • Component/s: None
    • Labels:
      None

      Description

      Even with TAJO-904 and TAJO-1239, ORDER BY NULL FIRST misses some data.
      Below test code doesn't pass.
      It seems that this problem comes from misbehaving setMaxRangeIfNull() method in TupleUtil.java, which places NULL in the range by only considering the existence of ASC/DESC.

       
          KeyValueSet tableOptions = new KeyValueSet();
          tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
          tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
      
          Schema schema = new Schema();
          schema.addColumn("id", Type.INT4);
          schema.addColumn("name", Type.TEXT);
          String[] data = new String[]{ "1|111", "2|\\N", "3|333" };
          TajoTestingCluster.createTable("table11", schema, tableOptions, data, 1);
      
          try {
            ResultSet res = executeString("select * from table11 order by name null first");
            String ascExpected = "id,name\n" +
                "-------------------------------\n" +
                "2,null\n" +
                "1,111\n" +
                "3,333\n";
      
            assertEquals(ascExpected, resultSetToString(res));
            res.close();
      
          } finally {
            executeString("DROP TABLE table11 PURGE");
          }
      

        Attachments

          Activity

            People

            • Assignee:
              sirpkt Keuntae Park
              Reporter:
              sirpkt Keuntae Park
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: