You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Istvan Toth (Jira)" <ji...@apache.org> on 2022/09/28 11:25:00 UTC
[jira] [Created] (PHOENIX-6795) Default value evaluation happens in the read path
Istvan Toth created PHOENIX-6795:
------------------------------------
Summary: Default value evaluation happens in the read path
Key: PHOENIX-6795
URL: https://issues.apache.org/jira/browse/PHOENIX-6795
Project: Phoenix
Issue Type: Bug
Components: core
Affects Versions: 5.2.0
Reporter: Istvan Toth
At least in some cases, the default value for a column is getting evaluated during read time.
This does not conform to the SQL standard, and results in incorrect behaviour:
{code:java}
create table test id integer primary key, int v1 default 20;
upsert into test (id, v1) values (1,1)
select v1 from test where id = 1;
-- results in 1, correct
upsert into test (id) values (2)
-- v1 is not stored
select v1 from test where id = 2;
-- results 1, correct, because default applied during read time
upsert into test (id, v1) values (3, null)
-- v1 is not stored
select v1 from test where id = 1;
-- results 1, which is INCORRECT, as a default shouldn't override an explicit NULL value{code}
The correct behaviour would be resolving the default value during upsert, and not doing any default processing during select queries.
I encountered specifically during testing a DATETIME column:
{noformat}
COLUMN_WITH_DEFAULT DATETIME DEFAULT DATETIME '2011-01-01 01:01:01'
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)