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)