dask-sql icon indicating copy to clipboard operation
dask-sql copied to clipboard

[BUG][GPU Logic Bug] "SELECT ((<column>) IS DISTINCT FROM ((CASE <column> WHEN <number> THEN <number> END ))) FROM <table>" brings Error

Open qwebug opened this issue 2 years ago • 0 comments

What happened:

"SELECT ((<column>) IS DISTINCT FROM ((CASE <column> WHEN <number> THEN <number> END ))) FROM <table>" brings different results, when using CPU and GPU.

What you expected to happen:

It is the same result, when using CPU and GPU.

Minimal Complete Verifiable Example:

import pandas as pd
import dask.dataframe as dd
from dask_sql import Context

c = Context()

df0 = pd.DataFrame({
    'c0': [39.0000],
})
t0 = dd.from_pandas(df0, npartitions=1)

c.create_table('t0', t0, gpu=False)
c.create_table('t0_gpu', t0, gpu=True)

print('CPU Result:')
result1= c.sql("SELECT ((t0.c0) IS DISTINCT FROM ((CASE t0.c0 WHEN 0.1 THEN (1) END ))) FROM t0").compute()
print(result1)

print('GPU Result:')
result2= c.sql("SELECT ((t0_gpu.c0) IS DISTINCT FROM ((CASE t0_gpu.c0 WHEN 0.1 THEN (1) END ))) FROM t0_gpu").compute()
print(result2)

Result:

INFO:numba.cuda.cudadrv.driver:init
CPU Result:
   t0.c0 IS DISTINCT FROM CASE t0.c0 WHEN Float64(0.1) THEN Int64(1) END
0                                               True                    
GPU Result:
  t0_gpu.c0 IS DISTINCT FROM CASE t0_gpu.c0 WHEN Float64(0.1) THEN Int64(1) END
0                                               <NA>                           
INFO:numba.cuda.cudadrv.driver:add pending dealloc: module_unload ? bytes

Anything else we need to know?:

Environment:

qwebug avatar Sep 20 '23 13:09 qwebug