[ 
https://issues.apache.org/jira/browse/HIVE-24245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chiran Ravani updated HIVE-24245:
---------------------------------
    Description: 
Vectorized PTF for count and distinct over partition is broken. It produces 
incorrect results.
Below is the test case.

{code}
CREATE TABLE bigd781b_new (
  id int,
  txt1 string,
  txt2 string,
  cda_date int,
  cda_job_name varchar(12));

INSERT INTO bigd781b_new VALUES 
  (1,'2010005759','7164335675012038',20200528,'load1'),
  (2,'2010005759','7164335675012038',20200528,'load2');
{code}

Running below query produces incorrect results

{code}
SELECT
    txt1,
    txt2,
    count(distinct txt1) over(partition by txt1) as n,
    count(distinct txt2) over(partition by txt2) as m
FROM bigd781b_new
{code}

as below.

{code}
+-------------+-------------------+----+----+
|    txt1     |       txt2        | n  | m  |
+-------------+-------------------+----+----+
| 2010005759  | 7164335675012038  | 2  | 2  |
| 2010005759  | 7164335675012038  | 2  | 2  |
+-------------+-------------------+----+----+
{code}

While the correct output would be

{code}
+-------------+-------------------+----+----+
|    txt1     |       txt2        | n  | m  |
+-------------+-------------------+----+----+
| 2010005759  | 7164335675012038  | 1  | 1  |
| 2010005759  | 7164335675012038  | 1  | 1  |
+-------------+-------------------+----+----+
{code}


The problem does not appear after setting below property
set hive.vectorized.execution.ptf.enabled=false;


  was:
Vectorized PTF for count and distinct over partition is broken. It produces 
incorrect results.
Below is the test case.

{code}
CREATE TABLE bigd781b_new (
  id int,
  txt1 string,
  txt2 string,
  cda_date int,
  cda_job_name varchar(12));

INSERT INTO bigd781b_new VALUES 
  (1,'2010005759','7164335675012038',20200528,'load1'),
  (2,'2010005759','7164335675012038',20200528,'load2');
{code}

Running below query produces incorrect results

{code}
SELECT
    txt1,
    txt2,
    count(distinct txt1) over(partition by txt1) as n,
    count(distinct txt2) over(partition by txt2) as m
FROM bigd781b_new
WHERE cda_date = 20200528 and ( txt2 = '7164335675012038');
{code}

as below.

{code}
+-------------+-------------------+----+----+
|    txt1     |       txt2        | n  | m  |
+-------------+-------------------+----+----+
| 2010005759  | 7164335675012038  | 2  | 2  |
| 2010005759  | 7164335675012038  | 2  | 2  |
+-------------+-------------------+----+----+
{code}

While the correct output would be

{code}
+-------------+-------------------+----+----+
|    txt1     |       txt2        | n  | m  |
+-------------+-------------------+----+----+
| 2010005759  | 7164335675012038  | 1  | 1  |
| 2010005759  | 7164335675012038  | 1  | 1  |
+-------------+-------------------+----+----+
{code}


The problem does not appear after setting below property
set hive.vectorized.execution.ptf.enabled=false;



> Vectorized PTF with count and distinct over partition producing incorrect 
> results.
> ----------------------------------------------------------------------------------
>
>                 Key: HIVE-24245
>                 URL: https://issues.apache.org/jira/browse/HIVE-24245
>             Project: Hive
>          Issue Type: Bug
>          Components: Hive, PTF-Windowing, Vectorization
>    Affects Versions: 3.1.0, 3.1.2
>            Reporter: Chiran Ravani
>            Priority: Critical
>
> Vectorized PTF for count and distinct over partition is broken. It produces 
> incorrect results.
> Below is the test case.
> {code}
> CREATE TABLE bigd781b_new (
>   id int,
>   txt1 string,
>   txt2 string,
>   cda_date int,
>   cda_job_name varchar(12));
> INSERT INTO bigd781b_new VALUES 
>   (1,'2010005759','7164335675012038',20200528,'load1'),
>   (2,'2010005759','7164335675012038',20200528,'load2');
> {code}
> Running below query produces incorrect results
> {code}
> SELECT
>     txt1,
>     txt2,
>     count(distinct txt1) over(partition by txt1) as n,
>     count(distinct txt2) over(partition by txt2) as m
> FROM bigd781b_new
> {code}
> as below.
> {code}
> +-------------+-------------------+----+----+
> |    txt1     |       txt2        | n  | m  |
> +-------------+-------------------+----+----+
> | 2010005759  | 7164335675012038  | 2  | 2  |
> | 2010005759  | 7164335675012038  | 2  | 2  |
> +-------------+-------------------+----+----+
> {code}
> While the correct output would be
> {code}
> +-------------+-------------------+----+----+
> |    txt1     |       txt2        | n  | m  |
> +-------------+-------------------+----+----+
> | 2010005759  | 7164335675012038  | 1  | 1  |
> | 2010005759  | 7164335675012038  | 1  | 1  |
> +-------------+-------------------+----+----+
> {code}
> The problem does not appear after setting below property
> set hive.vectorized.execution.ptf.enabled=false;



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to