【标题】 修复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:
@ -1295,7 +1295,7 @@ Datum DirectFunctionCall1Coll(PGFunction func, Oid collation, Datum arg1, bool c
|
|||||||
return result;
|
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;
|
FunctionCallInfoData fcinfo;
|
||||||
Datum result;
|
Datum result;
|
||||||
@ -1306,6 +1306,7 @@ Datum DirectFunctionCall2Coll(PGFunction func, Oid collation, Datum arg1, Datum
|
|||||||
fcinfo.arg[1] = arg2;
|
fcinfo.arg[1] = arg2;
|
||||||
fcinfo.argnull[0] = false;
|
fcinfo.argnull[0] = false;
|
||||||
fcinfo.argnull[1] = false;
|
fcinfo.argnull[1] = false;
|
||||||
|
fcinfo.can_ignore = can_ignore;
|
||||||
|
|
||||||
result = (*func)(&fcinfo);
|
result = (*func)(&fcinfo);
|
||||||
|
|
||||||
@ -1318,7 +1319,7 @@ Datum DirectFunctionCall2Coll(PGFunction func, Oid collation, Datum arg1, Datum
|
|||||||
return result;
|
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;
|
FunctionCallInfoData fcinfo;
|
||||||
Datum result;
|
Datum result;
|
||||||
@ -1331,6 +1332,7 @@ Datum DirectFunctionCall3Coll(PGFunction func, Oid collation, Datum arg1, Datum
|
|||||||
fcinfo.argnull[0] = false;
|
fcinfo.argnull[0] = false;
|
||||||
fcinfo.argnull[1] = false;
|
fcinfo.argnull[1] = false;
|
||||||
fcinfo.argnull[2] = false;
|
fcinfo.argnull[2] = false;
|
||||||
|
fcinfo.can_ignore = can_ignore;
|
||||||
|
|
||||||
result = (*func)(&fcinfo);
|
result = (*func)(&fcinfo);
|
||||||
|
|
||||||
@ -1343,7 +1345,8 @@ Datum DirectFunctionCall3Coll(PGFunction func, Oid collation, Datum arg1, Datum
|
|||||||
return result;
|
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;
|
FunctionCallInfoData fcinfo;
|
||||||
Datum result;
|
Datum result;
|
||||||
@ -1358,6 +1361,7 @@ Datum DirectFunctionCall4Coll(PGFunction func, Oid collation, Datum arg1, Datum
|
|||||||
fcinfo.argnull[1] = false;
|
fcinfo.argnull[1] = false;
|
||||||
fcinfo.argnull[2] = false;
|
fcinfo.argnull[2] = false;
|
||||||
fcinfo.argnull[3] = false;
|
fcinfo.argnull[3] = false;
|
||||||
|
fcinfo.can_ignore = can_ignore;
|
||||||
|
|
||||||
result = (*func)(&fcinfo);
|
result = (*func)(&fcinfo);
|
||||||
|
|
||||||
@ -1371,7 +1375,8 @@ Datum DirectFunctionCall4Coll(PGFunction func, Oid collation, Datum arg1, Datum
|
|||||||
}
|
}
|
||||||
|
|
||||||
Datum DirectFunctionCall5Coll(
|
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;
|
FunctionCallInfoData fcinfo;
|
||||||
Datum result;
|
Datum result;
|
||||||
@ -1388,6 +1393,7 @@ Datum DirectFunctionCall5Coll(
|
|||||||
fcinfo.argnull[2] = false;
|
fcinfo.argnull[2] = false;
|
||||||
fcinfo.argnull[3] = false;
|
fcinfo.argnull[3] = false;
|
||||||
fcinfo.argnull[4] = false;
|
fcinfo.argnull[4] = false;
|
||||||
|
fcinfo.can_ignore = can_ignore;
|
||||||
|
|
||||||
result = (*func)(&fcinfo);
|
result = (*func)(&fcinfo);
|
||||||
|
|
||||||
@ -1401,7 +1407,8 @@ Datum DirectFunctionCall5Coll(
|
|||||||
}
|
}
|
||||||
|
|
||||||
Datum DirectFunctionCall6Coll(
|
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;
|
FunctionCallInfoData fcinfo;
|
||||||
Datum result;
|
Datum result;
|
||||||
@ -1420,6 +1427,7 @@ Datum DirectFunctionCall6Coll(
|
|||||||
fcinfo.argnull[3] = false;
|
fcinfo.argnull[3] = false;
|
||||||
fcinfo.argnull[4] = false;
|
fcinfo.argnull[4] = false;
|
||||||
fcinfo.argnull[5] = false;
|
fcinfo.argnull[5] = false;
|
||||||
|
fcinfo.can_ignore = can_ignore;
|
||||||
|
|
||||||
result = (*func)(&fcinfo);
|
result = (*func)(&fcinfo);
|
||||||
|
|
||||||
@ -1433,7 +1441,8 @@ Datum DirectFunctionCall6Coll(
|
|||||||
}
|
}
|
||||||
|
|
||||||
Datum DirectFunctionCall7Coll(
|
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;
|
FunctionCallInfoData fcinfo;
|
||||||
Datum result;
|
Datum result;
|
||||||
@ -1454,6 +1463,7 @@ Datum DirectFunctionCall7Coll(
|
|||||||
fcinfo.argnull[4] = false;
|
fcinfo.argnull[4] = false;
|
||||||
fcinfo.argnull[5] = false;
|
fcinfo.argnull[5] = false;
|
||||||
fcinfo.argnull[6] = false;
|
fcinfo.argnull[6] = false;
|
||||||
|
fcinfo.can_ignore = can_ignore;
|
||||||
|
|
||||||
result = (*func)(&fcinfo);
|
result = (*func)(&fcinfo);
|
||||||
|
|
||||||
@ -1467,7 +1477,7 @@ Datum DirectFunctionCall7Coll(
|
|||||||
}
|
}
|
||||||
|
|
||||||
Datum DirectFunctionCall8Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2, Datum arg3, Datum arg4,
|
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;
|
FunctionCallInfoData fcinfo;
|
||||||
Datum result;
|
Datum result;
|
||||||
@ -1490,6 +1500,7 @@ Datum DirectFunctionCall8Coll(PGFunction func, Oid collation, Datum arg1, Datum
|
|||||||
fcinfo.argnull[5] = false;
|
fcinfo.argnull[5] = false;
|
||||||
fcinfo.argnull[6] = false;
|
fcinfo.argnull[6] = false;
|
||||||
fcinfo.argnull[7] = false;
|
fcinfo.argnull[7] = false;
|
||||||
|
fcinfo.can_ignore = can_ignore;
|
||||||
|
|
||||||
result = (*func)(&fcinfo);
|
result = (*func)(&fcinfo);
|
||||||
|
|
||||||
@ -1503,7 +1514,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 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;
|
FunctionCallInfoData fcinfo;
|
||||||
Datum result;
|
Datum result;
|
||||||
@ -1528,6 +1539,7 @@ Datum DirectFunctionCall9Coll(PGFunction func, Oid collation, Datum arg1, Datum
|
|||||||
fcinfo.argnull[6] = false;
|
fcinfo.argnull[6] = false;
|
||||||
fcinfo.argnull[7] = false;
|
fcinfo.argnull[7] = false;
|
||||||
fcinfo.argnull[8] = false;
|
fcinfo.argnull[8] = false;
|
||||||
|
fcinfo.can_ignore = can_ignore;
|
||||||
|
|
||||||
result = (*func)(&fcinfo);
|
result = (*func)(&fcinfo);
|
||||||
|
|
||||||
|
@ -457,19 +457,24 @@ typedef const Pg_magic_struct* (*PGModuleMagicFunction)(void);
|
|||||||
* are allowed to be NULL.
|
* are allowed to be NULL.
|
||||||
*/
|
*/
|
||||||
extern Datum DirectFunctionCall1Coll(PGFunction func, Oid collation, Datum arg1, bool can_ignore = false);
|
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 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);
|
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);
|
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(
|
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(
|
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(
|
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,
|
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,
|
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
|
/* These are for invocation of a previously-looked-up function with a
|
||||||
* directly-computed parameter list. Note that neither arguments nor result
|
* directly-computed parameter list. Note that neither arguments nor result
|
||||||
|
Reference in New Issue
Block a user