You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Paul Rogers (Jira)" <ji...@apache.org> on 2020/01/04 01:38:01 UTC

[jira] [Created] (DRILL-7510) Incorrect String/number comparison with union types

Paul Rogers created DRILL-7510:
----------------------------------

             Summary: Incorrect String/number comparison with union types
                 Key: DRILL-7510
                 URL: https://issues.apache.org/jira/browse/DRILL-7510
             Project: Apache Drill
          Issue Type: Bug
            Reporter: Paul Rogers
            Assignee: Paul Rogers


Run the following test: {{TestTopNSchemaChanges.testUnionTypes()}}. It will pass. Look at the expected output:

{code:java}
    builder.baselineValues(0l, 0l);
    builder.baselineValues(1.0d, 1.0d);
    builder.baselineValues(3l, 3l);
    builder.baselineValues(4.0d, 4.0d);
    builder.baselineValues(6l, 6l);
    builder.baselineValues(7.0d, 7.0d);
    builder.baselineValues(9l, 9l);
    builder.baselineValues("2", "2");
{code}

The string values sort after the numbers.

After the fix for DRILL-7502, we get the following output:

{code:java}
    builder.baselineValues(0l, 0l);
    builder.baselineValues(1.0d, 1.0d);
    builder.baselineValues("2", "2");
    builder.baselineValues(3l, 3l);
    builder.baselineValues(4.0d, 4.0d);
    builder.baselineValues("5", "5");
    builder.baselineValues(6l, 6l);
    builder.baselineValues(7.0d, 7.0d);
{code}

This accidental fix suggests that the original design was to convert values to the same type, then compare them. Converting numbers to strings, say, would cause them to be lexically ordered, as in the second output.

The {{UNION}} type is poorly supported, so it is likely that this bug does not affect actual users.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)