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

Ihor Krysenko updated PHOENIX-4803:
-----------------------------------
    Description: 
Select with subquery in condition returns data from index table instead data 
table, but sometimes the same request works correctly.

Workaround NO_INDEX hint.

If this query part of bigger query with UNION ALL it throws exception:

Error: ERROR 525 (42902): SELECT column number differs in a Union All query is 
not allowed. 1st query has 4 columns whereas 2nd query has 6 
(state=42902,code=525)
 java.sql.SQLException: ERROR 525 (42902): SELECT column number differs in a 
Union All query is not allowed. 1st query has 4 columns whereas 2nd query has 6

*Look to the attachments for request history;*

Env for reproduce:

CREATE SCHEMA IF NOT EXISTS TST_NS;
 CREATE TABLE IF NOT EXISTS TST_NS.TEST (
 FIELD_1 CHAR(7) NOT NULL,
 FIELD_2 VARCHAR(8) NOT NULL,
 FIELD_3 TIME NOT NULL,
 FIELD_4 UNSIGNED_INT NOT NULL,
 CF.FIELD_5 BIGINT,
 CF.FIELD_6 INTEGER
 CONSTRAINT CFPK PRIMARY KEY (FIELD_1, FIELD_2, FIELD_3, FIELD_4)
 ) COMPRESSION='SNAPPY', IMMUTABLE_ROWS=true;
 CREATE LOCAL INDEX IF NOT EXISTS IDX_TEST ON TST_NS.TEST (FIELD_1 ASC, FIELD_3 
ASC, FIELD_2 ASC) COMPRESSION='SNAPPY';

