[ https://issues.apache.org/jira/browse/PHOENIX-7492?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Istvan Toth updated PHOENIX-7492: --------------------------------- Component/s: core > Subquery with join and union not working together when one side of union > finds no result > ---------------------------------------------------------------------------------------- > > Key: PHOENIX-7492 > URL: https://issues.apache.org/jira/browse/PHOENIX-7492 > Project: Phoenix > Issue Type: Bug > Components: core > Reporter: Abhradeep Kundu > Assignee: Abhradeep Kundu > Priority: Major > Fix For: 5.3.0, 5.1.4, 5.2.2 > > > Steps to Reproduce > 1) Create below tables > {code:java} > CREATE TABLE ACCOUNT ( > ACCOUNT_IDENTIFIER VARCHAR(100) NOT NULL, > CRN_NUMBER_TEXT VARCHAR(100), > ORIGINAL_CURRENCY_CODE VARCHAR(100), > OUTSTANDING_BALANCE_AMOUNT DECIMAL(20,4), > SOURCE_SYSTEM_CODE VARCHAR(6) NOT NULL, > ACCOUNT_TYPE_CODE VARCHAR(100) > CONSTRAINT pk PRIMARY KEY (ACCOUNT_IDENTIFIER, SOURCE_SYSTEM_CODE) > ) SALT_BUCKET=4; > CREATE TABLE EXCHANGE_RATE ( > CURRENCY_CODE VARCHAR(3) NOT NULL, > SPOT_RATE DECIMAL(15,9), > EXPANDED_SPOT_RATE DECIMAL(19,9), > RECORD_LAST_UPDATE_DATE TIMESTAMP > CONSTRAINT pk PRIMARY KEY (CURRENCY_CODE) > )SALT_BUCKETS=4; > CREATE TABLE CUSTOMER ( > CUSTOMER_IDENTIFIER VARCHAR(100), > SOURCE_SYSTEM_CODE VARCHAR(100) NOT NULL, > CRN_NUMBER_TEXT VARCHAR(100), > CONSTRAINT pk PRIMARY KEY (CUSTOMER_IDENTIFIER, SOURCE_SYSTEM_CODE) > ) SALT_BUCKETS=4; > {code} > > 2) Upsert values > {code:java} > UPSERT INTO ACCOUNT VALUES ('ACC_1', 'CRN_1', 'IDR', 999, 'SRC_1', 'ATC_1'); > UPSERT INTO EXCHANGE_RATE VALUES ('IDR', 0.53233436, 0.198919644, > '2024-07-03'); > UPSERT INTO CUSTOMER VALUES ('CUST_1', 'SRC_1','CRN_1');{code} > 3) Run query > {code:java} > SELECT > ca1.ORIGINAL_CURRENCY_CODE AS ORIGINAL_CURRENCY_CODE > FROM > ACCOUNT ca1 > LEFT JOIN EXCHANGE_RATE er1 ON > ca1.ORIGINAL_CURRENCY_CODE = er1.CURRENCY_CODE > WHERE > (ca1.ACCOUNT_IDENTIFIER, > ca1.SOURCE_SYSTEM_CODE) IN ( > SELECT > ca.ACCOUNT_IDENTIFIER, > ca.SOURCE_SYSTEM_CODE > FROM > ACCOUNT ca > WHERE > ca.CRN_NUMBER_TEXT IN ( > SELECT > CRN_NUMBER_TEXT > FROM > CUSTOMER > WHERE > CUSTOMER_IDENTIFIER = 'CUST_2' > AND SOURCE_SYSTEM_CODE='SRC_1')) > AND ca1.ACCOUNT_TYPE_CODE IN ('ATC_1') > UNION ALL > SELECT > ca1.ORIGINAL_CURRENCY_CODE AS ORIGINAL_CURRENCY_CODE > FROM > ACCOUNT ca1 > WHERE > ca1.ACCOUNT_TYPE_CODE IN ('ATC_1');{code} > 4) Result > {code:java} > Caused by: java.lang.NullPointerException > at > org.apache.phoenix.cache.ServerCacheClient.removeServerCache(ServerCacheClient.java:380) > at > org.apache.phoenix.cache.ServerCacheClient.access$000(ServerCacheClient.java:89) > at > org.apache.phoenix.cache.ServerCacheClient$ServerCache.close(ServerCacheClient.java:211) > at > org.apache.phoenix.util.SQLCloseables.closeAllQuietly(SQLCloseables.java:59) > at org.apache.phoenix.util.SQLCloseables.closeAll(SQLCloseables.java:46) > at > org.apache.phoenix.execute.BaseQueryPlan$1.close(BaseQueryPlan.java:229) > at > org.apache.phoenix.iterate.DelegateResultIterator.close(DelegateResultIterator.java:41) > at > org.apache.phoenix.iterate.LookAheadResultIterator$1.close(LookAheadResultIterator.java:50) > at > org.apache.phoenix.iterate.UnionResultIterators.close(UnionResultIterators.java:87) > > {code} > -- This message was sent by Atlassian Jira (v8.20.10#820010)