From bbaf4b4ea8b7ef47a334564e0b2a2ad76189e4d2 Mon Sep 17 00:00:00 2001 From: wangfeihuo Date: Thu, 14 Dec 2023 18:02:09 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=A0=87=E9=A2=98=E3=80=91=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8DI8LWND=E6=89=80=E7=A4=BA=E7=9A=84int=E8=BD=AC?= =?UTF-8?q?time=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8Cinsert=E7=9A=84?= =?UTF-8?q?=E8=A1=A8=E7=8E=B0=E5=92=8Cmysql=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20=E3=80=90=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E3=80=91:=20=E4=BF=AE=E5=A4=8DI8LWND?= =?UTF-8?q?=E6=89=80=E7=A4=BA=E7=9A=84int=E8=BD=ACtime=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=EF=BC=8Cinsert=E7=9A=84=E8=A1=A8=E7=8E=B0=E5=92=8Cmys?= =?UTF-8?q?ql=E4=B8=8D=E4=B8=80=E8=87=B4=E7=9A=84=E9=97=AE=E9=A2=98=20?= =?UTF-8?q?=E3=80=90=E6=A0=B9=E5=9B=A0=E5=88=86=E6=9E=90=E3=80=91:=20?= =?UTF-8?q?=E4=B8=BB=E8=A6=81=E6=98=AF=E5=9C=A8int32=5Fb=5Fformat=5Ftime?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E5=9C=A8=E9=9D=9E=E4=B8=A5=E6=A0=BC=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E5=86=99=E5=9C=BA=E6=99=AF=E4=B8=8B=EF=BC=8C=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BC=82=E5=B8=B8=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C?= =?UTF-8?q?=E6=B2=A1=E8=BF=94=E5=9B=9E0=E3=80=82=20=E3=80=90=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E6=96=B9=E6=A1=88=E3=80=91:=20int32=5Fb=5Fformat=5Fti?= =?UTF-8?q?me=E5=9C=A8=E9=9D=9E=E4=B8=A5=E6=A0=BC=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E5=86=99=E5=B9=B6=E4=B8=94=E5=85=A5=E5=8F=82=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E7=9A=84=E6=97=B6=E5=80=99=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E8=BF=94=E5=9B=9E0=EF=BC=8C=E4=BD=BF=E5=BE=97=E5=92=8Cmysql?= =?UTF-8?q?=E4=BF=9D=E6=8C=81=E6=88=90=E4=B8=80=E8=87=B4=E3=80=82=20?= =?UTF-8?q?=E3=80=90=E5=85=B3=E8=81=94=E9=9C=80=E6=B1=82=E6=88=96issue?= =?UTF-8?q?=E3=80=91:=20https://e.gitee.com/opengaussorg/dashboard=3Fissue?= =?UTF-8?q?=3DI8LWND?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/backend/utils/fmgr/fmgr.cpp | 30 ++++++++++++++++++-------- src/include/fmgr.h | 21 +++++++++++------- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/src/common/backend/utils/fmgr/fmgr.cpp b/src/common/backend/utils/fmgr/fmgr.cpp index 906e9da31..0f740cfe5 100755 --- a/src/common/backend/utils/fmgr/fmgr.cpp +++ b/src/common/backend/utils/fmgr/fmgr.cpp @@ -1292,7 +1292,7 @@ Datum DirectFunctionCall1Coll(PGFunction func, Oid collation, Datum arg1, bool c return result; } -Datum DirectFunctionCall2Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2) +Datum DirectFunctionCall2Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, bool can_ignore) { FunctionCallInfoData fcinfo; Datum result; @@ -1303,7 +1303,8 @@ Datum DirectFunctionCall2Coll(PGFunction func, Oid collation, Datum arg1, Datum fcinfo.arg[1] = arg2; fcinfo.argnull[0] = false; fcinfo.argnull[1] = false; - + fcinfo.can_ignore = can_ignore; + result = (*func)(&fcinfo); /* Check for null result, since caller is clearly not expecting one */ @@ -1315,7 +1316,7 @@ Datum DirectFunctionCall2Coll(PGFunction func, Oid collation, Datum arg1, Datum return result; } -Datum DirectFunctionCall3Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3) +Datum DirectFunctionCall3Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, bool can_ignore) { FunctionCallInfoData fcinfo; Datum result; @@ -1328,6 +1329,7 @@ Datum DirectFunctionCall3Coll(PGFunction func, Oid collation, Datum arg1, Datum fcinfo.argnull[0] = false; fcinfo.argnull[1] = false; fcinfo.argnull[2] = false; + fcinfo.can_ignore = can_ignore; result = (*func)(&fcinfo); @@ -1340,7 +1342,8 @@ Datum DirectFunctionCall3Coll(PGFunction func, Oid collation, Datum arg1, Datum return result; } -Datum DirectFunctionCall4Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4) +Datum DirectFunctionCall4Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, + bool can_ignore) { FunctionCallInfoData fcinfo; Datum result; @@ -1355,6 +1358,7 @@ Datum DirectFunctionCall4Coll(PGFunction func, Oid collation, Datum arg1, Datum fcinfo.argnull[1] = false; fcinfo.argnull[2] = false; fcinfo.argnull[3] = false; + fcinfo.can_ignore = can_ignore; result = (*func)(&fcinfo); @@ -1368,7 +1372,8 @@ Datum DirectFunctionCall4Coll(PGFunction func, Oid collation, Datum arg1, Datum } Datum DirectFunctionCall5Coll( - PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, Datum arg5) + PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, Datum arg5, + bool can_ignore) { FunctionCallInfoData fcinfo; Datum result; @@ -1385,6 +1390,7 @@ Datum DirectFunctionCall5Coll( fcinfo.argnull[2] = false; fcinfo.argnull[3] = false; fcinfo.argnull[4] = false; + fcinfo.can_ignore = can_ignore; result = (*func)(&fcinfo); @@ -1398,7 +1404,8 @@ Datum DirectFunctionCall5Coll( } Datum DirectFunctionCall6Coll( - PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, Datum arg5, Datum arg6) + PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, Datum arg5, Datum arg6, + bool can_ignore) { FunctionCallInfoData fcinfo; Datum result; @@ -1417,6 +1424,7 @@ Datum DirectFunctionCall6Coll( fcinfo.argnull[3] = false; fcinfo.argnull[4] = false; fcinfo.argnull[5] = false; + fcinfo.can_ignore = can_ignore; result = (*func)(&fcinfo); @@ -1430,7 +1438,8 @@ Datum DirectFunctionCall6Coll( } Datum DirectFunctionCall7Coll( - PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, Datum arg5, Datum arg6, Datum arg7) + PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, Datum arg5, Datum arg6, Datum arg7, + bool can_ignore) { FunctionCallInfoData fcinfo; Datum result; @@ -1451,6 +1460,7 @@ Datum DirectFunctionCall7Coll( fcinfo.argnull[4] = false; fcinfo.argnull[5] = false; fcinfo.argnull[6] = false; + fcinfo.can_ignore = can_ignore; result = (*func)(&fcinfo); @@ -1464,7 +1474,7 @@ Datum DirectFunctionCall7Coll( } Datum DirectFunctionCall8Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, - Datum arg5, Datum arg6, Datum arg7, Datum arg8) + Datum arg5, Datum arg6, Datum arg7, Datum arg8, bool can_ignore) { FunctionCallInfoData fcinfo; Datum result; @@ -1487,6 +1497,7 @@ Datum DirectFunctionCall8Coll(PGFunction func, Oid collation, Datum arg1, Datum fcinfo.argnull[5] = false; fcinfo.argnull[6] = false; fcinfo.argnull[7] = false; + fcinfo.can_ignore = can_ignore; result = (*func)(&fcinfo); @@ -1500,7 +1511,7 @@ Datum DirectFunctionCall8Coll(PGFunction func, Oid collation, Datum arg1, Datum } Datum DirectFunctionCall9Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, - Datum arg5, Datum arg6, Datum arg7, Datum arg8, Datum arg9) + Datum arg5, Datum arg6, Datum arg7, Datum arg8, Datum arg9, bool can_ignore) { FunctionCallInfoData fcinfo; Datum result; @@ -1525,6 +1536,7 @@ Datum DirectFunctionCall9Coll(PGFunction func, Oid collation, Datum arg1, Datum fcinfo.argnull[6] = false; fcinfo.argnull[7] = false; fcinfo.argnull[8] = false; + fcinfo.can_ignore = can_ignore; result = (*func)(&fcinfo); diff --git a/src/include/fmgr.h b/src/include/fmgr.h index 29dc045e3..389e32daf 100644 --- a/src/include/fmgr.h +++ b/src/include/fmgr.h @@ -456,19 +456,24 @@ typedef const Pg_magic_struct* (*PGModuleMagicFunction)(void); * are allowed to be NULL. */ extern Datum DirectFunctionCall1Coll(PGFunction func, Oid collation, Datum arg1, bool can_ignore = false); -extern Datum DirectFunctionCall2Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2); -extern Datum DirectFunctionCall3Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3); -extern Datum DirectFunctionCall4Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4); +extern Datum DirectFunctionCall2Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, bool can_ignore = false); +extern Datum DirectFunctionCall3Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, + bool can_ignore = false); +extern Datum DirectFunctionCall4Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, + bool can_ignore = false); extern Datum DirectFunctionCall5Coll( - PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, Datum arg5); + PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, Datum arg5, + bool can_ignore = false); extern Datum DirectFunctionCall6Coll( - PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, Datum arg5, Datum arg6); + PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, Datum arg5, Datum arg6, + bool can_ignore = false); extern Datum DirectFunctionCall7Coll( - PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, Datum arg5, Datum arg6, Datum arg7); + PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, Datum arg5, Datum arg6, Datum arg7, + bool can_ignore = false); extern Datum DirectFunctionCall8Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, - Datum arg5, Datum arg6, Datum arg7, Datum arg8); + Datum arg5, Datum arg6, Datum arg7, Datum arg8, bool can_ignore = false); extern Datum DirectFunctionCall9Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4, - Datum arg5, Datum arg6, Datum arg7, Datum arg8, Datum arg9); + Datum arg5, Datum arg6, Datum arg7, Datum arg8, Datum arg9, bool can_ignore = false); /* These are for invocation of a previously-looked-up function with a * directly-computed parameter list. Note that neither arguments nor result