From d1a82a168cb7fa450b3a8d698b15f8fc7b556674 Mon Sep 17 00:00:00 2001 From: l30039603 Date: Wed, 18 Jan 2023 19:04:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3pg=E3=80=81b=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=E6=A8=A1=E5=BC=8F=E4=B8=AD=E6=96=87=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2=E8=BD=AC=E6=8D=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/backend/utils/adt/varchar.cpp | 2 +- src/test/regress/expected/b_compatibility.out | 6 ++++++ src/test/regress/expected/pg_compatibility.out | 6 ++++++ src/test/regress/sql/b_compatibility.sql | 1 + src/test/regress/sql/pg_compatibility.sql | 1 + 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/common/backend/utils/adt/varchar.cpp b/src/common/backend/utils/adt/varchar.cpp index 9b68d9355c..55a72d62c7 100644 --- a/src/common/backend/utils/adt/varchar.cpp +++ b/src/common/backend/utils/adt/varchar.cpp @@ -317,7 +317,7 @@ Datum bpchar(PG_FUNCTION_ARGS) * * Now, only explicit cast char type data should pad blank space. */ - if (!isExplicit) + if (!isExplicit || DB_IS_CMPT(PG_FORMAT | B_FORMAT)) maxlen = len; } diff --git a/src/test/regress/expected/b_compatibility.out b/src/test/regress/expected/b_compatibility.out index df93b5cff7..9bd82f4881 100644 --- a/src/test/regress/expected/b_compatibility.out +++ b/src/test/regress/expected/b_compatibility.out @@ -785,6 +785,12 @@ select bit_length(a),bit_length(b) from char_test; 8 | 8 (8 rows) +select 'ni啊shaeskeeee'::char(3); + bpchar +-------- + ni啊 +(1 row) + create index a on char_test(a); create index b on char_test(b); set enable_seqscan to off; diff --git a/src/test/regress/expected/pg_compatibility.out b/src/test/regress/expected/pg_compatibility.out index 5c1cc24d98..03d0f26370 100644 --- a/src/test/regress/expected/pg_compatibility.out +++ b/src/test/regress/expected/pg_compatibility.out @@ -82,6 +82,12 @@ select bit_length(a),bit_length(b) from char_test; 8 | 8 (6 rows) +select 'ni啊shaeskeeee'::char(3); + bpchar +-------- + ni啊 +(1 row) + create index a on char_test(a); create index b on char_test(b); set enable_seqscan to off; diff --git a/src/test/regress/sql/b_compatibility.sql b/src/test/regress/sql/b_compatibility.sql index c2e94ac866..8249d6db0d 100644 --- a/src/test/regress/sql/b_compatibility.sql +++ b/src/test/regress/sql/b_compatibility.sql @@ -204,6 +204,7 @@ insert into char_test values('0','0'); select length(a),length(b) from char_test; select lengthb(a),lengthb(b) from char_test; select bit_length(a),bit_length(b) from char_test; +select 'ni啊shaeskeeee'::char(3); create index a on char_test(a); create index b on char_test(b); diff --git a/src/test/regress/sql/pg_compatibility.sql b/src/test/regress/sql/pg_compatibility.sql index 4d720643a0..6bd029d690 100644 --- a/src/test/regress/sql/pg_compatibility.sql +++ b/src/test/regress/sql/pg_compatibility.sql @@ -32,6 +32,7 @@ insert into char_test values('0','0'); select length(a),length(b) from char_test; select lengthb(a),lengthb(b) from char_test; select bit_length(a),bit_length(b) from char_test; +select 'ni啊shaeskeeee'::char(3); create index a on char_test(a); create index b on char_test(b); -- Gitee