-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
I ran across a query where select * from foo where col < 1.3 returns values rendered as 1.3. My guess is that this is either a subtle parsing difference or possibly the result of a differently ordered type cast. If you change the column type from float to double the issue no longer occurs.
Also, just to preempt anyone jumping to floating point values are approximations, I'm fully aware. I know that this issue is likely caused either by the miniscule difference between f32::from_str and f64::from_str or f32 as f64 vs f64 as f32 or some combination thereof. However, given that this is all one parser, it feels like a bug that we've parsed two different values for the same string.
To Reproduce
DataFusion CLI v42.0.0
> create table test(col float);
0 row(s) fetched.
Elapsed 0.008 seconds.
> insert into test values (1.1), (1.2), (1.3), (1.4), (1.5);
+-------+
| count |
+-------+
| 5 |
+-------+
1 row(s) fetched.
Elapsed 0.007 seconds.
> select * from test where col > 1.3;
+-----+
| col |
+-----+
| 1.4 |
| 1.5 |
+-----+
2 row(s) fetched.
Elapsed 0.004 seconds.
> select * from test where col < 1.3
;
+-----+
| col |
+-----+
| 1.1 |
| 1.2 |
| 1.3 |
+-----+
3 row(s) fetched.
Elapsed 0.002 seconds.
Expected behavior
I would expect that 1.3 == 1.3.
Additional context
No response
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working