UPSERT INTO TST_NS.TEST VALUES ('record1', 'testrow1', TO_TIME('2018-07-03 
10:00:01.123'), 134100, 111123131, 12133);
 UPSERT INTO TST_NS.TEST VALUES ('record2', 'testrow2', TO_TIME('2018-07-03 
10:00:01.124'), 134101, 111123132, 12134);
 UPSERT INTO TST_NS.TEST VALUES ('record3', 'testrow3', TO_TIME('2018-07-03 
10:00:01.125'), 134102, 111123133, 12135);
 UPSERT INTO TST_NS.TEST VALUES ('record8', 'testrow4', TO_TIME('2018-07-03 
10:00:01.126'), 134103, 111123134, 12136);
 UPSERT INTO TST_NS.TEST VALUES ('record8', 'testrow5', TO_TIME('2018-07-03 
10:00:01.126'), 134104, 111123135, 12137);
 UPSERT INTO TST_NS.TEST VALUES ('record6', 'testrow6', TO_TIME('2018-07-03 
10:00:02.123'), 134105, 111123136, 12133);
 UPSERT INTO TST_NS.TEST VALUES ('record7', 'testrow6', TO_TIME('2018-07-03 
10:00:02.124'), 134106, 111123137, 12133);
 UPSERT INTO TST_NS.TEST VALUES ('record8', 'testrow6', TO_TIME('2018-07-03 
10:00:03.127'), 134107, 111123138, 12133);
 UPSERT INTO TST_NS.TEST VALUES ('record8', 'testrow6', TO_TIME('2018-07-03 
10:00:03.128'), 134108, 111123139, 12133);

0: jdbc:phoenix:quickstart.cloudera:2181:/hba> select * from TST_NS.TEST;
 
+------------+---------+++------------------------------------++----------------------
|FIELD_1|FIELD_2|FIELD_3|FIELD_4|FIELD_5|FIELD_6|

+------------+---------+++------------------------------------++----------------------
|record1|testrow1|2018-07-03 10:00:01.123|134100|111123131|12133|
|record2|testrow2|2018-07-03 10:00:01.124|134101|111123132|12134|
|record3|testrow3|2018-07-03 10:00:01.125|134102|111123133|12135|
|record6|testrow6|2018-07-03 10:00:02.123|134105|111123136|12133|
|record7|testrow6|2018-07-03 10:00:02.124|134106|111123137|12133|
|record8|testrow4|2018-07-03 10:00:01.126|134103|111123134|12136|
|record8|testrow5|2018-07-03 10:00:01.126|134104|111123135|12137|
|record8|testrow6|2018-07-03 10:00:03.127|134107|111123138|12133|
|record8|testrow6|2018-07-03 10:00:03.128|134108|111123139|12133|

+------------+---------+++------------------------------------++----------------------
 8 rows selected (0.114 seconds)
 0: jdbc:phoenix:quickstart.cloudera:2181:/hba> select * from TST_NS.IDX_TEST;
 +-------------+------------------------+++----------------------
|:FIELD_1|:FIELD_3|:FIELD_2|:FIELD_4|

+-------------+------------------------+++----------------------
|record1|2018-07-03 10:00:01.123|testrow1|134100|
|record2|2018-07-03 10:00:01.124|testrow2|134101|
|record3|2018-07-03 10:00:01.125|testrow3|134102|
|record6|2018-07-03 10:00:02.123|testrow6|134105|
|record7|2018-07-03 10:00:02.124|testrow6|134106|
|record8|2018-07-03 10:00:01.126|testrow4|134103|
|record8|2018-07-03 10:00:01.126|testrow5|134104|
|record8|2018-07-03 10:00:03.127|testrow6|134107|
|record9|2018-07-03 10:00:03.128|testrow6|134108|

+-------------+------------------------+++----------------------

 

 

  was:
Select with subquery in condition returns data from index table instead data 
table, but sometimes the same request works correctly.

Workaround NO_INDEX hint.

If this query part of bigger query with UNION ALL it throws exception:

Error: ERROR 525 (42902): SELECT column number differs in a Union All query is 
not allowed. 1st query has 4 columns whereas 2nd query has 6 
(state=42902,code=525)
 java.sql.SQLException: ERROR 525 (42902): SELECT column number differs in a 
Union All query is not allowed. 1st query has 4 columns whereas 2nd query has 6

Look to the attachments for request history;

Env for reproduce:

CREATE SCHEMA IF NOT EXISTS TST_NS;
 CREATE TABLE IF NOT EXISTS TST_NS.TEST (
 FIELD_1 CHAR(7) NOT NULL,
 FIELD_2 VARCHAR(8) NOT NULL,
 FIELD_3 TIME NOT NULL,
 FIELD_4 UNSIGNED_INT NOT NULL,
 CF.FIELD_5 BIGINT,
 CF.FIELD_6 INTEGER
 CONSTRAINT CFPK PRIMARY KEY (FIELD_1, FIELD_2, FIELD_3, FIELD_4)
 ) COMPRESSION='SNAPPY', IMMUTABLE_ROWS=true;
 CREATE LOCAL INDEX IF NOT EXISTS IDX_TEST ON TST_NS.TEST (FIELD_1 ASC, FIELD_3 
ASC, FIELD_2 ASC) COMPRESSION='SNAPPY';

UPSERT INTO TST_NS.TEST VALUES ('record1', 'testrow1', TO_TIME('2018-07-03 
10:00:01.123'), 134100, 111123131, 12133);
 UPSERT INTO TST_NS.TEST VALUES ('record2', 'testrow2', TO_TIME('2018-07-03 
10:00:01.124'), 134101, 111123132, 12134);
 UPSERT INTO TST_NS.TEST VALUES ('record3', 'testrow3', TO_TIME('2018-07-03 
10:00:01.125'), 134102, 111123133, 12135);
 UPSERT INTO TST_NS.TEST VALUES ('record8', 'testrow4', TO_TIME('2018-07-03 
10:00:01.126'), 134103, 111123134, 12136);
 UPSERT INTO TST_NS.TEST VALUES ('record8', 'testrow5', TO_TIME('2018-07-03 
10:00:01.126'), 134104, 111123135, 12137);
 UPSERT INTO TST_NS.TEST VALUES ('record6', 'testrow6', TO_TIME('2018-07-03 
10:00:02.123'), 134105, 111123136, 12133);
 UPSERT INTO TST_NS.TEST VALUES ('record7', 'testrow6', TO_TIME('2018-07-03 
10:00:02.124'), 134106, 111123137, 12133);
 UPSERT INTO TST_NS.TEST VALUES ('record8', 'testrow6', TO_TIME('2018-07-03 
10:00:03.127'), 134107, 111123138, 12133);
 UPSERT INTO TST_NS.TEST VALUES ('record8', 'testrow6', TO_TIME('2018-07-03 
10:00:03.128'), 134108, 111123139, 12133);

0: jdbc:phoenix:quickstart.cloudera:2181:/hba> select * from TST_NS.TEST;
 
+-----------+----------++------------------------------------++----------------------+
|FIELD_1|FIELD_2|FIELD_3|FIELD_4|FIELD_5|FIELD_6|

+-----------+----------++------------------------------------++----------------------+
|record1|testrow1|2018-07-03 10:00:01.123|134100|111123131|12133|
|record2|testrow2|2018-07-03 10:00:01.124|134101|111123132|12134|
|record3|testrow3|2018-07-03 10:00:01.125|134102|111123133|12135|
|record6|testrow6|2018-07-03 10:00:02.123|134105|111123136|12133|
|record7|testrow6|2018-07-03 10:00:02.124|134106|111123137|12133|
|record8|testrow4|2018-07-03 10:00:01.126|134103|111123134|12136|
|record8|testrow5|2018-07-03 10:00:01.126|134104|111123135|12137|
|record8|testrow6|2018-07-03 10:00:03.127|134107|111123138|12133|
|record8|testrow6|2018-07-03 10:00:03.128|134108|111123139|12133|

+-----------+----------++------------------------------------++----------------------+
 8 rows selected (0.114 seconds)
 0: jdbc:phoenix:quickstart.cloudera:2181:/hba> select * from TST_NS.IDX_TEST;
 +------------+-------------------------++----------------------+
|:FIELD_1|:FIELD_3|:FIELD_2|:FIELD_4|

+------------+-------------------------++----------------------+
|record1|2018-07-03 10:00:01.123|testrow1|134100|
|record2|2018-07-03 10:00:01.124|testrow2|134101|
|record3|2018-07-03 10:00:01.125|testrow3|134102|
|record6|2018-07-03 10:00:02.123|testrow6|134105|
|record7|2018-07-03 10:00:02.124|testrow6|134106|
|record8|2018-07-03 10:00:01.126|testrow4|134103|
|record8|2018-07-03 10:00:01.126|testrow5|134104|
|record8|2018-07-03 10:00:03.127|testrow6|134107|
|record9|2018-07-03 10:00:03.128|testrow6|134108|

+------------+-------------------------++----------------------+

 

 


> SELECT query returns rows from index table instead data table
> -------------------------------------------------------------
>
>                 Key: PHOENIX-4803
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4803
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.14.0
>         Environment: Cloudera 5.11.2, Phoenix version 4.14.0-cdh5.11.2
>            Reporter: Ihor Krysenko
>            Priority: Major
>         Attachments: req_history.log
>
>
> Select with subquery in condition returns data from index table instead data 
> table, but sometimes the same request works correctly.
> Workaround NO_INDEX hint.
> If this query part of bigger query with UNION ALL it throws exception:
> Error: ERROR 525 (42902): SELECT column number differs in a Union All query 
> is not allowed. 1st query has 4 columns whereas 2nd query has 6 
> (state=42902,code=525)
>  java.sql.SQLException: ERROR 525 (42902): SELECT column number differs in a 
> Union All query is not allowed. 1st query has 4 columns whereas 2nd query has 
> 6
> *Look to the attachments for request history;*
> Env for reproduce:
> CREATE SCHEMA IF NOT EXISTS TST_NS;
>  CREATE TABLE IF NOT EXISTS TST_NS.TEST (
>  FIELD_1 CHAR(7) NOT NULL,
>  FIELD_2 VARCHAR(8) NOT NULL,
>  FIELD_3 TIME NOT NULL,
>  FIELD_4 UNSIGNED_INT NOT NULL,
>  CF.FIELD_5 BIGINT,
>  CF.FIELD_6 INTEGER
>  CONSTRAINT CFPK PRIMARY KEY (FIELD_1, FIELD_2, FIELD_3, FIELD_4)
>  ) COMPRESSION='SNAPPY', IMMUTABLE_ROWS=true;
>  CREATE LOCAL INDEX IF NOT EXISTS IDX_TEST ON TST_NS.TEST (FIELD_1 ASC, 
> FIELD_3 ASC, FIELD_2 ASC) COMPRESSION='SNAPPY';
> UPSERT INTO TST_NS.TEST VALUES ('record1', 'testrow1', TO_TIME('2018-07-03 
> 10:00:01.123'), 134100, 111123131, 12133);
>  UPSERT INTO TST_NS.TEST VALUES ('record2', 'testrow2', TO_TIME('2018-07-03 
> 10:00:01.124'), 134101, 111123132, 12134);
>  UPSERT INTO TST_NS.TEST VALUES ('record3', 'testrow3', TO_TIME('2018-07-03 
> 10:00:01.125'), 134102, 111123133, 12135);
>  UPSERT INTO TST_NS.TEST VALUES ('record8', 'testrow4', TO_TIME('2018-07-03 
> 10:00:01.126'), 134103, 111123134, 12136);
>  UPSERT INTO TST_NS.TEST VALUES ('record8', 'testrow5', TO_TIME('2018-07-03 
> 10:00:01.126'), 134104, 111123135, 12137);
>  UPSERT INTO TST_NS.TEST VALUES ('record6', 'testrow6', TO_TIME('2018-07-03 
> 10:00:02.123'), 134105, 111123136, 12133);
>  UPSERT INTO TST_NS.TEST VALUES ('record7', 'testrow6', TO_TIME('2018-07-03 
> 10:00:02.124'), 134106, 111123137, 12133);
>  UPSERT INTO TST_NS.TEST VALUES ('record8', 'testrow6', TO_TIME('2018-07-03 
> 10:00:03.127'), 134107, 111123138, 12133);
>  UPSERT INTO TST_NS.TEST VALUES ('record8', 'testrow6', TO_TIME('2018-07-03 
> 10:00:03.128'), 134108, 111123139, 12133);
> 0: jdbc:phoenix:quickstart.cloudera:2181:/hba> select * from TST_NS.TEST;
>  
> +------------+---------+++------------------------------------++----------------------
> |FIELD_1|FIELD_2|FIELD_3|FIELD_4|FIELD_5|FIELD_6|
> +------------+---------+++------------------------------------++----------------------
> |record1|testrow1|2018-07-03 10:00:01.123|134100|111123131|12133|
> |record2|testrow2|2018-07-03 10:00:01.124|134101|111123132|12134|
> |record3|testrow3|2018-07-03 10:00:01.125|134102|111123133|12135|
> |record6|testrow6|2018-07-03 10:00:02.123|134105|111123136|12133|
> |record7|testrow6|2018-07-03 10:00:02.124|134106|111123137|12133|
> |record8|testrow4|2018-07-03 10:00:01.126|134103|111123134|12136|
> |record8|testrow5|2018-07-03 10:00:01.126|134104|111123135|12137|
> |record8|testrow6|2018-07-03 10:00:03.127|134107|111123138|12133|
> |record8|testrow6|2018-07-03 10:00:03.128|134108|111123139|12133|
> +------------+---------+++------------------------------------++----------------------
>  8 rows selected (0.114 seconds)
>  0: jdbc:phoenix:quickstart.cloudera:2181:/hba> select * from TST_NS.IDX_TEST;
>  +-------------+------------------------+++----------------------
> |:FIELD_1|:FIELD_3|:FIELD_2|:FIELD_4|
> +-------------+------------------------+++----------------------
> |record1|2018-07-03 10:00:01.123|testrow1|134100|
> |record2|2018-07-03 10:00:01.124|testrow2|134101|
> |record3|2018-07-03 10:00:01.125|testrow3|134102|
> |record6|2018-07-03 10:00:02.123|testrow6|134105|
> |record7|2018-07-03 10:00:02.124|testrow6|134106|
> |record8|2018-07-03 10:00:01.126|testrow4|134103|
> |record8|2018-07-03 10:00:01.126|testrow5|134104|
> |record8|2018-07-03 10:00:03.127|testrow6|134107|
> |record9|2018-07-03 10:00:03.128|testrow6|134108|
> +-------------+------------------------+++----------------------
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to