You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Jose Martinez Poblete (Jira)" <ji...@apache.org> on 2023/02/23 10:50:00 UTC

[jira] [Created] (HIVE-27098) Incorrect results using CASE with filter on ORC table

Jose Martinez Poblete created HIVE-27098:
--------------------------------------------

             Summary: Incorrect results using CASE with filter on ORC table
                 Key: HIVE-27098
                 URL: https://issues.apache.org/jira/browse/HIVE-27098
             Project: Hive
          Issue Type: Bug
          Components: CBO
    Affects Versions: 3.1.3, 4.0.0
         Environment: apache-hive-4.0.0-SNAPSHOT

https://github.com/jpoblete/Hive

 
            Reporter: Jose Martinez Poblete


Consider the statement below where table_1 / table_2 are ORC
The result for the CASE WHEN column ESTADO_REGISTRO is DIFFERENT when the closing LAST filter: {{'{*}AND EG.id_subcontrato = 11968431{*}'}} is not specified
{noformat}
SELECT
EG.id_contrato,
EG.id_subcontrato,
CASE 
    WHEN CRP.id_contrato IS NULL 
    AND  CRP.id_subcontrato IS NULL 
    THEN 'NUEVO' 
    WHEN CRP.id_contrato IS NOT NULL 
    AND  CRP.id_subcontrato IS NOT NULL 
    AND  (
          -NVL CONDITION SET-
         ) 
    THEN 'MODIF_I' END ESTADO_REGISTRO
FROM
table_1 EG
LEFT JOIN (
SELECT
*
FROM
table_2
WHERE
date_format(from_unixtime(unix_timestamp(cast(aud_fecha_datos as string),'yyyyMMdd')),'yyyy-MM-dd') = date_sub(date_format(from_unixtime(unix_timestamp('20230101', 'yyyyMMdd')),'yyyy-MM-dd'),1)
AND
FECHA_FIN_VIG = '9999-12-31 00:00:00.0'
) as CRP 
ON  CRP.cod_aplicacion              = EG.cod_aplicacion
AND CRP.cod_empresa                 = EG.cod_empresa
AND CRP.cod_centro                  = EG.cod_centro
AND CRP.cod_afijo                   = EG.cod_afijo
AND CRP.id_interno_contrato         = EG.id_interno_contrato
AND trim(CRP.id_interno_subcontrato)= trim(EG.id_interno_subcontrato)
WHERE
EG.aud_fecha_datos = 20230101
AND 
EG.id_subcontrato = 11968431; – DIFFERENT RESULT IF THIS IS NOT SPECIFIED{noformat}
The results are:

*_WITHOUT_*  {{AND EG.id_subcontrato = 11968431}}
{noformat}
| id_contrato | id_subcontrato | estado_registro | 
| 4678406     | 11968431       | MODIF_I         |{noformat}
*_WITH_*        {{AND EG.id_subcontrato = 11968431}}
{noformat}
| id_contrato | id_subcontrato | estado_registro | 
| 4678406     | 11968431       | NULL            |{noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)