From 8b1c393236e0a5e02949dc3a2e80fd88ed25af6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E9=B2=B2=E9=B9=8F?= Date: Thu, 10 Sep 2020 16:02:46 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9lpad=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E5=AF=B9=E6=9C=80=E5=A4=A7=E5=AD=98=E5=82=A8=E7=A9=BA=E9=97=B4?= =?UTF-8?q?=E5=90=8C=E4=B8=BA10M=E7=9A=84=E5=AD=97=E7=AC=A6=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=9C=A8=E8=B6=85=E8=BF=87=E5=AD=98=E5=82=A8=E4=B8=8A?= =?UTF-8?q?=E9=99=90=E6=97=B6=E7=9A=84=E5=A4=84=E7=90=86=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E8=87=B4=E7=9A=84=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 | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/common/backend/utils/adt/varchar.cpp b/src/common/backend/utils/adt/varchar.cpp index 6cb9f0dae..aabc2bf11 100755 --- a/src/common/backend/utils/adt/varchar.cpp +++ b/src/common/backend/utils/adt/varchar.cpp @@ -572,12 +572,6 @@ Datum varchar(PG_FUNCTION_ARGS) /* only reach here if string is too long... */ - if (len > MaxAttrSize) { - ereport(ERROR, - (errcode(ERRCODE_STRING_DATA_RIGHT_TRUNCATION), - errmsg("value too long for type character varying maxlen(%d) input_len(%d)", MaxAttrSize, len))); - } - /* truncate multibyte string preserving multibyte boundary */ max_mb_len = pg_mbcharcliplen(s_data, len, max_len); From dfb249e45d271f9618f67c796f8a75087c5fe101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E9=B2=B2=E9=B9=8F?= Date: Thu, 10 Sep 2020 16:04:05 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=AA=8C=E8=AF=81lpad?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E5=AF=B9=E6=9C=80=E5=A4=A7=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E7=A9=BA=E9=97=B4=E5=90=8C=E4=B8=BA10M=E7=9A=84=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E7=B1=BB=E5=9E=8B=E5=9C=A8=E8=B6=85=E8=BF=87=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E4=B8=8A=E9=99=90=E6=97=B6=E7=9A=84=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E4=B8=8D=E4=B8=80=E8=87=B4=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E7=9A=84=E6=B5=8B=E8=AF=95=E6=A0=B7=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/regress/sql/varchar.sql | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/test/regress/sql/varchar.sql b/src/test/regress/sql/varchar.sql index 7cfbb6bde..9df4c133f 100644 --- a/src/test/regress/sql/varchar.sql +++ b/src/test/regress/sql/varchar.sql @@ -68,3 +68,7 @@ SELECT '' AS four, * FROM VARCHAR_TBL ORDER BY f1; select char_length(to_char(lpad('abc', 1024 * 1024 *10, 'x'))); select char_length(to_char(lpad('abc', 1024 * 1024 *10 + 1, 'x'))); + +SELECT char_length(lpad('abcCC',1024*1024*11,'x')::varchar2(10485760)); + +SELECT char_length(lpad('abcCC',1024*1024*11,'x')::varchar(10485760)); \ No newline at end of file From 3865898f0fb87d2002d4ee142e1b47f0df10aeaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E9=B2=B2=E9=B9=8F?= Date: Thu, 10 Sep 2020 16:08:04 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=A0=B7=E4=BE=8B=E7=BB=93=E6=9E=9C=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=AA=8C=E8=AF=81lpad=E5=87=BD=E6=95=B0=E5=AF=B9=E6=9C=80?= =?UTF-8?q?=E5=A4=A7=E5=AD=98=E5=82=A8=E7=A9=BA=E9=97=B4=E5=90=8C=E4=B8=BA?= =?UTF-8?q?10M=E7=9A=84=E5=AD=97=E7=AC=A6=E7=B1=BB=E5=9E=8B=E5=9C=A8?= =?UTF-8?q?=E8=B6=85=E8=BF=87=E5=AD=98=E5=82=A8=E4=B8=8A=E9=99=90=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=A4=84=E7=90=86=E6=96=B9=E5=BC=8F=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4=E9=97=AE=E9=A2=98=E7=9A=84=E6=B5=8B=E8=AF=95=E6=A0=B7?= =?UTF-8?q?=E4=BE=8B=20=E7=94=B1=E4=BA=8E=E4=BF=AE=E6=94=B9=E4=BA=86varcha?= =?UTF-8?q?r.cpp=E4=B8=AD=E7=9A=84varchar=E5=87=BD=E6=95=B0=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E6=B5=8B=E8=AF=95=E6=A0=B7=E4=BE=8Bselect=20char=5Fle?= =?UTF-8?q?ngth(to=5Fchar(lpad('abc',=201024=20*=201024=20*10=20+=201,=20'?= =?UTF-8?q?x')));=E7=9A=84=E6=B5=8B=E8=AF=95=E7=BB=93=E6=9E=9C=E5=8F=91?= =?UTF-8?q?=E7=94=9F=E4=BA=86=E6=94=B9=E5=8F=98=EF=BC=8C=E5=9B=A0=E6=AD=A4?= =?UTF-8?q?=E4=B8=80=E5=B9=B6=E5=AF=B9=E5=85=B6=E8=BF=9B=E8=A1=8C=E4=BA=86?= =?UTF-8?q?=E4=B8=AA=E6=9B=B4=E6=96=B0=EF=BC=8C=20=E5=8D=B3=EF=BC=9A=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0select=20char=5Flength(to=5Fchar(lpad('abc',?= =?UTF-8?q?=201024=20*=201024=20*10=20+=201,=20'x')));=20=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=A0=B7=E4=BE=8B=E7=9A=84=E6=B5=8B=E8=AF=95=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=EF=BC=8C=20=E5=A2=9E=E5=8A=A0SELECT=20char=5Flength(l?= =?UTF-8?q?pad('abcCC',1024*1024*11,'x')::varchar2(10485760));=20=E5=92=8C?= =?UTF-8?q?=20SELECT=20char=5Flength(lpad('abcCC',1024*1024*11,'x')::varch?= =?UTF-8?q?ar(10485760));=20=E6=B5=8B=E8=AF=95=E6=A0=B7=E4=BE=8B=E7=9A=84?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/regress/expected/varchar.out | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/test/regress/expected/varchar.out b/src/test/regress/expected/varchar.out index 2759e06a2..d41c007b6 100644 --- a/src/test/regress/expected/varchar.out +++ b/src/test/regress/expected/varchar.out @@ -115,7 +115,19 @@ select char_length(to_char(lpad('abc', 1024 * 1024 *10, 'x'))); (1 row) select char_length(to_char(lpad('abc', 1024 * 1024 *10 + 1, 'x'))); -ERROR: value too long for type character varying maxlen(10485760) input_len(10485761) -CONTEXT: referenced column: varchar -SQL function "to_char" statement 1 -referenced column: char_length \ No newline at end of file + char_length +------------- + 10485760 +(1 row) + +SELECT char_length(lpad('abcCC',1024*1024*11,'x')::varchar2(10485760)); + char_length +------------- + 10485760 +(1 row) + +SELECT char_length(lpad('abcCC',1024*1024*11,'x')::varchar(10485760)); + char_length +------------- + 10485760 +(1 row) \ No newline at end of file From 8e8d3bd43c9f0498df018ae5af4fdaa91d59694e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E9=B2=B2=E9=B9=8F?= Date: Thu, 10 Sep 2020 16:40:35 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=A0=B7=E4=BE=8B=E7=BB=93=E6=9E=9C=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=AA=8C=E8=AF=81lpad=E5=87=BD=E6=95=B0=E5=AF=B9=E6=9C=80?= =?UTF-8?q?=E5=A4=A7=E5=AD=98=E5=82=A8=E7=A9=BA=E9=97=B4=E5=90=8C=E4=B8=BA?= =?UTF-8?q?10M=E7=9A=84=E5=AD=97=E7=AC=A6=E7=B1=BB=E5=9E=8B=E5=9C=A8?= =?UTF-8?q?=E8=B6=85=E8=BF=87=E5=AD=98=E5=82=A8=E4=B8=8A=E9=99=90=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=A4=84=E7=90=86=E6=96=B9=E5=BC=8F=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4=E9=97=AE=E9=A2=98=E7=9A=84=E6=B5=8B=E8=AF=95=E6=A0=B7?= =?UTF-8?q?=E4=BE=8B=20=E7=94=B1=E4=BA=8E=E4=BF=AE=E6=94=B9=E4=BA=86varcha?= =?UTF-8?q?r.cpp=E4=B8=AD=E7=9A=84varchar=E5=87=BD=E6=95=B0=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E6=B5=8B=E8=AF=95=E6=A0=B7=E4=BE=8Bselect=20char=5Fle?= =?UTF-8?q?ngth(to=5Fchar(lpad('abc',=201024=20*=201024=20*10=20+=201,=20'?= =?UTF-8?q?x')));=E7=9A=84=E6=B5=8B=E8=AF=95=E7=BB=93=E6=9E=9C=E5=8F=91?= =?UTF-8?q?=E7=94=9F=E4=BA=86=E6=94=B9=E5=8F=98=EF=BC=8C=E5=9B=A0=E6=AD=A4?= =?UTF-8?q?=E4=B8=80=E5=B9=B6=E5=AF=B9=E5=85=B6=E8=BF=9B=E8=A1=8C=E4=BA=86?= =?UTF-8?q?=E4=B8=AA=E6=9B=B4=E6=96=B0=EF=BC=8C=20=E5=8D=B3=EF=BC=9A=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0select=20char=5Flength(to=5Fchar(lpad('abc',?= =?UTF-8?q?=201024=20*=201024=20*10=20+=201,=20'x')));=20=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=A0=B7=E4=BE=8B=E7=9A=84=E6=B5=8B=E8=AF=95=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=EF=BC=8C=20=E5=A2=9E=E5=8A=A0SELECT=20char=5Flength(l?= =?UTF-8?q?pad('abcCC',1024*1024*11,'x')::varchar2(10485760));=20=E5=92=8C?= =?UTF-8?q?=20SELECT=20char=5Flength(lpad('abcCC',1024*1024*11,'x')::varch?= =?UTF-8?q?ar(10485760));=20=E6=B5=8B=E8=AF=95=E6=A0=B7=E4=BE=8B=E7=9A=84?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/regress/expected/varchar.out | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/regress/expected/varchar.out b/src/test/regress/expected/varchar.out index d41c007b6..832830e56 100644 --- a/src/test/regress/expected/varchar.out +++ b/src/test/regress/expected/varchar.out @@ -130,4 +130,4 @@ SELECT char_length(lpad('abcCC',1024*1024*11,'x')::varchar(10485760)); char_length ------------- 10485760 -(1 row) \ No newline at end of file +(1 row) From 301ec61eaeffcd4c6129f51b8949f91928511497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E9=B2=B2=E9=B9=8F?= Date: Thu, 10 Sep 2020 19:04:55 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0lpad=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E5=AF=B9=E6=9C=80=E5=A4=A7=E5=AD=98=E5=82=A8=E7=A9=BA=E9=97=B4?= =?UTF-8?q?=E5=90=8C=E4=B8=BA10M=E7=9A=84=E5=AD=97=E7=AC=A6=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=9C=A8=E8=B6=85=E8=BF=87=E5=AD=98=E5=82=A8=E4=B8=8A?= =?UTF-8?q?=E9=99=90=E6=97=B6=E7=9A=84=E5=A4=84=E7=90=86=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E8=87=B4=E9=97=AE=E9=A2=98=E7=9A=84=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=A0=B7=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/regress/sql/varchar.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/regress/sql/varchar.sql b/src/test/regress/sql/varchar.sql index 9df4c133f..d5086e5df 100644 --- a/src/test/regress/sql/varchar.sql +++ b/src/test/regress/sql/varchar.sql @@ -71,4 +71,4 @@ select char_length(to_char(lpad('abc', 1024 * 1024 *10 + 1, 'x'))); SELECT char_length(lpad('abcCC',1024*1024*11,'x')::varchar2(10485760)); -SELECT char_length(lpad('abcCC',1024*1024*11,'x')::varchar(10485760)); \ No newline at end of file +SELECT char_length(lpad('abcCC',1024*1024*11,'x')::varchar(10485760)); From 563eb1a2a501ebc9b7cd660537b78c14b20c8c3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E9=B2=B2=E9=B9=8F?= Date: Thu, 10 Sep 2020 19:05:30 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=AA=8C=E8=AF=81lpad?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E5=AF=B9=E6=9C=80=E5=A4=A7=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E7=A9=BA=E9=97=B4=E5=90=8C=E4=B8=BA10M=E7=9A=84=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E7=B1=BB=E5=9E=8B=E5=9C=A8=E8=B6=85=E8=BF=87=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E4=B8=8A=E9=99=90=E6=97=B6=E7=9A=84=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E4=B8=8D=E4=B8=80=E8=87=B4=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E7=9A=84=E6=B5=8B=E8=AF=95=E6=A0=B7=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/regress/expected/varchar.out | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/regress/expected/varchar.out b/src/test/regress/expected/varchar.out index 832830e56..defd64c67 100644 --- a/src/test/regress/expected/varchar.out +++ b/src/test/regress/expected/varchar.out @@ -131,3 +131,4 @@ SELECT char_length(lpad('abcCC',1024*1024*11,'x')::varchar(10485760)); ------------- 10485760 (1 row) +