heavyai / heavydb

HeavyDB (formerly OmniSciDB)
https://heavy.ai
Apache License 2.0
2.92k stars 444 forks source link

[GPU Error Bug] SELECT * FROM <table> WHERE ((<column> + <column>) < <column>) OR (<column> = <column>) Brings Errors #814

Open qwebug opened 9 months ago

qwebug commented 9 months ago

Describe:

Using SELECT * FROM \

WHERE ((\ + \) < \) OR (\ = \) brings different results , when set EXECUTOR_DEVICE 'CPU' and 'GPU'.

SQL:

CREATE TABLE t0(c0 INT);
INSERT INTO t0(c0) VALUES(749466197), (-1013771122), (-1575001538);
ALTER SESSION SET EXECUTOR_DEVICE='CPU';
SELECT * FROM t0 WHERE ((t0.c0+t0.c0)<(t0.c0)) OR (t0.c0 = t0.c0);

Result:

c0
749466197
-1013771122

SQL:

ALTER SESSION SET EXECUTOR_DEVICE='GPU';
SELECT * FROM t0 WHERE ((t0.c0+t0.c0)<(t0.c0)) OR (t0.c0 = t0.c0);

Result:

ERR_OVERFLOW_OR_UNDERFLOW: Overflow or underflow

Environment:

Docker Deployment

https://hub.docker.com/layers/heavyai/heavyai-ee-cuda/latest/images/sha256-5af3ad3a00cbc5ce09c299b8b81cda96521a27373dbb1e59209c02358cfd9b1f?context=explore

Docker DIGEST: sha256:5af3ad3a00cbc5ce09c299b8b81cda96521a27373dbb1e59209c02358cfd9b1f

HeavyDB Version: 7.1.0-20230821-eae9ec17da

HeavyDB license: Free Edition

qwebug commented 1 month ago

This problem came up at HeavyDB Version: 7.1.0-20230821-eae9ec17da (Docker: https://hub.docker.com/layers/heavyai/heavyai-ee-cuda/v7.1.0/images/sha256-5af3ad3a00cbc5ce09c299b8b81cda96521a27373dbb1e59209c02358cfd9b1f?context=explore ) . And it has been fixed at HeavyDB Version: 7.2.6 (Docker: https://hub.docker.com/layers/heavyai/heavyai-ee-cuda/v7.2.6/images/sha256-d67d20fc9cf50437169cecce8a0180200418ba732ce25f2a05094eac776560be?context=explore), after my verification. Thanks to the developers for their contributions.