From 03cf837af97524d3af5dd645e5acd8a4e355f06b Mon Sep 17 00:00:00 2001 From: teooooozhang Date: Fri, 29 Jul 2022 17:24:53 +0800 Subject: [PATCH] =?UTF-8?q?issue=E4=BF=AE=E5=A4=8D=EF=BC=9Aignore=E5=A4=84?= =?UTF-8?q?=E7=90=86json=E4=B8=8Ejsonb=E7=B1=BB=E5=9E=8B=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E9=9B=B6=E5=80=BC=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../runtime/executor/execUtils.cpp | 4 +- .../ignore/ignore_not_null_constraints.out | 42 ++++++++++++------- .../ignore/ignore_not_null_constraints.sql | 2 + 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/src/gausskernel/runtime/executor/execUtils.cpp b/src/gausskernel/runtime/executor/execUtils.cpp index 58e0be071..fedecb032 100644 --- a/src/gausskernel/runtime/executor/execUtils.cpp +++ b/src/gausskernel/runtime/executor/execUtils.cpp @@ -2519,11 +2519,11 @@ static Datum GetNotTimeTypeZeroValue(Form_pg_attribute att_tup) break; } case JSONOID: { - result = (Datum)DirectFunctionCall1(json_in, CStringGetDatum("0")); + result = (Datum)DirectFunctionCall1(json_in, CStringGetDatum("null")); break; } case JSONBOID: { - result = (Datum)DirectFunctionCall1(jsonb_in, CStringGetDatum("0")); + result = (Datum)DirectFunctionCall1(jsonb_in, CStringGetDatum("null")); break; } case XMLOID: { diff --git a/src/test/regress/expected/ignore/ignore_not_null_constraints.out b/src/test/regress/expected/ignore/ignore_not_null_constraints.out index cd2de052b..f628428a2 100644 --- a/src/test/regress/expected/ignore/ignore_not_null_constraints.out +++ b/src/test/regress/expected/ignore/ignore_not_null_constraints.out @@ -583,9 +583,9 @@ insert /*+ ignore_error */ into t_json values (null); WARNING: null value in column "c" violates not-null constraint DETAIL: Failing row contains (null). select * from t_json; - c ---- - 0 + c +------ + null (1 row) insert into t_json values('111'); @@ -595,10 +595,17 @@ DETAIL: Failing row contains (null). WARNING: null value in column "c" violates not-null constraint DETAIL: Failing row contains (null). select * from t_json; - c ---- - 0 - 0 + c +------ + null + null +(2 rows) + +select * from t_json where c::text = 'null'; + c +------ + null + null (2 rows) -- jsonb @@ -607,9 +614,9 @@ insert /*+ ignore_error */ into t_jsonb values (null); WARNING: null value in column "c" violates not-null constraint DETAIL: Failing row contains (null). select * from t_jsonb; - c ---- - 0 + c +------ + null (1 row) insert into t_jsonb values('111'); @@ -619,10 +626,17 @@ DETAIL: Failing row contains (null). WARNING: null value in column "c" violates not-null constraint DETAIL: Failing row contains (null). select * from t_jsonb; - c ---- - 0 - 0 + c +------ + null + null +(2 rows) + +select * from t_jsonb where c::text = 'null'; + c +------ + null + null (2 rows) -- bit diff --git a/src/test/regress/sql/ignore/ignore_not_null_constraints.sql b/src/test/regress/sql/ignore/ignore_not_null_constraints.sql index eda95aaa3..b6f9171fe 100644 --- a/src/test/regress/sql/ignore/ignore_not_null_constraints.sql +++ b/src/test/regress/sql/ignore/ignore_not_null_constraints.sql @@ -195,6 +195,7 @@ select * from t_json; insert into t_json values('111'); update /*+ ignore_error */ t_json set c = null; select * from t_json; +select * from t_json where c::text = 'null'; -- jsonb create table t_jsonb(c jsonb not null); @@ -203,6 +204,7 @@ select * from t_jsonb; insert into t_jsonb values('111'); update /*+ ignore_error */ t_jsonb set c = null; select * from t_jsonb; +select * from t_jsonb where c::text = 'null'; -- bit create table t_bit(c bit not null);