Yang, Yongfeng created TRAFODION-3202:
-----------------------------------------

             Summary: Case when used in the sorting sequence of paging 
functions. execution error
                 Key: TRAFODION-3202
                 URL: https://issues.apache.org/jira/browse/TRAFODION-3202
             Project: Apache Trafodion
          Issue Type: Bug
            Reporter: Yang, Yongfeng
            Assignee: Yang, Yongfeng


SQL statement:
SELECT * FROM (select row_number() over (ORDER BY t.num DESC) row_num,* from (
 select DATEDIFF(minute,TO_TIMESTAMP (C_START_TIME),TO_TIMESTAMP (CASE WHEN 
C_END_TIME IS NULL THEN NOW() ELSE C_END_TIME END))
  as num,* from T1 ) 
 t ) t2 where t2.row_num between 1 and 20;

error information:
*** ERROR[2235] Compiler Internal Error: Pass one skipped, but cannot produce a 
plan in pass two, originated from file ../optimizer/opt.cpp at line 7147.

*** ERROR[8822] The statement was not prepared.

After remove the case when in the sql statement, it can be executed normally:
 SELECT * FROM (select row_number() over (ORDER BY t.num DESC) row_num,* from (
 select DATEDIFF(minute,TO_TIMESTAMP (C_START_TIME),TO_TIMESTAMP (C_END_TIME))
  as num,* from T1 ) 
 t ) t2 where t2.row_num between 1 and 20;

 

Steps to reproduce.

1) create table t1 (
    C_ID LARGEINT GENERATED BY DEFAULT AS IDENTITY
      ( START WITH 1734251 INCREMENT BY 1 MAXVALUE 9223372036854775806 
      MINVALUE 1 CACHE 25 NO CYCLE LARGEINT ) NOT NULL NOT DROPPABLE NOT
      SERIALIZED
  , C_CENTER_ID VARCHAR(50 CHARS) CHARACTER SET UTF8
      COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
  , C_AREA_ID VARCHAR(50 CHARS) CHARACTER SET UTF8
      COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
  , C_PLAZA_ID VARCHAR(50 CHARS) CHARACTER SET UTF8
      COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
  , C_CLIMATIC_ID VARCHAR(50 CHARS) CHARACTER SET UTF8
      COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
  , C_ALARM_TYPE INT NO DEFAULT NOT NULL NOT DROPPABLE NOT
      SERIALIZED
  , C_ALARM_LEVEL INT DEFAULT NULL NOT SERIALIZED
  , C_POSITION_CODE VARCHAR(50 CHARS) CHARACTER SET UTF8
      COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
  , C_START_TIME TIMESTAMP(0) NO DEFAULT NOT NULL NOT
      DROPPABLE NOT SERIALIZED
  , C_END_TIME TIMESTAMP(0) DEFAULT NULL NOT SERIALIZED
  , C_STATE INT DEFAULT NULL NOT SERIALIZED
  , C_REMARK VARCHAR(200 CHARS) CHARACTER SET UTF8
      COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
  , C_CREATE_TIME TIMESTAMP(6) DEFAULT NULL NOT SERIALIZED
  , C_UPDATE_TIME TIMESTAMP(6) DEFAULT NULL NOT SERIALIZED
  , C_USER VARCHAR(50 CHARS) CHARACTER SET UTF8
      COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
  , C_POST_CODE VARCHAR(50 CHARS) CHARACTER SET UTF8
      COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
  , C_FLOOR_TYPE INT NO DEFAULT NOT NULL NOT DROPPABLE NOT
      SERIALIZED
  , C_DATA NUMERIC(18, 4) DEFAULT NULL NOT SERIALIZED
  , C_UP_LIMIT NUMERIC(18, 4) DEFAULT NULL NOT SERIALIZED
  , C_DOWN_LIMIT NUMERIC(18, 4) DEFAULT NULL NOT SERIALIZED
  , C_CHECK INT DEFAULT NULL NOT SERIALIZED
  , C_HIGH_OR_LOW INT DEFAULT NULL NOT SERIALIZED
  , C_DURATIONLEVEL INT DEFAULT NULL NOT SERIALIZED
  , PRIMARY KEY (C_START_TIME DESC, C_ALARM_TYPE ASC, C_FLOOR_TYPE ASC,
    C_CENTER_ID ASC, C_AREA_ID ASC, C_CLIMATIC_ID ASC, C_PLAZA_ID ASC,
    C_POSITION_CODE ASC)
  )
  SALT USING 5 PARTITIONS
       ON (C_PLAZA_ID, C_POSITION_CODE);

2) SELECT * FROM 
 (select row_number() over (ORDER BY t.num) row_num,
 * 
 from 
 (
 select DATE_part('day',(CASE WHEN C_END_TIME IS NULL THEN now() ELSE 
C_END_TIME END)) as num,
 C_END_TIME
 from t1 ) t
 ) t2 
where t2.row_num between 1 and 20;



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

Reply via email to