You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kylin.apache.org by "Mateusz Jerzyk (Jira)" <ji...@apache.org> on 2020/08/28 12:19:00 UTC
[jira] [Created] (KYLIN-4731) Kylin query failing with 'null while
executing SQL'
Mateusz Jerzyk created KYLIN-4731:
-------------------------------------
Summary: Kylin query failing with 'null while executing SQL'
Key: KYLIN-4731
URL: https://issues.apache.org/jira/browse/KYLIN-4731
Project: Kylin
Issue Type: Bug
Components: Query Engine
Affects Versions: v3.1.0
Reporter: Mateusz Jerzyk
Attachments: error_logs, test_null_date_lookup_cube.json, test_null_date_lookup_model.json
Hello,
we've recently upgraded Kylin from version 3.0.2 to 3.1.0 and some of the queries that worked well before started returning an error message `null while executing SQL: ...`.
After some investigation, we've found that the problem happens while executing left join on a date column, where the value in the left table is null and it is defined as derived dimension in the cube.
Here are the steps to reproduce the issue:
# Creating tables in Hive and filling it with some values
{code:java}
CREATE TABLE `default.test_null_date`
(
`key1` string,
`key2` string,
`date_segment` date,
`other_date` date
)
STORED AS ORC;
CREATE TABLE `default.test_null_date_lookup`
(
`date` date,
`some_field` string
)
STORED AS ORC;
INSERT INTO TABLE default.test_null_date VALUES
('SOMETHING', 'SOMETHING', '2020-01-01', null),
('SOMETHING', 'SOMETHING', '2020-01-01', '2020-01-02'),
('SOMETHING', 'SOMETHING', '2020-01-01', '2020-01-03');
INSERT INTO TABLE default.test_null_date_lookup VALUES
('2020-01-01', 'SOMETHING'),
('2020-01-02', 'SOMETHING'),
('2020-01-03', 'SOMETHING');
{code}
# Model definition in Kylin [^test_null_date_lookup_model.json]
# Cube definition in Kylin [^test_null_date_lookup_cube.json]
# The example query that fails
{code:java}
SELECT COUNT(*), "SOME_FIELD"
FROM "DEFAULT"."TEST_NULL_DATE"
LEFT JOIN "DEFAULT"."TEST_NULL_DATE_LOOKUP"
ON "TEST_NULL_DATE"."OTHER_DATE" = "TEST_NULL_DATE_LOOKUP"."DATE"
GROUP BY "SOME_FIELD"{code}
# Please see also logs of query execution [^error_logs]
We think that the issue was introduced here:
[https://github.com/apache/kylin/commit/6bd5b43bb06b6bf19d1a096d99146396aab8d5b2#diff-fa3dad06dc4edd4d139777c53492c9c2R303]
where the method
[https://github.com/apache/kylin/blob/kylin-3.1.0/core-common/src/main/java/org/apache/kylin/common/util/DateFormat.java#L158-L168]
is not protected from getting null values and throws NullPointerException
--
This message was sent by Atlassian Jira
(v8.3.4#803005)