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)