【标题】 修复I8LWND所示的int转time的时候,insert的表现和mysql不一致的问题
【实现内容】: 修复I8LWND所示的int转time的时候,insert的表现和mysql不一致的问题 【根因分析】: 主要是在int32_b_format_time中,在非严格模式写场景下,数据异常的时候,没返回0。 【实现方案】: int32_b_format_time在非严格模式写并且入参数据异常的时候直接返回0,使得和mysql保持成一致。 【关联需求或issue】: https://e.gitee.com/opengaussorg/dashboard?issue=I8LWND
This commit is contained in:
@ -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);
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user