heavyai / heavydb

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

[GPU Logic Bug] SELECT <column> FROM <table> JOIN <table> Brings Errors #830

Open qwebug opened 5 months ago

qwebug commented 5 months ago

Describe:

SELECT \ FROM \

JOIN \
brings different results, when using CPU-only configurations and GPU-used configurations.

SQL with CPU-only Config:

CREATE TABLE t0(c0 INT);
CREATE TABLE t1(c1 boolean);
INSERT INTO t1(c1) VALUES(FALSE), (TRUE), (FALSE);
INSERT INTO t0(c0) VALUES(-1), (2), (-3);
ALTER SESSION SET EXECUTOR_DEVICE='CPU';
SELECT t0.c0, t1.c1 FROM t1 JOIN t0 ON TRUE;

Result:

c0|c1
-1|false
 2|false
-3|false
-1|true
 2|true
-3|true
-1|false
 2|false
-3|false

SQL with GPU-used Config:

ALTER SESSION SET EXECUTOR_DEVICE='GPU';
SELECT t0.c0, t1.c1 FROM t1 JOIN t0 ON TRUE;

Result:

c0|c1
-1|false
-1|true
-1|false
 2|false
 2|true
 2|false
-3|false
-3|true
-3|false

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