N Campbell created PHOENIX-3625:
-----------------------------------

             Summary: inner join predicate excludes values of zero but div by 
zero in projected expression thrown
                 Key: PHOENIX-3625
                 URL: https://issues.apache.org/jira/browse/PHOENIX-3625
             Project: Phoenix
          Issue Type: Bug
    Affects Versions: 4.7.0
         Environment: Hortonworks 2.5.3
            Reporter: N Campbell


Query explicitly excludes zero values. Projection performs a division and a 
div-by-zero is thrown.

using phoenix-4.7.0.2.5.3.0-37-client

select TBINT.RNUM, TBINT.CBINT , TDBL.CDBL from TBINT inner join TDBL on 
(TBINT.RNUM = TDBL.RNUM and TDBL.CDBL <> 0)

TBINT.RNUM      TBINT.CBINT     TDBL.CDBL
1       -1      -1
3       1       1
4       10      -0.1


select TBINT.RNUM, TBINT.CBINT / TDBL.CDBL from TBINT inner join TDBL on 
(TBINT.RNUM = TDBL.RNUM and TDBL.CDBL <> 0)

Error: Error -1 (00000) : Error while executing SQL "select TBINT.RNUM, 
TBINT.CBINT / TDBL.CDBL from TBINT inner join TDBL on (TBINT.RNUM = TDBL.RNUM 
and TDBL.CDBL <> 0)": Remote driver error: ArithmeticException: / by zero
SQLState:  00000
ErrorCode: -1


create table  if not exists TBINT ( RNUM integer  not null  primary key, CBINT 
bigint   )

create table  if not exists TDBL ( RNUM integer  not null primary key, CDBL 
double   )

upsert into TINT(RNUM, CINT) values ( 4, 10);
upsert into TBINT(RNUM, CBINT) values ( 0, NULL);
upsert into TBINT(RNUM, CBINT) values ( 1, -1);
upsert into TBINT(RNUM, CBINT) values ( 2, 0);
upsert into TBINT(RNUM, CBINT) values ( 3, 1);
upsert into TBINT(RNUM, CBINT) values ( 4, 10);

upsert into TDBL(RNUM, CDBL) values ( 0, NULL);
upsert into TDBL(RNUM, CDBL) values ( 1, -1E+00);
upsert into TDBL(RNUM, CDBL) values ( 2, 0E+00);
upsert into TDBL(RNUM, CDBL) values ( 3, 1E+00);
upsert into TDBL(RNUM, CDBL) values ( 4, -1E-01);
upsert into TDBL(RNUM, CDBL) values ( 5, 1E+01);

PLAN
CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN FULL SCAN OVER TBINT
CLIENT 100 ROW LIMIT
    PARALLEL INNER-JOIN TABLE 0
        CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN FULL SCAN OVER TDBL
            SERVER FILTER BY CDBL != 0.0
    DYNAMIC SERVER FILTER BY TBINT.RNUM IN (TDBL.RNUM)
    JOIN-SCANNER 100 ROW LIMIT




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to