Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
None
-
None
-
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"); }